如何从数据中心内部和外部寻址 EC2 实例?

如何从数据中心内部和外部寻址 EC2 实例?

我正在尝试寻找一种能够从数据中心内部和外部处理我的 EC2 数据库实例的好方法。其他 EC2 实例需要能够调用它,其他客户端(如 pgAdmin)可能也需要从外部世界连接到它。

据我了解,使用内部和外部 DNS 名称是可持续长期的,因为每次重启都会导致改变。

我正在考虑将弹性 IP 与实例关联,并为其提供 A 记录(例如 db1.mydomain.com),然后我将在数据中心内外使用该记录。同一角色的其他实例将获得相同的处理和 db2.mydomain.com 的 DNS 记录等。

现在,有没有更干净、更稳定的方法来实现这个结果?我的方法不对?有什么建议吗?

答案1

将弹性 IP 与实例关联这是如何做到的。

请注意,除非您使用 VPC,否则如果您停止实例,您的弹性 IP 将取消关联,并且您必须在重新启动实例时手动重新关联它。

答案2

以下是最灵活、最有效且最具成本效益的方法的标准最佳实践步骤:

  1. 创建一个弹性 IP 地址并将其与实例关联。

  2. 创建一个 DNS 条目,即指向弹性 IP 地址的外部 DNS 名称的 CNAME。

  3. 无论何时停止/启动实例(或希望将名称指向新实例),只需将弹性 IP 地址与所需实例关联即可。无需 DNS 更新。

在 EC2 内部和外部使用新的 DNS 名称。

当 DNS 名称在 EC2 之外使用时,它将解析为实例的公共 IP 地址(即弹性 IP 地址)。

当 DNS 名称在 EC2 内部(与实例位于同一区域)使用时,它将解析为与弹性 IP 地址关联的实例的当时的私有 IP 地址。

这使得访问服务器的 EC2 实例之间的内部网络流量更快、更便宜。它还允许您使用安全组允许从其他 EC2 实例访问特定端口。

我在本文中进行了更详细的介绍:http://alestic.com/2009/06/ec2-elastic-ip-internal

如果您使用 VPC,则无需在停止/启动后重新关联弹性 IP 地址,否则一切都将正常工作。

相关内容