AWS EC2 Auto Scaling组,RDS,Route 53和不断变化的IP地址

我在EC2上设置了一个自动缩放组以及一个RDS Postgres实例。 我不使用ELB。 也许我应该…

面临的挑战是每创build一个新的EC2实例,它都会分配一个唯一的公有IP地址。 这意味着需要将新的入站规则应用于RDS的安全组,以允许此新的EC2实例通过端口5432(postgresql)连接到RDS。

我也遇到了Route 53的问题,因为需要将新的IP地址添加到DNS“A Record”以便正确parsingURL。

有没有一种方法来设置AWS来为我做这个,或者我需要使用boto编写一些python代码?

这意味着需要将新的入站规则应用于RDS的安全组,以允许此新的EC2实例通过端口5432(postgresql)连接到RDS。

我build议使用私有IP,而不是将公有IP用于安全组规则。 在同一VPC中同时运行EC2和RDS,然后在RDS的安全组规则中允许包含EC2实例的整个VPC子网IP范围。

我也遇到了Route 53的问题,因为需要将新的IP地址添加到DNS“A Record”以便正确parsingURL。

你基本上有3个选项:

  1. 使用ELB
  2. 编写一个在每个实例上运行的设置脚本,并自动更新DNS
  3. 使用OpsWorks,它允许您使用EIP创buildHAProxy实例,然后在启动时自动将新的应用程序服务器实例添加到该HAProxy实例

不要单独将每个EC2实例的IP地址添加到入站安全组。 而是允许来自EC2实例安全组的入站stream量。 然后,任何使用该安全组的EC2实例将被允许从相同的规则进行访问。

一般来说,如果需要外部访问,自动扩展组最好用在弹性负载均衡器之后。 这是因为当实例需要根据负载或其他指标dynamic启动和停止时,通常使用自动扩展组。 当一个客户连接到你的组,通常,它不应该关心它实际上连接到哪一个。 通过为每个实例分配单独的IP地址,外部世界需要跟踪所有这些实例。