我已采取以下步骤:
- 创建一个VPC(具有单个公共子网)
- 向VPC添加了EC2实例
- 分配弹性IP
- 将弹性IP与实例相关联
- 创建一个安全组并将其分配给实例
- 修改了安全规则,以允许端口22上的入站ICMP回显和TCP
我已经完成了所有这些操作,但仍然无法对实例执行ping或ssh操作。如果我按照相同的步骤减去VPC位,则可以进行设置。我想走哪一步?
我已采取以下步骤:
我已经完成了所有这些操作,但仍然无法对实例执行ping或ssh操作。如果我按照相同的步骤减去VPC位,则可以进行设置。我想走哪一步?
Answers:
要在VPC外部进行通信,每个非默认子网都需要一个路由表和一个与其关联的Internet网关(默认子网默认情况下会获得一个外部网关和一个路由表)。
根据您在VPC中创建公共子网的方式,您可能需要另外显式添加它们。您的VPC设置听起来像与场景1匹配- 具有单个公共子网的私有云(VPC),以及Internet网关,以允许通过 AWS VPC文档通过Internet进行通信。
您需要将Internet网关添加到VPC,并在“公共子网”的路由表中分配0.0.0.0/0
(默认路由)以转到分配的Internet网关。文档中有确切的网络拓扑图。
此外,有关更多信息,您可以查看VPC Internet Gateway AWS文档。不幸的是,这有点混乱,而且不是显而易见的陷阱。
有关连接问题的更多详细信息,另请参见:对连接实例进行故障排除。
我注意到(我认为)您需要注意在其中创建实例的可用区域。子网,网络接口和实例必须位于同一可用区域中,否则无法连接到公共IP对于那个例子。
我可能是错的-但我不这么认为,这使我花费了12个小时的工作才能弄清楚。
希望这对其他人有帮助。
/16
VPC,然后/24
在要使用的每个可用区中创建一个的地方
您应该分配一个ENI并将弹性IP分配给该ENI。另外,您应该将此ENI分配给您的VPC。路由表也必须正确,才能将外部数据包正确转发到您的VPC。