将AWS / Route53子域路由到ec2实例

时间:2017-12-11 11:34:53

标签: amazon-web-services amazon-ec2 amazon-route53

我在 AWS的Route53 中注册了一个域名,并希望以重新启动计算机后持久的方式创建指向EC2实例的子域 (经常发生)

以前的设置:

  • EC2实例链接到静态弹性IP(例如1.1.1.1
  • subdomain.example.com是指向A
  • 1.1.1.1记录
  • 问题:用完弹性IP地址(每个地区的限制为10 ips)。

当前设置:

  • EC2实例具有自动生成的公共IP和公共DNS(例如2.2.2.2ec2-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记录
  • 问题:重新启动计算机时,会生成新的IP / DNS地址并且路由已损坏!

也尝试过:

  • 创建自动缩放组并向其添加实例。
  • 为自动扩展组创建负载均衡器。
  • subdomain.example.com作为CNAME ALIAS
  • 路由到负载均衡器
  • 问题:复杂且难以维护。

所需设置

  • 一种简单方式,可直接将子域链接到实例,而无需耗尽EIP或创建负载均衡器。

3 个答案:

答案 0 :(得分:3)

创建Elastic Load Balancing(ELB)并将实例添加到它。将实例添加到ELB后,您不再需要弹性IP地址(静态IP地址)。

不需要创建任何向上/向下扩展组(您可以手动添加自己/也可以根据需要创建一个)。每次重新启动实例并获取新IP地址时,您的负载均衡器将自动执行运行状况检查在EC2实例上,仅将流量路由到通过运行状况检查的实例。

最后,将您的DNS更改为您的ELB。

了解更多信息 https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html?icmpid=docs_elbv2_console

答案 1 :(得分:1)

唯一支持AWS的方法是使用弹性IP地址。每个区域分配5个EIP地址,但这是一个软限制。您可以申请更多。附加到正在运行的EC2实例时,EIP地址是免费的。

AWS Service Limit Increase

[编辑]

另一种可行的方法是在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)

1) Create Elastic BeanStalk Application with Single Instance Environment
2) Point CNAME to url of Elastic BeanStalk.

由于EBs环境仅为单实例,因此您不需要Auto Scaling Group of Load Balancer。由于重新启动系统,EB网址也不会生效。

enter image description here