我们有两个AWS实例(实例A和实例B),它们在同一个VPC中运行。实例A上有面向Internet的服务,该服务受限(通过安全组)到IP地址的子集。实例A有一个DNS条目,因此可以通过someservice.example.org访问该服务。
当尝试从实例B访问服务时,如果我们使用VPC内部IP地址,它可以正常工作,但是我们似乎无法获得正确的安全组配置以允许通过公共DNS访问此实例。
我们已将“默认”VPC安全组添加到实例A,但我们仍无法直接访问此服务。尝试从其他VPC配置对实例A的访问时,我们也遇到同样的问题。
我知道我们可以为VPC创建一个私有DNS,当我们在同一个VPC中时可以解决问题,但是当在另一个VPC中运行时,这不会解决问题。
答案 0 :(得分:2)
这听起来像DNS解析问题。如果您使用Route53进行DNS,最简单的解决方法是为您的VPC创建一个专用的Route53 DNS区域,并添加如下内容: CNAME'searservice.example.org'指向实例的内部IP地址。
请注意,您确实希望尽可能使用内部专用IP地址。它将保持您的VPC内的网络流量,这将更快,更安全。它也可能更便宜,至少如果实例也在同一可用区内。您可以在数据传输部分的EC2 pricing page上阅读有关该内容的更多信息。
另请注意,您无法打开安全组,只允许VPC /安全组中的实例通过公共IP访问某些内容。这是因为访问公共IP的流量被视为“来自互联网”,而不是来自您的VPC。您必须通过其公共IP地址而不是其安全组授予对服务器的访问权限。
您还提到使用第二个VPC,但这可能是一个可以通过VPC Peering解决的单独问题。