AWS:使EC2实例彼此之间可访问

时间:2018-07-23 11:09:22

标签: amazon-web-services amazon-ec2 elastic-ip

我有一个带有多个实例的VPC

这些对象必须通过公共url(例如,一个实例)在他们中间可以访问

mysub1.mydomain.com

应该能够访问

mysub2.mydomain.com

反之亦然;

我目前唯一的解决方法是:

a)为每个ElasticIP分配一个(以使它们不变)

b)在相应的安全组中添加明确的允许规则,以使上述请求成为可能;

由于我缺席ElasticIP,鉴于实例数有望增长,还有另一种方法可以解决这种情况吗?

如果可以解决问题,我可以将这些实例放在ELBALB后面;

编辑:是否可以扭曲使用 NAT网关(实际上允许往返于我的实例的传入流量)是保存IP地址的解决方案?但是如何将其与在某些需求下必须使用的负载均衡器(ELB或ALB)结合使用?

2 个答案:

答案 0 :(得分:1)

如果您仅要求它们在VPC内进行本地通信以通过其DNS名称相互访问,则您应该能够为Amazon VPC创建专用托管区域在Amazon Route 53中。

为每个实例添加指向其私有IP地址的条目。这样,DNS名称将在VPC中解析为指向私有IP地址而不是公共地址。流量将在VPC内流动,而无需连接到Internet。这也不需要分配公共IP地址。

如果您还需要DNS名称来在Internet上(VPC外部)解析,则不一定需要使用弹性IP地址。创建实例后,每个Amazon EC2都可以请求一个公共IP地址。您可以将公共DNS名称指向该地址。但是,请注意,如果实例停止和启动,公用IP地址可能会更改(而弹性IP地址不会更改)。

答案 1 :(得分:0)

理想情况下,您应该创建一个具有公共子网和私有子网(https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Subnets.html)的VPC,并将实例(除非有特殊需要)放置在私有子网中。

然后,您将配置外部和内部负载平衡器以及用于通信的DNS,这样您就不必依赖公用IP,并且可以扩展应用程序(可以根据需要使用传统负载平衡器或应用程序负载平衡器)。

您可以在route53(https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-private.html)上设置公共和私有DNS区域,以便仅从VPC内部即可解析某些终结点。

您甚至可以通过创建“安全组到安全组”规则或将入站流量限制到特定子网来提高安全性。