我有一个EC2实例,它托管一个Ruby on Rails应用程序,后者又连接到RDS实例。一切都运行良好几个月,直到rails应用程序遇到一个问题,其中与RDS数据库的连接超时。
事实证明,当我在仪表板中检查EC2实例时,EC2实例的私有IP地址不是我正在使用的安全组的入站限制的一部分。我确定我没有删除此实例的安全组条目。但是,在问题发生之前,我没有记录此实例的私有IP地址。
所以我的问题是,EC2实例是否可能在任何给定时间更改其私有IP?如果是,是否有办法始终允许此实例访问我的RDS实例?我已经尝试过使用公共IP代替安全组,但它没有用。
答案 0 :(得分:2)
没有。 EC2实例将始终保留相同的专用IP地址。 (公共IP地址可以在停止/启动后更改,但专用IP地址将永远不会更改。)
无论如何,您应该引用另一个安全组,而不是在安全组中放置IP地址。
例如:
这意味着任何与App Security Group关联的EC2实例都将被允许与数据库通信 - 这将适用于多个实例,并且无需指定任何特定的IP地址。
答案 1 :(得分:1)
没有。 私有IP与实例生命周期的EC2实例相关联。在您终止实例之前,私有IP将保留IP。 它永远不会改变。
有人可能已修改安全组以允许一组不同的IP。如果您知道如何检查CloudTrail,则可以找出这种新行为的原因。