EC2实例是否可能在任何给定时间更改其私有IP?

时间:2017-12-13 02:23:33

标签: amazon-web-services amazon-ec2

我有一个EC2实例,它托管一个Ruby on Rails应用程序,后者又连接到RDS实例。一切都运行良好几个月,直到rails应用程序遇到一个问题,其中与RDS数据库的连接超时。

事实证明,当我在仪表板中检查EC2实例时,EC2实例的私有IP地址不是我正在使用的安全组的入站限制的一部分。我确定我没有删除此实例的安全组条目。但是,在问题发生之前,我没有记录此实例的私有IP地址。

所以我的问题是,EC2实例是否可能在任何给定时间更改其私有IP?如果是,是否有办法始终允许此实例访问我的RDS实例?我已经尝试过使用公共IP代替安全组,但它没有用。

2 个答案:

答案 0 :(得分:2)

没有。 EC2实例将始终保留相同的专用IP地址。 (公共IP地址可以在停止/启动后更改,但专用IP地址将永远不会更改。)

无论如何,您应该引用另一个安全组,而不是在安全组中放置IP地址。

例如:

  • 创建应用安全组
    • 将其与EC2实例关联
    • 打开应用程序所需的端口(例如HTTP端口80)
  • 创建数据库安全组
    • 将其与RDS数据库关联
    • 使用来源=应用安全组
    • 打开数据库端口

这意味着任何与App Security Group关联的EC2实例都将被允许与数据库通信 - 这将适用于多个实例,并且无需指定任何特定的IP地址。

答案 1 :(得分:1)

没有。 私有IP与实例生命周期的EC2实例相关联。在您终止实例之前,私有IP将保留IP。 它永远不会改变。

有人可能已修改安全组以允许一组不同的IP。如果您知道如何检查CloudTrail,则可以找出这种新行为的原因。