【问题标题】:Using comparative logic in AWS DNS/Route 53 records在 AWS DNS/Route 53 记录中使用比较逻辑
【发布时间】:2017-08-07 20:40:27
【问题描述】:

我们在 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) 条目,因此将任何逻辑放入这些脚本中也可以正常工作。

【问题讨论】:

  • Route53 不提供此类功能。最好的办法是在部署脚本中包含一些逻辑来更新 DNS 条目。
  • 我最终不得不将其设置为手动部署步骤。如果新堆栈将成为通用 DNS 条目的目标,则用户必须在部署新堆栈之前删除现有映射的 DNS 记录。然后部署脚本可以根据需要创建新的 DNS 映射。

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


【解决方案1】:

我们最终必须在部署新堆栈之前手动执行此步骤。如果新的堆栈需要在mysite.com 重新分配,部署者必须手动删除现有的映射。然后云形成脚本将创建新的 DNS 映射。

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-23
      • 1970-01-01
      • 2021-09-01
      • 2014-11-11
      • 1970-01-01
      • 2016-04-16
      • 2014-09-22
      • 2018-03-14
      相关资源
      最近更新 更多