我们在aws中有一个vpc,aws提供了一些功能,可以在手动启动实例时自动将私有DNS添加到route53。
答案 0 :(得分:1)
如果您已安装boto,则可以添加/更新DNS设置,如下所示:
DNS_ADDRESS="`ec2metadata | grep 'public-hostname:' | cut -d ' ' -f 2`"
/usr/local/bin/route53 change_record <Hosted zone ID> foo.bar.com. CNAME $DNS_ADDRESS 300
DNS_ADDRESS
是实例的AWS DNS名称,例如 ec2-1-2-3-4.eu-west-1.compute.amazonaws.com
第二行创建一个带有5分钟TTL的CNAME。您需要添加要更改的域的托管区域ID。
如果您将此代码段放入/etc/rc.local
,则实例会在启动时自动更新/创建CNAME。
我不确定你对“私人”DNS的意思。 Route53提供(公共)DNS服务。但是,如果您的实例位于VPC内部,那么将DNS条目公开是没有害处的,因为无论如何都无法访问它们。
答案 1 :(得分:1)
示例脚本:
/usr/local/bin/route53 change_record $Hosted_zone_ID $DNS-Name A $IP 300
$Hosted_zone_ID
,$DNS-Name
,$IP
是占位符。将它们替换为实际值以运行脚本
答案 2 :(得分:0)
AWS内置的功能不会自动执行此操作,但AWS提供的功能允许您使用简单的工作流程和一些Javascript来自定义各种事物。
例如,我们使用自动缩放组根据需要启动实例,我们使用this blog article作为如何设置AWS Lambda函数的示例,该函数在自动缩放组接收来自自动缩放组的SNS通知时实例上下移动,并为路由53区域添加自定义DNS名称。根据您的需要定制它应该非常简单。