我们希望我们的内部私有 EC2 实例能够访问互联网,以便它们可以下载软件并安装安全补丁。当然,开箱即用,您的私有子网服务器将无法访问互联网。我遵循这些 AWS 说明我希望有人能确认设置是否正确。
概述
- 新的公共 NAT 需要安装在具有到互联网网关的路由的子网中。这意味着我必须让 us-east-1f 使用默认主路由表,并在 1f 的公共子网中安装 NAT。
- 然后,我为子网 1a 到 1e 创建了一个新的路由表,以便通过 1f 中的 NAT 发送流量。
- 现在,1a 到 1e 中的公共实例和私有实例都可以访问公共互联网
担忧
- 这似乎很奇怪,我必须为这个 NAT 保留子网 us-east-1f,而且如果我希望它们能够下载安全更新,我就不能将私有 EC2 实例放置在 1f 中。
- 我的所有其他子网现在都依赖于 1f。如果 1f 出现故障,所有公共外部网络流量也会中断。
对此设置有什么想法或顾虑吗?它正确吗?
答案1
您可以在 us-east-1f 中同时拥有私有子网和公共子网。该可用区无需为您的公共子网“保留”。您在 us-east-1f 中的私有子网将通过 us-east-1f 中的公共子网中的 NAT。
此外,您选择在单个可用区中使用单个 NAT。是的,这会产生单点故障。
为了分散风险,请在多个 AZ 上创建多个 NAT,并让每个 AZ 将传出流量路由到本地 NAT。
答案2
如果您想使用所有最佳实践构建 VPC,同时使用公共和私有子网覆盖多个 AZ,我强烈建议您使用此 CloudFormation 模板。
https://docs.aws.amazon.com/codebuild/latest/userguide/cloudformation-vpc-template.html
整个过程非常简单,而且几乎可以为您完成所有事情,只需五分钟即可完成。