负载平衡器后面的外部networking访问

我正在尝试将我们的AWS EC2实例放在负载均衡器后面。 这工作得很好,但我有一个问题,我不确定如何解决。

负载均衡器后面的实例没有分配公共IP地址,除了通过负载均衡器之外,没有直接访问互联网。

问题是,这意味着我不能使用yum更新实例,因为你得到以下几点:

Loaded plugins: priorities, update-motd, upgrade-helper Could not retrieve mirrorlist http://repo.eu-west-1.amazonaws.com/latest/main/mirror.list error was 12: Timeout on http://repo.eu-west-1.amazonaws.com/latest/main/mirror.list: (28, 'Connection timed out after 10000 milliseconds') 

同样,我也不能从git下载最新的代码到实例中。

我已经做了search,但我找不到解决scheme。 别人怎么解决这个问题? 这个最好的做法是什么? 将公共IP分配给负载均衡器后面的每个实例的唯一方法是?

您不需要每个实例的公共IP地址,只需提供对这些实例的Internet访问权限即可。

一种方法是使用NAT网关,但您也可以通过将一个公共IP地址分配给一个实例并在其上连接其他服务器来安装(HTTP)代理服务器来设置NAT实例或自行设置。

@HBruijn描述了这可能是最常见的方式。

如果您只想运行OS更新,则还可以使用EC2 Systems Manager (完整文档)。 这是更多的工作,但可以自动化。

您仍然可以暂时或永久地将Elastic IP分配给您的实例。 这不是标准的做法,但是如果你想手动进行更新,这是一个解决方法。