我有多个Amazon EC2实例需要使用私有IP进行通信。 但是,到目前为止,我一直无法从另一个实例ping一个实例的私有IP。
我可以ping外部地址,例如他们的弹性IP和其他网站(雅虎,谷歌等),所以它似乎没有错的实例的networkingconfiguration。
而且,他们都在同一个区域,所以不应该是一个问题。
有没有人知道我可能做错了什么? 这可能与安全组设置有关吗?
事实certificate,问题毕竟是安全组设置。
我一直在限制IPstream量,所以只有我的外部IP可以与实例进行通信。 我假设安全组不适用于实例之间的通信,但他们这样做。
该解决scheme还允许来自10.0.0.0/8的stream量覆盖所有可能的EC2私有IP。 只允许来自特定私有IP的stream量将会更安全,但是这是一个麻烦,因为它们可以改变。
这现在解决了我的问题。 可能最好的解决scheme是利用Amazon的API在实例停止和启动时自动调整安全组IP限制。
根据AWS的常见问题,只要你不停止你的实例…你的私有IP将保持不变。
问:我所运行的每个实例都需要一个弹性IP地址吗? 不需要。您不需要所有实例的弹性IP地址。 默认情况下,每个实例都带有一个私有IP地址和一个Internet路由公共IP地址。 私有地址仅与实例关联,只在实例停止或终止时才会返回到Amazon EC2。 公共地址仅与实例关联,直到停止,终止或用弹性IP地址replace。 这些IP地址应该足够用于许多不需要长寿命的互联网可路由端点的应用程序。 计算群集,Web爬网和后端服务都是通常不需要弹性IP地址的应用程序示例。
声明“安全组设置不影响内部IP”不正确。 您必须将入站stream量添加到专用IP的安全组,就像外部IP一样。
我不得不添加来自特定私有IP的条目,以便我可以允许一个实例使用Subversion,CouchDB,映射networking驱动器等等。
但是,ping是不同的…检查安全设置是否设置为ICMP,或只是为“所有stream量”。
不只是TCP。 因为PING是一个ICMP消息。 不要以为你打开了“所有的TCP”,它会工作。
希望有所帮助。
安全组设置不会影响内部IP,因为它们是在集群网关上执行的。
由于实例位于同一个区域,您可以检查实例防火墙(如果已激活)是否接受ping请求(ICMP回显)
否则,尝试产生第三个实例并ping它们两个,如果成功则可能是由于其中一个实例的主机服务器上的问题