如何使 DNS ARecord 指向 AWS 弹性 beanstalk 负载均衡器?

Posted

技术标签:

【中文标题】如何使 DNS ARecord 指向 AWS 弹性 beanstalk 负载均衡器?【英文标题】:How to make DNS ARecord point to AWS elastic beanstalk load balancer? 【发布时间】:2017-11-28 14:34:57 【问题描述】:

我有一个负载平衡环境(最小节点 2,最大节点 4)。

DNS CNAME 指向 Elastic Beanstalk 的 AWS DNS 名称,例如...

awseb-e-a-awsebloa-XXXXXXXX-YYYYYYY.eu-west-1.elb.amazonaws.com

我的 DNS A 记录指向第一个 EC2 实例的静态 IP(弹性 IP)(我手动关联了 EC2 IP 地址)。

这意味着任何引用 www.mydomain.com 的人都将通过 CNAME,因此将进行负载平衡。

任何不带 www 前缀 (mydomain.com) 的访问者都将通过 A 记录并点击第一个 EC2 实例。

我的问题是,我怎样才能让 A-Record 指向 Elastic Beanstalk?我不想输入它当前的 IP 地址——因为这可能会改变,但我非常清楚指向单个节点也不是很好。

【问题讨论】:

【参考方案1】:

由于ELB的IP地址可能会随着时间的推移而变化,所以你应该用Route53创建一个别名记录。

https://aws.amazon.com/route53/faqs/#which_dns_records_are_supported

此外,Amazon Route 53 还提供“别名”记录(Amazon Route 53 特定的虚拟记录)。别名记录用于映射资源 您的托管区域中的记录集到 Amazon Elastic Load Balancing 负载 平衡器、Amazon CloudFront 分配、AWS Elastic Beanstalk 环境或配置为网站的 Amazon S3 存储桶。 别名记录的工作方式类似于 CNAME 记录,您可以映射一个 DNS 名称 (example.com) 到另一个“目标”DNS 名称 (elb1234.elb.amazonaws.com)。它们与 CNAME 记录的不同之处在于 它们对解析器不可见。解析器只能看到 A 记录,并且 目标记录的结果 IP 地址。

【讨论】:

谢谢@chris-lam 你可以只使用路由 53 作为别名并将其他 DNS 内容保留在 GoDaddy 中,还是必须将所有 DNS 移到路由 53 中? 您必须全部移动,因为您需要将名称服务器更改为 Route53 提供的名称服务器。

以上是关于如何使 DNS ARecord 指向 AWS 弹性 beanstalk 负载均衡器?的主要内容,如果未能解决你的问题,请参考以下文章

AWS 弹性负载均衡器 DNS 名称更改和 Route 53 (PHP)

更改 EC2 实例上的公共 DNS

AWS Route53 指向弹性 beanstalk webapp

AWS:将子域指向不同的弹性 beanstalk 环境

AWS 通过弹性负载均衡器发送 http 请求

aws弹性负载均衡器未分发