在AWS DNS / Route 53记录中使用比较逻辑

时间:2017-03-16 15:15:28

标签: amazon-web-services redirect dns amazon-cloudformation amazon-route53

我们在AWS中设置了网站。当我们为新版本调出一个堆栈时,我们会在版本化的URL上提供它。即。

V1 v1.mysite.com

V2 v2.mysite.com

是否可以自动生成一个指向我网站最新部署版本的DNS条目?因此,在部署V1之后,我会有两个DNS条目:

v1.mysite.com转到它的堆栈的IP

mysite.com重定向到v1.mysite.com

然后当我部署V2时,mysite.com现在重定向到v2.mysite.com,而我手动不必编辑DNS条目。

一般情况下,我是否可以自动创建DNS条目或制作某种通配DNS条目,该条目始终指向AWS中当前可用的最高编号版本的网站?对于所有当前可用的DNS条目/堆栈,它应该查看V之后的数字,并使mysite.com指向数值最高的数字。

我们正在使用CloudFormation来创建我们的堆栈和DNS(Route 53)条目,因此在这些脚本中放置任何逻辑都可以。

2 个答案:

答案 0 :(得分:0)

这不是DNS本身的一部分,所以它不太可能被Route53上的任何东西支持。您最好的选择是在新实例启动或升级为生产实例时运行的脚本。使用boto

非常简单
  1. 制作新的boto.route53.record.Record
  2. 制作新的boto.route53.record.ResourceRecordSets
  3. 使用操作UPSERT和您的记录
  4. 添加更改记录
  5. 提交ResourceRecordSets(如果失败则进行简单重试)
  6. get_change(),直到Route53回复INSYNC
  7. 根据您的应用程序,您可能还需要等待亚马逊的所有权威DNS服务器(dns.resolver.query('your-domain', 'NS'))了解您的更改。

答案 1 :(得分:0)

我们最终必须在部署新堆栈之前将其作为手动步骤。如果需要在mysite.com恢复新堆栈,则部署者必须手动删除现有映射。然后,云形成脚本将创建新的DNS映射。

我认为不理想但比云形成脚本中的大量杂乱逻辑要好。