AWS VPC实例间通过公网IP进行通信



我们有两个AWS实例(实例A和实例B)在同一个VPC中运行。在实例A上有一个面向internet的服务,它被限制(通过安全组)为IP地址的子集。实例A有一个DNS条目,因此可以通过someservice.example.org访问该服务。

当尝试从实例B访问服务时,如果我们使用VPC内部IP地址,它会正常工作,但是我们似乎无法获得正确的安全组配置来允许通过公共DNS访问此实例

我们已经将'default' VPC安全组添加到实例A,但我们仍然无法直接访问此服务。我们也有同样的问题,试图配置访问实例A从其他vpc。

我知道我们可以为VPC创建一个私有DNS,当我们在同一个VPC中时可以解决问题,但这并不能解决在另一个VPC中运行时的问题。

这听起来像是DNS解析问题。如果您正在使用Route53进行DNS,最简单的解决方法是为您的VPC创建一个私有Route53 DNS区域,并添加如下内容:CNAME ' someeservice.example.org '指向实例的内部IP地址。

请注意,您确实希望尽可能使用内部私有IP地址。它将保持网络流量在您的VPC内,这将更快,更安全。对于您来说,它可能也更便宜,至少如果实例也在同一个可用性区域内。您可以在数据传输部分的EC2定价页面中了解更多信息。

还请注意,您不能打开安全组,只允许来自您的VPC/安全组的实例通过公共IP访问某些内容。这是因为访问公共IP的流量被视为"来自互联网",而不是来自您的VPC。您必须通过服务器的公共IP地址而不是其安全组授予对服务器的访问权限。

您还提到使用第二个VPC,但这将是一个可以通过VPC对等解决的单独问题。

最新更新