默认 VPC - Amazon Virtual Private Cloud

默认 VPC

当您开启使用 Amazon VPC 时,每个 AWS 区域都有一个原定设置的 VPC。原定设置 VPC 在每个可用区中都有一个公有子网、一个互联网网关以及用于启用 DNS 解析的设置。因此,您可以立即在原定设置 VPC 中启动 Amazon EC2 实例。您还可以在默认 VPC 中使用 Elastic Load Balancing、Amazon RDS 和 Amazon EMR 等服务。

原定设置 VPC 适用于快速入门和启动公有实例 (如博客或简单的网站)。您可以按需修改您的默认 VPC 的组件。

您可以将子网添加到原定设置 VPC 中。有关更多信息,请参阅在您的 VPC 中创建子网

默认 VPC 组件

当我们创建默认 VPC 时,我们会通过以下操作为您完成设置:

  • 创建 IPv4 CIDR 块大小为 /16 的 VPC (172.31.0.0/16)。最多可提供 65536 个私有 IPv4 地址。

  • 在每个可用区内创建大小为 /20 的默认子网。这将为每个子网提供多达 4,096 个地址,其中有一些被预留下来供我们使用。

  • 创建 internet 网关并将其连接到您的默认 VPC。

  • 在主路由表中添加一个将所有流量 (0.0.0.0/0) 指向互联网网关的路由。

  • 创建默认安全组并将其与您的默认 VPC 关联。

  • 创建默认网络访问控制列表 (ACL),并将其与您的默认 VPC 关联。

  • 关联为您的 AWS 账户设置的默认 DHCP 选项与您的默认 VPC。

注意

Amazon 代表您创建上述资源。IAM 策略不应用到这些操作,因为您不执行这些操作。例如,如果您有 IAM 策略拒绝了调用 CreateInternetGateway 的功能,然后您调用 CreateDefaultVpc,则仍会在默认 VPC 中创建互联网网关。

下图表明了我们为默认 VPC 设置的关键组件。


				我们在每个区域创建一个默认 VPC,每个可用区都有一个默认子网。

下表显示默认 VPC 的主路由表中的路由。

目标 目标
172.31.0.0/16 本地
0.0.0.0/0 internet_gateway_id

您可以像使用任何其他 VPC 一样使用默认 VPC:

  • 添加更多非默认子网。

  • 修改主路由表。

  • 添加更多路由表。

  • 关联更多安全组。

  • 更新默认安全组的规则。

  • 添加 AWS Site-to-Site VPN 连接。

  • 添加更多 IPv4 CIDR 块。

  • 使用 Direct Connect 网关访问远程区域中的 VPC。有关 Direct Connect 网关选项的信息,请参阅《AWS Direct Connect 用户指南》中的 Direct Connect 网关

您可像使用任何其他子网一样使用默认子网;可添加自定义路由表和设置网络 ACL。您还可以在启动 EC2 实例时指定特定默认子网。

您可以选择将 IPv6 CIDR 块与默认 VPC 关联。有关更多信息,请参阅 使用 VPC

默认子网

默认情况下,默认子网为公有子网,因为主路由表会将指定发往 Internet 的子网流量发送到 Internet 网关。您可以从到 Internet 网关的目标 0.0.0.0/0 中删除路由,以使默认子网变为私有子网。但是,如果您执行此操作,则在该子网中运行的所有 EC2 实例都无法访问 Internet。

您在默认子网中启动的实例将同时接收公有 IPv4 地址和私有 IPv4 地址以及公有和私有 DNS 主机名。在默认 VPC 中的非默认子网内启动的实例不接收公有 IPv4 地址或 DNS 主机名。您可以更改您子网的默认公有 IP 寻址行为。有关更多信息,请参阅 修改子网的公有 IPv4 寻址属性

有时,AWS 可能会向某个区域添加新可用区。大多数情况下,我们会在几天内在此可用区中为您的默认 VPC 自动创建新的默认子网。但是,如果您对默认 VPC 进行过任何修改,那么我们不会添加新的默认子网。如果您希望对新的可用区使用默认子网,则可以自行创建一个。有关更多信息,请参阅创建默认子网

查看您的默认 VPC 和默认子网

您可以使用 Amazon VPC 控制台或命令行查看您的默认 VPC 和子网。

使用 控制台查看您的默认 VPC 和子网

  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Your VPCs

  3. Default VPC 列中,查找值 Yes。记下默认 VPC 的 ID。

  4. 在导航窗格中,选择 Subnets (子网)

  5. 在搜索栏中,键入默认 VPC 的 ID。返回的子网是您的默认 VPC 中的子网。

  6. 要验证哪些子网是默认子网,请在 Default Subnet 列中查找值 Yes

使用命令行描述您的默认 VPC

将命令与 isDefault 筛选器结合使用并将筛选值设置为 true

使用命令行描述您的默认子网

将命令与 vpc-id 筛选器结合使用并将筛选值设置为默认 VPC 的 ID。在输出中,DefaultForAz 字段对默认子网设置为 true

创建默认 VPC

如果您删除了默认 VPC,则可以创建一个新的默认 VPC。您无法恢复之前删除的默认 VPC,并且无法将现有非默认 VPC 标记为默认 VPC。如果您的账户支持 EC2-Classic,您将无法利用这些步骤在支持 EC2-Classic 的区域中创建默认 VPC。

当您创建默认 VPC 时,将使用默认 VPC 的标准组件创建它 (包括每个可用区中的默认子网)。您无法指定您自己的组件。新的默认 VPC 的子网 CIDR 块可能不会与之前的默认 VPC 映射到同一可用区。例如,如果具有 CIDR 块的子网 172.31.0.0/20 是在之前的默认 VPC 的 us-east-2a 中创建的,则该子网可能在新的默认 VPC 的 us-east-2b 中创建。

如果您在该区域中已经有默认 VPC,则无法创建另一个默认 VPC。

使用 控制台创建默认 VPC

  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Your VPCs

  3. 依次选择 ActionsCreate Default VPC

  4. 选择创建。关闭确认屏幕。

使用命令行创建默认 VPC

您可以使用 create-default-vpc AWS CLI 命令。此命令没有任何输入参数。

aws ec2 create-default-vpc

下面是示例输出。

{ "Vpc": { "VpcId": "vpc-3f139646", "InstanceTenancy": "default", "Tags": [], "Ipv6CidrBlockAssociationSet": [], "State": "pending", "DhcpOptionsId": "dopt-61079b07", "CidrBlock": "172.31.0.0/16", "IsDefault": true } }

或者,您可以将 New-EC2DefaultVpc 工具用于 Windows PowerShell 命令或 CreateDefaultVpc Amazon EC2 API 操作。

创建默认子网

您可以在没有默认子网的可用区中创建一个默认子网。例如,如果您已删除默认子网,或者 AWS 已添加新的可用区但未在您的默认 VPC 中为该区域自动创建默认子网,则您可能需要创建一个默认子网。

创建默认子网时,将使用您的默认 VPC 中的下一个可用连续空间内的大小为 /20 的 IPv4 CIDR 块创建它。以下规则适用:

  • 不能自行指定 CIDR 块。

  • 不能恢复已删除的之前的默认子网。

  • 每个可用区只能有一个默认子网。

  • 不能在非默认 VPC 中创建默认子网。

如果您的默认 VPC 中没有用于创建大小为 /20 的 CIDR 块的足够地址空间,则请求会失败。如果您需要更多地址空间,则可以将 IPv4 CIDR 块添加到您的 VPC

如果您已将 IPv6 CIDR 块与您的默认 VPC 关联,则新的默认子网不会自动接收 IPv6 CIDR 块。您可以改为在创建一个 IPv6 CIDR 块后将其与默认子网关联。有关更多信息,请参阅 关联 IPv6 CIDR 块与子网

您不能使用 AWS Management Console 创建默认子网

使用 AWS CLI 创建默认子网

使用 create-default-subnet AWS CLI 命令并指定要在其中创建子网的可用区。

aws ec2 create-default-subnet --availability-zone us-east-2a

下面是示例输出。

{ "Subnet": { "AvailabilityZone": "us-east-2a", "Tags": [], "AvailableIpAddressCount": 4091, "DefaultForAz": true, "Ipv6CidrBlockAssociationSet": [], "VpcId": "vpc-1a2b3c4d", "State": "available", "MapPublicIpOnLaunch": true, "SubnetId": "subnet-1122aabb", "CidrBlock": "172.31.32.0/20", "AssignIpv6AddressOnCreation": false } }

有关设置 AWS CLI 的更多信息,请参阅《AWS Command Line Interface 用户指南》。

或者,您也可以使用 New-EC2DefaultSubnet Tools for Windows PowerShell 命令或 CreateDefaultSubnet Amazon EC2 API 操作。

删除您的默认子网和默认 VPC

您可以像删除其他任何子网或 VPC 一样删除默认子网或默认 VPC。有关更多信息,请参阅 使用 VPC。但如果您删除默认子网或默认 VPC,则您必须明确指定要在其中启动实例的另一个 VPC 中的子网,因为您无法在 EC2-Classic 内启动实例。如果您没有另一个 VPC,您必须创建非默认 VPC 与非默认子网。有关更多信息,请参阅 创建 VPC

如果您删除了默认 VPC,则可以创建一个新的默认 VPC。有关更多信息,请参阅 创建默认 VPC

如果您删除默认子网,则可以创建一个新的默认子网。有关更多信息,请参阅 创建默认子网。为了确保您的新默认子网按预期正常运行,请修改子网属性以将公有 IP 地址分配到在该子网中启动的实例。有关更多信息,请参阅 修改子网的公有 IPv4 寻址属性。每个可用区只能有一个默认子网。不能在非默认 VPC 中创建默认子网。