Amazon Virtual Private Cloud
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

Internet 网关

Internet 网关是一种横向扩展、支持冗余且高度可用的 VPC 组件,可实现 VPC 中的实例与 Internet 之间的通信。因此它不会对网络流量造成可用性风险或带宽限制。

Internet 网关有两个用途,一个是在 VPC 路由表中为 Internet 可路由流量提供目标,另一个是为已经分配了公有 IPv4 地址的实例执行网络地址转换 (NAT)。

Internet 网关支持 IPv4 和 IPv6 流量。

启用 Internet 访问

要为 VPC 子网中的实例开启 Internet 访问,您必须执行以下操作:

  • 将 Internet 网关连接到 VPC。

  • 确保您的子网的路由表指向 Internet 网关。

  • 确保您的子网中的实例具有全局唯一 IP 地址 (公有 IPv4 地址、弹性 IP 地址或 IPv6 地址)。

  • 确保您的网络访问控制和安全组规则允许相关流量在您的实例中流入和流出。

要使用 Internet 网关,子网的路由表必须包含将 Internet 绑定流量定向到该 Internet 网关的路由。您可以将路由范围设定为路由表未知的所有目标 (IPv4 为 0.0.0.0/0,IPv6 为 ::/0),也可以将路由范围设定为一个较小的 IP 地址范围,例如,公司在 AWS 以外的公有终端节点的公有 IPv4 地址,或 VPC 以外的其他 Amazon EC2 实例的弹性 IP 地址。如果子网的关联路由表包含指向 Internet 网关的路由,该子网就称为公有子网

要为 IPv4 启用 Internet 通信,您的实例必须具有与实例上的私有 IPv4 地址相关联的公有 IPv4 地址或弹性 IP 地址。实例只了解 VPC 和子网内定义的私有 (内部) IP 地址空间。Internet 网关以逻辑方式代表您的实例提供一对一 NAT,这样,当流量离开 VPC 子网流向 Internet 时,回复地址字段将设置为实例的公有 IPv4 地址或弹性 IP 地址,而不是私有 IP 地址。相反,指定发往实例的公有 IPv4 地址或弹性 IP 地址的流量会先将其目标地址转换为实例的私有 IPv4 地址,然后再传输到 VPC。

要为 IPv6 启用 Internet 通信,您的 VPC 和子网必须具有关联的 IPv6 CIDR 块,并且您的实例必须从此子网范围分配 IPv6 地址。IPv6 地址是全球唯一的,因此默认为公有。

在下图中,VPC 中的子网 1 与自定义路由表相关联,该路由表将所有 Internet 绑定的 IPv4 流量指向一个 Internet 网关。实例具有弹性 IP 地址,可以与 Internet 进行通信。

使用 Internet 网关

对默认和非默认 VPC 的 Internet 访问

下表概述了您的 VPC 是否自动提供通过 IPv4 或 IPv6 进行 Internet 访问所需的组件。

默认 VPC 非默认 VPC
Internet 网关 如果 VPC 是使用 VPC 向导中的第一个或第二个选项创建的,则是。否则,您必须手动创建和连接 Internet 网关。
路由表包含将 IPv4 流量路由到 Internet 网关的路由 (0.0.0.0/0) 如果 VPC 是使用 VPC 向导中的第一个或第二个选项创建的,则是。否则,您必须手动创建路由表并添加此路由。
路由表包含将 IPv6 流量路由到 Internet 网关的路由 (::/0) 如果此 VPC 是使用 VPC 向导中的第一个或第二个选项创建的,并且您指定了将 IPv6 CIDR 块与此 VPC 关联的选项,则是。否则,您必须手动创建路由表并添加此路由。
公有 IPv4 地址自动分配到在子网中启动的实例 是 (默认子网) 否 (非默认子网)
IPv6 地址自动分配到在子网中启动的实例 否 (默认子网) 否 (非默认子网)

有关默认 VPC 的更多信息,请参阅默认 VPC 和默认子网。有关使用 VPC 向导创建有 Internet 网关的 VPC 的更多信息,请参阅场景 1:带单个公有子网的 VPC场景 2:带有公有子网和私有子网 (NAT) 的 VPC

有关您的 VPC 中的 IP 寻址以及控制如何为实例分配公有 IPv4 或 IPv6 地址的更多信息,请参阅您的 VPC 中的 IP 地址

当您在 VPC 中添加新子网时,您必须为子网设置您需要的路由和安全性。

创建带有 Internet 网关的 VPC

以下部分说明了如何手动创建一个公有子网来支持 Internet 访问。

创建子网

为您的 VPC 添加子网

  1. 打开 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/

  2. 在导航窗格中,选择 Subnets,然后选择 Create Subnet

  3. Create Subnet 对话框中,选择 VPC,选择可用区,为子网指定 IPv4 CIDR 块。

  4. (可选,仅限 IPv6) 对于 IPv6 CIDR block,选择 Specify a custom IPv6 CIDR

  5. 选择 Yes, Create

有关子网的更多信息,请参阅VPC 和子网

连接 Internet 网关

创建 Internet 网关,并将其连接至您的 VPC

  1. 打开 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/

  2. 在导航窗格中,选择 Internet Gateways,然后选择 Create Internet Gateway

  3. Create Internet Gateway 对话框中,您可以选择命名您的 Internet 网关,然后选择 Yes, Create

  4. 选择您刚刚创建的 Internet 网关,然后选择 Attach to VPC

  5. Attach to VPC 对话框中,从列表中选择您的 VPC,然后选择 Yes, Attach

创建自定义路由表

当您创建子网时,我们会自动将其与 VPC 的主路由表关联。主路由表在默认情况下不会包含通往 Internet 网关的路径。以下步骤为您演示如何创建自定义路由表,使其中有可以将目标为 VPC 外的数据流发送到 Internet 网关的路由,以及如何将自定义路由表与您的子网相关联。

创建自定义路由表

  1. 打开 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/

  2. 在导航窗格中,选择 Route Tables,然后选择 Create Route Table

  3. Create Route Table 对话框中,可以选择命名您的路由表,选择您的 VPC,然后选择 Yes, Create

  4. 选择您刚刚创建的自定义路由表。详细信息窗格中会显示选项卡,以供您使用其路径、关联和路线传播。

  5. Routes 选项卡中,依次选择 EditAdd another route,然后根据需要添加以下路由。完成此操作后,选择 Save

    • 对于 IPv4 流量,在 Destination 框中指定 0.0.0.0/0,然后在 Target 列表中选择 Internet 网关 ID。

    • 对于 IPv6 流量,在 Destination 框中指定 ::/0,然后在 Target 列表中选择 Internet 网关 ID。

  6. Subnet Associations 选项卡上,选择 Edit,选中子网的 Associate 复选框,然后选择 Save

有关路由表的更多信息,请参见路由表

更新安全组规则

您的 VPC 带有默认的安全组。您在 VPC 中启动的每项实例都会自动与其默认安全组关联。默认安全组的默认设置不允许来自 Internet 的任何入站数据流量,但允许通往 Internet 的所有出站数据流量。因此,为使您的实例能够与 Internet 通信,您需要创建允许公用实例访问 Internet 的新安全组。

创建新的安全组,并将其与您的实例关联

  1. 打开 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/

  2. 在导航窗格中,选择 Security Groups,然后选择 Create Security Group

  3. 在“Create Security Group”对话框中,为您的安全组指定名称和说明。从 VPC 列表中选择您的 VPC 的 ID,然后选择 Yes, Create

  4. 选择安全组。详细信息窗格内会显示此安全组的详细信息,以及可供您使用入站规则和出站规则的选项卡。

  5. Inbound Rules 选项卡上,选择 Edit。选择 Add Rule,然后填写所需信息。例如,从 Type 列表中选择 HTTPHTTPS,然后在 Source 中输入 0.0.0.0/0 (对于 IPv4 流量) 或 ::/0 (对于 IPv6 流量)。完成此操作后,选择 Save

  6. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  7. 在导航窗格中,选择 Instances

  8. 依次选择实例、ActionsNetworkingChange Security Groups

  9. Change Security Groups (更改安全组) 对话框中,清除当前所选安全组的复选框,然后选中一个新的复选框。选择 Assign Security Groups

有关安全组的更多信息,请参阅 您的 VPC 的安全组

添加弹性 IP 地址

在子网中启动实例之后,如果您希望它能够通过 IPv4 连接 Internet,则必须为其指定弹性 IP 地址。

注意

如果您在启动过程中向您的实例分配了公有 IPv4 地址,则您的实例可从 Internet 进行访问,您无需向它分配弹性 IP 地址。想要了解更多有关您实例的 IP 寻址的信息,请参阅 您的 VPC 中的 IP 地址

使用控制台分配弹性 IP 地址并将其分配给一个实例

  1. 打开 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/

  2. 在导航窗格中,选择 Elastic IPs

  3. 选择 Allocate new address

  4. 选择 Allocate

    注意

    如果您的账户支持 EC2-Classic,请首先选择 VPC

  5. 从列表中选择弹性 IP 地址,选择 Actions,然后选择 Associate address

  6. 选择 InstanceNetwork interface,然后选择实例 ID 或网络接口 ID。选择要与弹性 IP 地址关联的私有 IP 地址,然后选择 Associate

有关弹性 IP 地址的更多信息,请参阅弹性 IP 地址

将 Internet 网关与您的 VPC 断开

如果您不再需要通过 Internet 访问在非默认 VPC 中启动的实例,则可将 Internet 网关与 VPC 断开。如果 VPC 的某些资源具有关联的公有 IP 地址或弹性 IP 地址,则无法断开 Internet 网关。

断开 Internet 网关

  1. 打开 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/

  2. 在导航窗格中,选择 Elastic IPs,然后选择弹性 IP 地址。

  3. 选择 ActionsDisassociate address。选择 Disassociate address

  4. 在导航窗格中,选择 Internet Gateways

  5. 选择相应的 Internet 网关,然后选择 Detach from VPC

  6. Detach from VPC 对话框中,选择 Yes, Detach

删除 Internet 网关

若您不再需要某一 Internet 网关,则可将其删除。您无法删除仍与 VPC 关联的 Internet 网关。

删除 Internet 网关

  1. 打开 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/

  2. 在导航窗格中,选择 Internet Gateways

  3. 选择相应的 Internet 网关,然后选择 Delete

  4. Delete Internet Gateway 对话框中,选择 Yes, Delete

API 和命令概览

您可以使用命令行或 API 执行此页面上所说明的任务。有关命令行接口的更多信息以及可用 API 操作的列表,请参阅访问 Amazon VPC

创建 Internet 网关

将 Internet 网关附加到 VPC

说明 Internet 网关

从 VPC 断开 Internet 网关

删除 Internet 网关