Open vinoth2710 opened 2 years ago
Dnscontrol is designed to create one generic zone that can be pushed to each provider. Therefore a zone can only be pushed to 2 providers if both support all the same records. Changing this would be a big overhaul.
I can offer 3 suggestions:
There are conditionals but you'd have to run dnscontrol twice, once for each provider. That's a level of complexity that I don't recommend. However, tips for doing it are here: https://stackexchange.github.io/dnscontrol/cli-variables
Add a "generic alias" feature that requires each provider to do the right thing. I'd accept a PR.
Ok, that isn't the solution you were hoping for but ... is 2 providers really helping you?
Take a look at your website's uptime. What causes downtime? For me it is things like:
a. A small outage every time I do a software upgrade. (30 seconds; every software push) b. A big outage every time I do a bad software push (1 to 2 hours; about once a month) c. R53 is down. (1-2 hours; about every 2-3 years)
So, if I want to improve my website's uptime the biggest "bang for the buck" would be to fix "a" (use a load balancer and do rolling upgrades) or fix "b" (improve my testing strategy). "c" isn't going to help much. In fact, if I switched to a magical DNS service that had perfect uptime, it wouldn't affect my website much.
If you are looking to improve latency not uptime, you might be able to make an argument for multiple providers. Some do better in different parts of the world. However, in that case I'd recommend a similar analysis: what do your APM metrics say your biggest latency problem is? If you are using ROUTE53 (which is pretty fast, globally), I bet your APM is telling you the problem is elsewhere.
That said... if DNS is the problem, then dual DNS providers is going to help. I would just recommend gathering the metrics before you make the decision to add this kind of complexity.
Tom
Hey, thanks for the detailed response, I would have a look at the metrics for sure. I tried Split Horizon DNS, it seemed to work pretty well.
D("example.com!r53", REG,
R53_ALIAS('@', 'A', 'dualstack.staging-elb-1854.us-east-1.elb.amazonaws.com.', R53_ZONE('Z35S')),
// Other records
)
D("example.com!dnssimple", REG,
ALIAS('@', 'dualstack.staging-elb-1854.us-east-1.elb.amazonaws.com.'),
// Other records
)
Is this a possible solution for my case?
Oh yeah! That isn't what I imagined the split-horizon feature would be used for but it should work just fine. That's very creative!
You'll need to maintain all the other records exactly the same in both places.
I'm trying to do point an ALIAS record to ELB load balancer in both R53 and DNSimple
However I get,
(or)
If I declare example.com for each provider separately I get
executing dnsconfig.js: example.com is declared more than once
I can understand why I'm getting this, but is there a way around(something like conditional records)?
We are trying to make both R53's and DNSimple's name servers authoritative (for failover in case either of them goes down).