在 Route 53 中使用弹性 IP 地址不起作用
Posted
技术标签:
【中文标题】在 Route 53 中使用弹性 IP 地址不起作用【英文标题】:Use of Elastic IP address in Route 53 not working 【发布时间】:2016-02-20 06:35:24 【问题描述】:我正在尝试更改我在 Route 53 中的 A 记录指向的实例。
对于我的域 app.mydomain.com,Route 53 中的 A 记录当前指向我的两个实例之一的弹性 IP(例如 11.22.33.44)。这工作正常。如果我在浏览器中输入 app.mydomain.com,我会被带到实例。
我已经为我在 EC2 中的另一个实例创建了一个新的弹性 IP 地址,并将这个 IP 地址放在 Route 53 A 记录中,而不是 11.22.33.44。尽管实例工作正常(即我可以在浏览器中输入 mysecondinstance.elasticbeanstalk.com 并查看我的期望),但如果我在浏览器中输入 app.mydomain.com 连接超时。自从我在 53 号公路上进行更改后,我已经离开了一个多小时。
有人知道我做错了什么吗?我想我在某处遗漏了重要的一步?
【问题讨论】:
整个设置听起来很糟糕。你想达到什么目的?为什么您尝试访问弹性 beantalk 实例而不是负载均衡器?这是一个网络应用吗? 我从没有文档的人那里接手了这个项目,所以我必须尽我所能弄清楚发生了什么。这些实例适用于移动应用。 好吧,听起来你用错了。移动应用程序应连接到 elastic beanstalk cname (myapp.elasticbeanstalk.com) 不,我无法将应用程序映射到特定的 EB 实例,因为当实例更改时,我必须更改应用程序。应用程序被映射到一个 url,Route 53 将该 url 映射到一个实例。这更有意义,因为应用程序不再依赖于服务器代码所在的位置。 不,EB URL 保持不变。含义 - myapp.elasticbeanstalk.com 永远不会改变。它将流量引导到的实例可能会发生变化。如果您的应用程序向 myapp.elasticbeanstalk.com 发送请求,则可以保证它永远不会改变。现在对于路线 53 - 这应该只为您提供一种将(cname)myapp.mydomain.com 映射到 myapp.elasticbeanstalk.com(以获取个人 URL)的方法。直接指向服务器是错误的,只有elasticbeanstalk应该将流量直接指向服务器。 【参考方案1】:不是对您问题的直接回答,但也许是一个有趣的建议。
您可以将弹性 IP 地址重新关联到您的新实例,而不是更改 A 记录(这需要时间来传播)。这应该只需要一到五秒钟,所有流量都会自动转到您的新实例。
唯一的问题是现有的连接将被终止,所以如果您对 http(s) 流量以外的任何东西执行此操作,请小心关闭所有连接!
【讨论】:
【参考方案2】:Elastic Beanstalk 架构 (read this) 提供了一种更简单的方法。您无需将路由 53 URL 指向内部服务器,而是指向 Elastic Beanstalk 负载均衡器。后者负责将流量路由到内部服务器,并在发生故障时无缝替换它们。 因此,要解决您的问题 - 只需将您的路由 53 A 记录指向 Elastic Beanstalk 负载均衡器 (elaborated here)。
【讨论】:
以上是关于在 Route 53 中使用弹性 IP 地址不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Route 53 是不是指向实例而不是 IP 或 CNAME?
AWS 弹性负载均衡器 DNS 名称更改和 Route 53 (PHP)