本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
默认 VPC
当您开启使用 Amazon VPC 时,每个 Amazon 区域都有一个原定设置的 VPC。原定设置 VPC 在每个可用区中都有一个公有子网、一个互联网网关以及用于启用 DNS 解析的设置。因此,您可以立即在原定设置 VPC 中启动 Amazon EC2 实例。您还可以在默认 VPC 中使用 Elastic Load Balancing、Amazon RDS 和 Amazon EMR 等服务。
原定设置 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 关联。
-
关联为您的 Amazon 账户设置的默认 DHCP 选项与您的默认 VPC。
注意
Amazon 代表您创建上述资源。IAM policy 不应用到这些操作,因为您不执行这些操作。例如,如果您有 IAM policy 拒绝了调用 CreateInternetGateway 的功能,然后您调用 CreateDefaultVpc,则仍会在默认 VPC 中创建互联网网关。
下图表明了我们为默认 VPC 设置的关键组件。
![我们在每个区域创建一个默认 VPC,每个可用区都有一个默认子网。](images/default-vpc.png)
下表显示默认 VPC 的主路由表中的路由。
目标位置 | 目标 |
---|---|
172.31.0.0/16 | 本地 |
0.0.0.0/0 | internet_gateway_id |
您可以像使用任何其他 VPC 一样使用默认 VPC:
-
添加更多非默认子网。
-
修改主路由表。
-
添加更多路由表。
-
关联更多安全组。
-
更新默认安全组的规则。
-
添加 Amazon Site-to-Site VPN 连接。
-
添加更多 IPv4 CIDR 块。
-
使用 Direct Connect 网关访问远程区域中的 VPC。有关 Direct Connect 网关选项的信息,请参阅《Amazon Direct Connect 用户指南》中的 Direct Connect 网关。
您可像使用任何其他子网一样使用默认子网;可添加自定义路由表和设置网络 ACL。您还可以在启动 EC2 实例时指定特定默认子网。
您可以选择将 IPv6 CIDR 块与默认 VPC 关联。
默认子网
默认情况下,默认子网为公有子网,因为主路由表会将指定发往 Internet 的子网流量发送到 Internet 网关。您可以从到 Internet 网关的目标 0.0.0.0/0 中删除路由,以使默认子网变为私有子网。但是,如果您执行此操作,则在该子网中运行的所有 EC2 实例都无法访问 Internet。
您在默认子网中启动的实例将同时接收公有 IPv4 地址和私有 IPv4 地址以及公有和私有 DNS 主机名。在默认 VPC 中的非默认子网内启动的实例不接收公有 IPv4 地址或 DNS 主机名。您可以更改您子网的默认公有 IP 寻址行为。有关更多信息,请参阅 修改子网的公有 IPv4 寻址属性。
有时,Amazon 可能会向某个区域添加新可用区。大多数情况下,我们会在几天内在此可用区中为您的默认 VPC 自动创建新的默认子网。但是,如果您对默认 VPC 进行过任何修改,那么我们不会添加新的默认子网。如果您希望对新的可用区使用默认子网,则可以自行创建一个。有关更多信息,请参阅创建默认子网。
查看您的默认 VPC 和默认子网
您可以使用 Amazon VPC 控制台或命令行查看您的默认 VPC 和子网。
使用 控制台查看您的默认 VPC 和子网
通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/
。 -
在导航窗格中,选择 Your VPCs。
-
在 Default VPC 列中,查找值 Yes。记下默认 VPC 的 ID。
-
在导航窗格中,选择 Subnets (子网)。
-
在搜索栏中,键入默认 VPC 的 ID。返回的子网是您的默认 VPC 中的子网。
-
要验证哪些子网是默认子网,请在 Default Subnet 列中查找值 Yes。
使用命令行描述您的默认 VPC
-
使用 describe-vpcs (Amazon CLI)
-
使用 Get-EC2Vpc (Amazon Tools for Windows PowerShell)
将命令与 isDefault
筛选器结合使用并将筛选值设置为 true
。
使用命令行描述您的默认子网
-
使用 describe-subnets (Amazon CLI)
-
使用 Get-EC2Subnet (Amazon Tools for Windows PowerShell)
将命令与 vpc-id
筛选器结合使用并将筛选值设置为默认 VPC 的 ID。在输出中,DefaultForAz
字段对默认子网设置为 true
。
创建默认 VPC
如果您删除了默认 VPC,则可以创建一个新的默认 VPC。您无法恢复之前删除的默认 VPC,并且无法将现有非默认 VPC 标记为默认 VPC。
当您创建默认 VPC 时,将使用默认 VPC 的标准组件创建它 (包括每个可用区中的默认子网)。您无法指定您自己的组件。新的默认 VPC 的子网 CIDR 块可能不会与之前的默认 VPC 映射到同一可用区。例如,如果具有 CIDR 块的子网 172.31.0.0/20
是在之前的默认 VPC 的 us-east-2a
中创建的,则该子网可能在新的默认 VPC 的 us-east-2b
中创建。
如果您在该区域中已经有默认 VPC,则无法创建另一个默认 VPC。
使用 控制台创建默认 VPC
通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/
。 -
在导航窗格中,选择 Your VPCs。
-
依次选择 Actions 和 Create Default VPC。
-
选择创建。关闭确认屏幕。
使用命令行创建默认 VPC
您可以使用 create-default-vpc Amazon 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 操作。
创建默认子网
您可以在没有默认子网的可用区中创建一个默认子网。例如,如果您已删除默认子网,或者 Amazon 已添加新的可用区但未在您的默认 VPC 中为该区域自动创建默认子网,则您可能需要创建一个默认子网。
创建默认子网时,将使用您的默认 VPC 中的下一个可用连续空间内的大小为 /20
的 IPv4 CIDR 块创建它。以下规则适用:
-
不能自行指定 CIDR 块。
-
不能恢复已删除的之前的默认子网。
-
每个可用区只能有一个默认子网。
-
不能在非默认 VPC 中创建默认子网。
如果您的默认 VPC 中没有用于创建大小为 /20
的 CIDR 块的足够地址空间,则请求会失败。如果您需要更多地址空间,则可以将 IPv4 CIDR 块添加到您的 VPC。
如果您已将 IPv6 CIDR 块与您的默认 VPC 关联,则新的默认子网不会自动接收 IPv6 CIDR 块。您可以改为在创建一个 IPv6 CIDR 块后将其与默认子网关联。有关更多信息,请参阅 将 IPv6 CIDR 块添加到子网。
您不能使用 Amazon Web Services Management Console 创建默认子网。
使用 Amazon CLI 创建默认子网
使用 create-default-subnet Amazon 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
}
}
有关设置 Amazon CLI 的更多信息,请参阅《Amazon Command Line Interface 用户指南》。
或者,您也可以使用 New-EC2DefaultSubnet Tools for Windows PowerShell 命令或 CreateDefaultSubnet Amazon EC2 API 操作。
删除您的默认子网和默认 VPC
您可以像删除其他任何子网或 VPC 一样删除默认子网或默认 VPC。但是,如果您删除默认子网或默认 VPC,则在启动实例时必须显式指定您的一个 VPC 中的一个子网。如果您没有另一个 VPC,则必须创建至少在一个可用区内有一个子网的 VPC。有关更多信息,请参阅创建 VPC。
如果您删除了默认 VPC,则可以创建一个新的默认 VPC。有关更多信息,请参阅 创建默认 VPC。
如果您删除默认子网,则可以创建一个新的默认子网。有关更多信息,请参阅 创建默认子网。为了确保您的新默认子网按预期正常运行,请修改子网属性以将公有 IP 地址分配到在该子网中启动的实例。有关更多信息,请参阅 修改子网的公有 IPv4 寻址属性。每个可用区只能有一个默认子网。不能在非默认 VPC 中创建默认子网。