

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建立 VPC
<a name="create-vpc"></a>

使用下列程序建立虛擬私有雲端 (VPC)。VPC 必須具有其他資源 (例如子網路、路由表和閘道)，才能在 VPC 中建立 AWS 資源。

**Topics**
+ [建立 VPC 以及其他 VPC 資源](#create-vpc-and-other-resources)
+ [僅建立 VPC](#create-vpc-only)
+ [使用 AWS CLI 建立 VPC](#create-vpc-cli)

如需有關修改 VPC 的資訊，請參閱[從您的 VPC 中新增或移除 CIDR 區塊](add-ipv4-cidr.md)。

## 建立 VPC 以及其他 VPC 資源
<a name="create-vpc-and-other-resources"></a>

使用下列程序建立 VPC 以及執行應用程式所需的其他 VPC 資源，例如子網路、路由表、網際網路閘道和 NAT 閘道。如需範例 VPC 組態，請參閱[VPC 範例](vpc-examples-intro.md)。

**如何使用主控台建立 VPC、子網路和其他 VPC 資源**

1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

1. 在 VPC 儀表板上，選擇 **Create VPC (建立 VPC)**。

1. 針對 **Resources to create** (建立資源)，選擇 **VPC and more** (VPC 等)。

1. 保持選取 **自動產生名稱標籤** 以建立 VPC 資源的「名稱」標籤，或將其清除以提供您自己的 VPC 資源「名稱」標籤。

1. 在**IPv4 CIDR 區塊**，輸入 VPC 的 IPv4 地址範圍。VPC 必須具有 IPv4 地址範圍。

1. (選用) 若要支援 IPv6 流量，請選擇 **IPv6 CIDR 區塊** > **Amazon 提供的 IPv6 CIDR 區塊**。

1. 選擇**租用**選項。此選項會定義啟動至 VPC 的 EC2 執行個體，是否會在與其他 AWS 帳戶 共用的硬體上執行，或是在僅供您使用的硬體上執行。如果您選擇 VPC 的租用為 `Default`，則在此 VPC 中啟動的 EC2 執行個體將使用啟動執行個體時指定的租用屬性。如需詳細資訊，請參閱*《Amazon EC2 使用者指南》*中的[使用定義參數啟動執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html)。如果您選擇 VPC 的租用為 `Dedicated`，則執行個體將會一律以硬體上之[專用預留執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html) (專供您使用) 的形式執行。如果您使用 AWS Outposts，則您的 Outpost 需要私人連線；您必須使用 `Default` 租用。

1. 對於**可用區域 (AZ) 的數目**，建議您至少在生產環境的兩個可用區域中佈建子網路。若要選擇子網路的 AZ，請展開**自訂 AZ**。否則，請讓 AWS 為您選擇設定。

1. 若要設定您的子網路，請選擇**公有子網路數目**和**私有子網路數目**的值。若要選擇子網路的 IP 地址範圍，請展開**自訂子網路 CIDR 區塊**。否則，請讓 AWS 為您選擇設定。

1. (選用) 如果私有子網路中的資源需要透過 IPv4 存取公有網際網路，請在 **NAT 閘道**選擇要在其中建立 NAT 閘道的 AZ 數目。在生產環境中，建議您在每個 AZ 中部署一個 NAT 閘道，並包含需要存取公有網際網路的資源。請注意，存在與 NAT 閘道關聯的成本。如需更多詳細資訊，請參閱 [NAT 閘道的定價](nat-gateway-pricing.md)。

1. (選用) 如果私有子網路中的資源需要透過 IPv6 存取公用網際網路，請在**僅限輸出的網際網路閘道**選擇**是**。

1. (選用) 如果您需要直接從 VPC 存取 Amazon S3，請選擇 **VPC 端點** > **S3 閘道**。這會為 Amazon S3 建立閘道 VPC 端點。如需詳細資訊，請參閱《AWS PrivateLink 指南》**中的[閘道端點](https://docs.aws.amazon.com/vpc/latest/privatelink/gateway-endpoints.html)。

1. (選用) 在 **DNS 選項**，網域名稱解析的兩個選項都會依預設啟用。如果預設值不符合需求，您可以停用這些選項。

1. (選用) 若要將標籤新增至 VPC，請展開**其他標籤**，選擇**新增標籤**，然後輸入標籤金鑰和標籤值。

1. 在**預覽**窗格中，您可以透過視覺化方式掌握您已設定的 VPC 資源之間的關係。實線代表資源之間的關係。虛線代表 NAT 閘道、網際網路閘道和閘道端點的網路流量。建立 VPC 後，可以隨時使用**資源映射**索引標籤以此格式將 VPC 中的資源視覺化。如需更多詳細資訊，請參閱 [視覺化 VPC 中的資源](view-vpc-resource-map.md)。

1. 當您完成設定 VPC 後，請選擇**建立 VPC**。

## 僅建立 VPC
<a name="create-vpc-only"></a>

使用下列程序透過 Amazon VPC 主控台建立不含任何其他 VPC 資源的 VPC。

**如何使用主控台建立不含任何其他 VPC 資源的 VPC**

1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

1. 在 VPC 儀表板上，選擇 **Create VPC (建立 VPC)**。

1. 在**建立資源**，選擇**僅 VPC**。

1. (選用) 在**名稱標籤**中，輸入您 VPC 的名稱。執行此作業會使用 `Name` 做為索引鍵，以及您指定的值來建立標籤。

1. 對於 **IPv4 CIDR 區塊**，執行下列其中一個動作：
   + 選擇 **IPv4 CIDR 手動輸入**，然後輸入 VPC 的 IPv4 地址範圍。
   + 選擇 **IPAM 配置的 IPv4 CIDR 區塊**，然後選取您的 Amazon IPAM VPC IP 地址管理員 (IPAM) IPv4 地址集區和網路遮罩。CIDR 區塊的大小會受 IPAM 集區上的分配規則所限制。IPAM 是一項 VPC 功能，可讓您更輕鬆地規劃、追蹤和監控您 AWS 工作負載的 IP 地址。如需詳細資訊，請參閱[《Amazon VPC IPAM 使用者指南》](https://docs.aws.amazon.com/vpc/latest/ipam/what-it-is-ipam.html)。

     如果您是使用 IPAM 來管理 IP 地址，建議您選擇此選項。否則，您為 VPC 指定的 CIDR 區塊可能會與 IPAM CIDR 配置重疊。

1. (選用) 若要建立雙堆疊 VPC，請為您的 VPC 指定 IPv6 地址範圍。對於 **IPv6 CIDR 區塊**，執行下列其中一個動作：
   + 如果您使用 Amazon VPC IP Address Manager，並且想從 IPAM 集區佈建 IPv6 CIDR，選擇 **IPAM-allocated IPv6 CIDR block** (IPAM 配置的 IPv6 CIDR 區塊)。如果使用 IPAM 配置的 IPv6 CIDR 區塊將 IPv6 CIDR 佈建至 VPC，您能取得連續在 VPC 中建立 IPv6 CIDR 帶來的優勢。連續配置的 CIDR 即為依序配置的 CIDR。這些 CIDR 讓您能夠簡化安全與網路規則；IPv6 CIDR 可以彙總在網路與安全建構模組 (例如存取控制清單、路由表、安全群組與防火牆) 之間的單一項目中。

     **CIDR block** (CIDR 區塊) 下提供兩個用於將 IP 地址範圍佈建至 VPC 的選項：
     + **Netmask length** (網路遮罩長度)：選擇此選項可為 CIDR 選取網路遮罩長度。執行以下任意一項：
       + 如果已為 IPAM 集區選取預設網路遮罩長度，您可以選擇 **Default to IPAM netmask length** (預設為 IPAM 網路遮罩長度)，以使用 IPAM 管理員為 IPAM 集區設定的預設網路遮罩長度。如需有關可選預設網路遮罩長度配置規則的詳細資訊，請參閱《*Amazon VPC IPAM 使用者指南*》中的[建立區域 IPv6 集區](https://docs.aws.amazon.com/vpc/latest/ipam/create-ipv6-reg-pool.html)。
       + 如果沒有為 IPAM 集區選取預設網路遮罩長度，則選擇比 IPAM 集區 CIDR 網路遮罩長度更為具體的網路遮罩長度。例如，如果 IPAM 集區 CIDR 是 /50，您可以為 VPC 選擇介於 **/52** 至 **/60** 之間的網路遮罩長度。可能的網路遮罩長度介於 **/44** 和 **/60** 之間 (增量為 /4)。
     + **Select a CIDR** (選取 CIDR)：選擇此選項可手動輸入 IPv6 地址。只能選擇比 IPAM 集區 CIDR 的網路遮罩長度更具體的網路遮罩長度。例如，如果 IPAM 集區 CIDR 是 /50，您可以為 VPC 選擇介於 **/52** 至 **/60** 之間的網路遮罩長度。可能的 IPv6 網路遮罩長度介於 **/44** 和 **/60** 之間 (增量為 /4)。
   + 選擇 **Amazon 提供的 IPv6 CIDR 區塊**，向 Amazon 的 IPv6 地址集區請求 IPv6 CIDR 區塊。在 **Network Border Group** (網路邊界群組) 欄位中，請選取 AWS 在其中公告 IP 地址的群組。Amazon 所提供 IPv6 CIDR 區塊的固定大小為 **/56**。
   + 選擇 **IPv6 CIDR owned by me** (我擁有的 IPv6 CIDR)，佈建已帶入 AWS 的 IPv6 CIDR。如需自備 IP 位址範圍至 AWS 的詳細資訊，請參閱*《Amazon EC2 使用者指南》*中的 [Amazon EC2 中的自備 IP 位址 (BYOIP)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html)。您可以使用 **CIDR 區塊** 的下列選項來佈建 VPC 的 IP 位址範圍：
     + **No preference** (無偏好設定)：選擇此選項可使用網路遮罩長度 **/56**。
     + **Select a CIDR** (選取 CIDR)：選擇此選項可手動輸入 IPv6 地址，並選擇比 BYOIP CIDR 規模更具體的網路遮罩長度。例如，如果 BYOIP 集區 CIDR 是 /50，您可以為 VPC 選擇介於 **/52** 至 **/60** 之間的網路遮罩長度。可能的 IPv6 網路遮罩長度介於 **/44** 和 **/60** 之間 (增量為 /4)。

1. (選用) 選擇**租用**選項。此選項會定義啟動至 VPC 的 EC2 執行個體，是否會在與其他 AWS 帳戶 共用的硬體上執行，或是在僅供您使用的硬體上執行。如果您選擇 VPC 的租用為 `Default`，則啟動至此 VPC 的 EC2 執行個體，將使用啟動執行個體時指定的租用屬性。如需詳細資訊，請參閱*《Amazon EC2 使用者指南》*中的[使用定義的參數啟動執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html)。如果您選擇 VPC 的租用為 `Dedicated`，則執行個體將會一律以硬體上之[專用預留執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html) (專供您使用) 的形式執行。如果您使用 AWS Outposts，則您的 Outpost 需要私人連線；您必須使用 `Default` 租用。

1. (選用) 若要將標籤新增至 VPC，請選擇**新增標籤**，然後輸入標籤金鑰和標籤值。

1. 選擇**建立 VPC**。

1. 建立 VPC 後，您可以新增子網。如需更多詳細資訊，請參閱 [建立子網](create-subnets.md)。

## 使用 AWS CLI 建立 VPC
<a name="create-vpc-cli"></a>

下列程序包含建立 VPC 的範例 AWS CLI 命令，以及執行應用程式所需的其他 VPC 資源。如果您執行此程序中的所有命令，您將會建立 VPC、公有子網路、私有子網路、每個子網路的路由表、網際網路閘道、僅限輸出的網際網路閘道，以及公有 NAT 閘道。如果您不需要所有這些資源，可以只使用您所需的範例命令。

**必要條件**  
開始之前，請先安裝並設定 AWS CLI。設定 AWS CLI 時，系統會提示您輸入 AWS 登入資料。本程序中的範例假設您也設定了預設「區域」。否則，請將 `--region` 選項新增至每個命令。如需詳細資訊，請參閱[安裝或更新 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) 和[設定 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)。

**標記**  
您可以在使用 [create-tags](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-tags.html) 命令建立資源後，將標籤新增至資源。或者，您也可以如下所示將 `--tag-specification` 選項新增至資源的建立命令。

```
--tag-specifications ResourceType=vpc,Tags=[{Key=Name,Value=my-project}]
```

**使用 AWS CLI 建立 VPC 與 VPC 資源**

1. 使用下列 [create-vpc](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-vpc.html) 命令，以建立具有指定 IPv4 CIDR 區塊的 VPC。

   ```
   aws ec2 create-vpc --cidr-block 10.0.0.0/24 --query Vpc.VpcId --output text
   ```

   或者，若要建立雙堆疊 VPC，請新增 `--amazon-provided-ipv6-cidr-block` 選項以新增 Amazon 提供的 IPv6 CIDR 區塊，如下列範例所示。

   ```
   aws ec2 create-vpc --cidr-block 10.0.0.0/24 --amazon-provided-ipv6-cidr-block --query Vpc.VpcId --output text
   ```

   這些命令會傳回新 VPC 的 ID。以下是範例。

   ```
   vpc-1a2b3c4d5e6f1a2b3
   ```

1. [雙堆疊 VPC] 使用下列 [describe-vpcs](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpcs.html) 命令，取得已與您 VPC 建立關聯的 IPv6 CIDR 區塊。

   ```
   aws ec2 describe-vpcs --vpc-id vpc-1a2b3c4d5e6f1a2b3 --query Vpcs[].Ipv6CidrBlockAssociationSet[].Ipv6CidrBlock --output text
   ```

   下列為範例輸出。

   ```
   2600:1f13:cfe:3600::/56
   ```

1. 視您的使用案例而定，可建立一或多個子網路。在生產環境中，建議您至少在兩個可用區域中啟動資源。使用下列其中一個命令來建立各個子網路。
   + **僅限 IPv4 子網路** – 若要建立具有特定 IPv4 CIDR 區塊的子網路，請使用下列 [create-subnet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-subnet.html) 命令。

     ```
     aws ec2 create-subnet --vpc-id vpc-1a2b3c4d5e6f1a2b3 --cidr-block 10.0.1.0/20 --availability-zone us-east-2a --query Subnet.SubnetId --output text
     ```
   + **雙堆疊子網路** – 如果您建立了雙堆疊 VPC，您可以使用 `--ipv6-cidr-block` 選項來建立雙堆疊子網路，如下列命令所示。

     ```
     aws ec2 create-subnet --vpc-id vpc-1a2b3c4d5e6f1a2b3 --cidr-block 10.0.1.0/20 --ipv6-cidr-block 2600:1f13:cfe:3600::/64 --availability-zone us-east-2a --query Subnet.SubnetId --output text
     ```
   + **僅限 IPv6 子網路** – 如果您建立了雙堆疊 VPC，您可以使用 `--ipv6-native` 選項來建立僅限 IPv6子網路，如下列命令所示。

     ```
     aws ec2 create-subnet --vpc-id vpc-1a2b3c4d5e6f1a2b3 --ipv6-native --ipv6-cidr-block 2600:1f13:cfe:3600::/64 --availability-zone us-east-2a --query Subnet.SubnetId --output text
     ```

   這些命令會傳回新子網路的 ID。以下是範例。

   ```
   subnet-1a2b3c4d5e6f1a2b3
   ```

1. 如果您的 Web 伺服器或 NAT 閘道需要公有子網路，請執行下列動作：

   1. 使用下列 [create-internet-gateway](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-internet-gateway.html) 命令，建立網際網路閘道。該命令會傳回新網際網路閘道的 ID。

      ```
      aws ec2 create-internet-gateway --query InternetGateway.InternetGatewayId --output text
      ```

   1. 使用下列 [attach-internet-gateway](https://docs.aws.amazon.com/cli/latest/reference/ec2/attach-internet-gateway.html) 命令，將網際網路閘道連接至您的 VPC。使用上一個步驟傳回的網際網路閘道 ID。

      ```
      aws ec2 attach-internet-gateway --vpc-id vpc-1a2b3c4d5e6f1a2b3 --internet-gateway-id igw-id
      ```

   1. 使用下列 [create-route-table](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-route-table.html) 命令，建立公有子網路的自訂路由表。該命令會傳回新路由表的 ID。

      ```
      aws ec2 create-route-table --vpc-id vpc-1a2b3c4d5e6f1a2b3 --query RouteTable.RouteTableId --output text
      ```

   1. 使用下列 [create-route](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-route.html) 命令，在將所有 IPv4 流量傳送至網際網路閘道的路由表中建立路由。使用公有子網路的路由表 ID。

      ```
      aws ec2 create-route --route-table-id rtb-id-public --destination-cidr-block 0.0.0.0/0 --gateway-id igw-id
      ```

   1. 使用下列 [associate-route-table](https://docs.aws.amazon.com/cli/latest/reference/ec2/associate-route-table.html) 命令，將路由表與公有子網路建立關聯。使用公有子網路的路由表 ID 以及公有子網路的 ID。

      ```
      aws ec2 associate-route-table --route-table-id rtb-id-public --subnet-id subnet-id-public-subnet
      ```

1. [IPv6] 您可以新增輸出限定網際網路閘道，讓私有子網路中的執行個體可以透過 IPv6 存取網際網路 (例如用於取得軟體更新)，但網際網路上的主機無法存取您的執行個體。

   1. 使用下列 [create-egress-only-internet-gateway](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-egress-only-internet-gateway.html) 命令，建立輸出限定網際網路閘道。該命令會傳回新網際網路閘道的 ID。

      ```
      aws ec2 create-egress-only-internet-gateway --vpc-id vpc-1a2b3c4d5e6f1a2b3 --query EgressOnlyInternetGateway.EgressOnlyInternetGatewayId --output text
      ```

   1. 使用下列 [create-route-table](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-route-table.html) 命令，建立私有子網路的自訂路由表。該命令會傳回新路由表的 ID。

      ```
      aws ec2 create-route-table --vpc-id vpc-1a2b3c4d5e6f1a2b3 --query RouteTable.RouteTableId --output text
      ```

   1. 使用下列 [create-route](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-route.html) 命令，在將所有 IPv6 流量傳送至輸出限定網際網路閘道的私有子網路的路由表中建立路由。使用上一個步驟傳回的路由表 ID。

      ```
      aws ec2 create-route --route-table-id rtb-id-private --destination-cidr-block ::/0 --egress-only-internet-gateway eigw-id
      ```

   1. 使用下列 [associate-route-table](https://docs.aws.amazon.com/cli/latest/reference/ec2/associate-route-table.html) 命令，將路由表與私有子網路建立關聯。

      ```
      aws ec2 associate-route-table --route-table-id rtb-id-private --subnet-id subnet-id-private-subnet
      ```

1. 如果私有子網路中的資源需要 NAT 閘道，請執行下列動作：

   1. 使用下列 [allocate-address](https://docs.aws.amazon.com/cli/latest/reference/ec2/allocate-address.html) 命令，建立 NAT 閘道的彈性 IP 地址。

      ```
      aws ec2 allocate-address --domain vpc --query AllocationId --output text
      ```

   1. 使用下列 [create-nat-gateway](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-nat-gateway.html) 命令，在公開子網路中建立 NAT 閘道。使用上一個步驟傳回的配置 ID。

      ```
      aws ec2 create-nat-gateway --subnet-id subnet-id-public-subnet --allocation-id eipalloc-id
      ```

   1. (選用) 如果您已在步驟 5 中建立私有子網路的路由表，請略過此步驟。否則，請使用下列 [create-route-table](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-route-table.html) 命令，建立私有子網路的路由表 該命令會傳回新路由表的 ID。

      ```
      aws ec2 create-route-table --vpc-id vpc-1a2b3c4d5e6f1a2b3 --query RouteTable.RouteTableId --output text
      ```

   1. 使用下列 [create-route](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-route.html) 命令，在將所有 IPv4 流量傳送至 NAT 閘道之私有子網路的路由表中建立路由。使用您在此步驟或步驟 5 中建立的私有子網路的路由表 ID。

      ```
      aws ec2 create-route --route-table-id rtb-id-private --destination-cidr-block 0.0.0.0/0 --gateway-id nat-id
      ```

   1. (選用) 如果您已在步驟 5 中將路由表與私有子網路建立關聯，請略過此步驟。否則，請使用下列 [associate-route-table](https://docs.aws.amazon.com/cli/latest/reference/ec2/associate-route-table.html) 命令，將路由表與私有子網路建立關聯。使用您在此步驟或步驟 5 中建立的私有子網路的路由表 ID。

      ```
      aws ec2 associate-route-table --route-table-id rtb-id-private --subnet-id subnet-id-private-subnet
      ```