2

我在 AWS 管理控制台的 VPC 服务主页上使用“创建 VPC”而不是“创建 VPC 向导”命令按钮设置了一个非默认 VPC - 这是因为我最终将使用 CloudFormation 自动执行该过程。我为公共子网设置了一个 Internet 网关,并为私有子网设置了一个 NAT 网关。然后,我为每个子网创建了一个 Amazon Linux 实例。

我能够在公共子网上 ping www.columbia.edu,但我在私有子网上的实例中的“sudo yum update”命令 - 该命令的执行返回了一条消息,指出找不到 repo。

什么地方出了错?

4

1 回答 1

1
  1. 互联网网关不是问题。它已附加到正确的 VPC,其状态为 { State: attach, Attachment state: available } 默认情况下,Internet 网关将在创建 Internet 网关时指向 VPC 的公共子网。

公共子网的自定义路由表又名 { Main: No } 在“路由”选项卡的最后一行包含默认路由 0.0.0.0/0 igw-**** 其中 igw-**** 是互联网网关。在“子网关联”选项卡中,公共子网与自定义路由表显式关联。

此时,通过从公共子网上的实例 ping www.columbia.edu 进行验证应该成功。

  1. NAT 网关需要指向正确的 VPC,您需要为其分配一个 EIP(弹性 IP 地址),并且您需要在创建时将其位置指定为公共子网。如果您错误配置了 NAT 网关,您可能别无选择,只能删除配置错误的 NAT 网关,创建一个具有正确配置的新 NAT 网关并重新启动您的公共和实例,以便您的实例可以调用正确的 NAT 网关。

主路由表 { Main: yes } 在“路由”选项卡的最后一行包含默认路由 0.0.0.0/0 nat-****,其中 nat-**** 是 NAT 网关的 ID。再一次:NAT网关的私有IP地址必须是Public子网的私有地址之一。

此时,在私有子网上的实例上运行“sudo yum update”——该命令应该会成功。

  1. 如果您要添加更多公共子网,请确保将每个新添加的公共子网与 Internet 网关相关联 - 我认为 Internet 网关会自动执行此操作,但验证并没有什么坏处。

  2. 如果您要添加更多私有子网,请确保为每个新添加的私有子网分配一个全新的 NAT 网关。请记住,如果 AZ(可用区)出现故障,则为 AZ 提供服务的 NAT 网关也会出现故障。

于 2016-12-26T00:35:56.267 回答