2016-07-26 57 views
4

我很难将添加在我的VPC和私有子网(无Internet网关连接到它)上的实例添加到ECS群集。将EC2实例注册到未使用公共IP的ECS群集

现在我设法做到这一点的唯一方法是通过添加一个公共IP并配置一个NAT实例/网关。

如何将ECS群集与私有子网一起使用?

回答

4

我想我已经找到了答案AWS文档上,似乎我需要使用NAT实例/网关:(

另一个source,也是official documentaion

” ...容器实例需要外部网络访问才能与Amazon ECS服务端点进行通信,因此,如果您的容器实例正在私有VPC中运行,则需要使用网络地址转换(NAT)实例来提供此访问。有关详细信息,请参阅Amazon中的NAT实例VPC用户指南“。

+0

我有完全相同的问题,我完全忽略了它可能是公有IP的事实,因为在[AWS文档](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_container_instance.html)中,它指出在步骤8中添加公共IP是可选的...但是却没有提出这样的反应......:叹:感谢你们在这里的帮助。 – gsaslis

+0

更新:在向亚马逊提出问题后,他们很快回复并更新了他们[文档]的第8步(https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_container_instance.html)以反映这一点:'注意:容器实例需要外部网络访问才能与Amazon ECS服务端点进行通信,因此如果您的容器实例没有公共IP地址,则它们必须使用网络地址转换(NAT)或HTTP代理来提供这个访问。有关更多信息,请参阅本指南中的Amazon VPC用户指南和HTTP代理配置中的NAT实例 – gsaslis

0

要在ECS上注册您的实例,您需要来自实例的外部连接。

对于来自私有子网上的实例的传出连接,需要NAT,但不需要公网IP。

ECS在每台需要连接到服务以管理状态的服务器中启动一个容器,为此,您的私有子网上的实例需要通过NAT连接到外部世界。

0

这个问题很难回答。 ECS只是将Ec2实例启动到您的配置中。如果你在没有公有IP的子网中启动它们,它们将不会拥有它们。您必须拥有基础设施才能访问它们,例如NAT,VPN等。ECS群集没有特殊配置。如果您可以访问您的EC2实例,则应该可以访问ECS实例。

+0

嗨,我能够达到EC2实例(即使他们是在一个私人子网,因为我使用直接连接),但问题是没有公共IP实例没有在ECS群集中注册... – Ionut

+0

这是不对的,你的配置是错误的。我们使用私有ECS实例。 ECS不关心你的实例是公有的还是私有的,只要运行在虚拟机上的docker上的ecs代理可以击中ECS注册表 –

0

I was al所以试图通过将群集部署到私有子网来阻止对ECS实例的公共请求,并且后来发现我需要一个每天花费大约1美元的NAT服务器/网关。

如果您只是想阻止对ECS实例的恶意嗅探请求,则可以将ECS实例的安全组更新为公有子网。这将为您节省30美元/天。

相关问题