aws-cdk-examples
aws-cdk-examples copied to clipboard
CDK Sample: Route53 Failover DNS Management
Describe the feature
Controlling R53 Failover DNS records + SNS notification through CDK in order to automate DNS management with IaC. Specially, Failover records are complex to implement as they aren't natively implemented in CDK (Ref: https://github.com/aws/aws-cdk/issues/4391 ) I couldn't find good samples in any Github repo so this should be of value to customers attempting to control R53 with IaC, including SNS notification.
Use Case
- Large enterprise customer was looking to implement this and I couldn't find anywhere a good sample to give them
- Customers with decentralized processes need a way for their teams to control all aspects of their solution, including DNS management
- Customer implementing Disaster Recovery Plans in their solutions need to have a guideline on how to achieve DNS failover
- Customers with automated failover need to notify their operations team when the failover mechanism was activated
Proposed Solution
Route53 DNS CNAME Records with Failover Config, Route 53 Healthcheck, Cloudwatch Alarm and SNS Topic + Subscription
zone = route53.HostedZone(...) cloudwatch_alarm = ... health_check = route53.CfnHealthCheck(...) primary_record = route53.CfnRecordSet(...) secondary_record = route53.CfnRecordSet(...) sns_topic = ... sns_subscription = ..
Other Information
Searched Github code for route53.CfnHealthCheck and couldn't find a good example aside from this https://github.com/DionBrNz/private-r53-failover/blob/16bb5f459b2f92c316a7f189a1a271c85b71374e/infra/lib/private-r53-failover-stack.ts and is not complete.
Acknowledgements
- [X] I may be able to implement this feature request
- [ ] This feature might incur a breaking change
Language
Python