我在 AWS的Route53 中注册了一个域名,并希望以重新启动计算机后持久的方式创建指向EC2实例的子域 (经常发生)。
1.1.1.1
)subdomain.example.com
是指向A
1.1.1.1
记录
2.2.2.2
和ec2-2-2-2-2.eu-west-1.compute.amazonaws.com
)subdomain.example.com
是指向CNAME
ec2-2-2-2-2.eu-west-1.compute.amazonaws.com
记录
subdomain.example.com
作为CNAME
ALIAS 答案 0 :(得分:3)
创建Elastic Load Balancing(ELB)并将实例添加到它。将实例添加到ELB后,您不再需要弹性IP地址(静态IP地址)。
不需要创建任何向上/向下扩展组(您可以手动添加自己/也可以根据需要创建一个)。每次重新启动实例并获取新IP地址时,您的负载均衡器将自动执行运行状况检查在EC2实例上,仅将流量路由到通过运行状况检查的实例。
最后,将您的DNS更改为您的ELB。
答案 1 :(得分:1)
唯一支持AWS的方法是使用弹性IP地址。每个区域分配5个EIP地址,但这是一个软限制。您可以申请更多。附加到正在运行的EC2实例时,EIP地址是免费的。
[编辑]
另一种可行的方法是在EC2实例启动时将您的Route53资源记录更改为指向新IP地址。这可以通过脚本(Python等)或通过CLI完成。
以下是我在维护时用于更改RRS以进行故障转移的示例。
CLI命令行:
aws --profile PROD route53 change-resource-record-sets --hosted-zone-id Z13KCDXXXXXXXX --change-batch file://update_mydomain.json
update_mydomain.json的内容
{
"Comment": "Update record to reflect new IP address of www.mydomain.com",
"Changes": [
{
"Action": "UPSERT",
"ResourceRecordSet": {
"Name": "www.mydomain.com.",
"Type": "A",
"TTL": 300,
"ResourceRecords": [
{
"Value": "NEW_IP_ADDRESS"
}
]
}
}
]
}
修改域名和IP地址,然后运行CLI命令(我将其放入批处理脚本中)。您还需要CLI命令的Route53记录的托管区域ID。
答案 2 :(得分:-1)