建立 VPC - Amazon Virtual Private Cloud

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

建立 VPC

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

如需有關修改 VPC 的資訊,請參閱在 VPC 中新增或移除 CIDR 區塊

建立 VPC 以及其他 VPC 資源

使用下列程序建立 VPC 以及執行應用程式所需的其他 VPC 資源,例如子網路、路由表、網際網路閘道和 NAT 閘道。如需範例 VPC 組態,請參閱VPC 範例

如何使用主控台建立 VPC、子網路和其他 VPC 資源
  1. 前往 https://console.aws.amazon.com/vpc/ 開啟 Amazon VPC 主控台。

  2. 在 VPC 儀表板上,選擇 Create VPC (建立 VPC)

  3. 針對 Resources to create (建立資源),選擇 VPC and more (VPC 等)。

  4. 保持選取 [自動產生名稱] 標籤以建立 VPC 資源的 [名稱] 標籤,或清除它以提供您自己的名稱標籤給 VPC 資源。

  5. IPv4 CIDR 區塊,輸入 VPC 的 IPv4 地址範圍。VPC 必須具有 IPv4 地址範圍。

  6. (選用) 若要支援 IPv6 流量,請選擇 IPv6 CIDR 區塊 > Amazon 提供的 IPv6 CIDR 區塊

  7. 選擇租用選項。此選項會定義啟動至 VPC 的 EC2 執行個體,是否會在與其他 AWS 帳戶 共用的硬體上執行,或是在僅供您使用的硬體上執行。如果您選擇要使用 VPC 的租用Default,則在此 VPC 中啟動的 EC2 執行個體將使用啟動執行個體時指定的租用屬性。如需詳細資訊,請參閱 Amazon EC2 使用者指南中的使用已定義參數啟動執行個體。如果您選擇 VPC 的租用為 Dedicated,則執行個體將會一律以硬體上之專用預留執行個體 (專供您使用) 的形式執行。如果您使用的是 AWS Outposts,您的 Outpost 需要私人連接;您必須使用Default租賃。

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

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

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

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

  12. (選用) 如果您需要直接從 VPC 存取 Amazon S3,請選擇 VPC 端點 > S3 閘道。這會為 Amazon S3 建立閘道 VPC 端點。如需詳細資訊,請參閱《AWS PrivateLink 指南》中的閘道 VPC 端點

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

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

  15. 預覽窗格中,您可以透過視覺化方式掌握您已設定的 VPC 資源之間的關係。實線代表資源之間的關係。虛線代表 NAT 閘道、網際網路閘道和閘道端點的網路流量。建立 VPC 後,可以隨時使用資源映射索引標籤以此格式將 VPC 中的資源視覺化。如需詳細資訊,請參閱 視覺化 VPC 中的資源

  16. 當您完成設定 VPC 後,請選擇建立 VPC

僅建立 VPC

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

如何使用主控台建立不含任何其他 VPC 資源的 VPC
  1. 前往 https://console.aws.amazon.com/vpc/ 開啟 Amazon VPC 主控台。

  2. 在 VPC 儀表板上,選擇 Create VPC (建立 VPC)

  3. 建立資源,選擇僅 VPC

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

  5. 對於 IPv4 CIDR 區塊,執行下列其中一個動作:

    • 選擇 IPv4 CIDR 手動輸入,然後輸入 VPC 的 IPv4 地址範圍。

    • 選擇 IPAM 配置的 IPv4 CIDR 區塊,然後選取您的 Amazon IPAM VPC IP 地址管理員 (IPAM) IPv4 地址集區和網路遮罩。CIDR 區塊的大小會受 IPAM 集區上的分配規則所限制。IPAM 是 VPC 功能,可讓您更輕鬆地規劃、追蹤和監控工作負載的 IP 位址。 AWS 如需詳細資訊,請參閱 Amazon VPC IPAM 使用者指南。

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

  6. (選用) 若要建立雙堆疊 VPC,請為您的 VPC 指定 IPv6 地址範圍。對於 IPv6 CIDR 區塊,執行下列其中一個動作:

    • 如果您使用 Amazon VPC IP Address Manager,並且想從 IPAM 集區佈建 IPv6 CIDR,選擇 IPAM-allocated IPv6 CIDR block (IPAM 配置的 IPv6 CIDR 區塊)。CIDR block (CIDR 區塊) 下提供兩個用於將 IP 地址範圍佈建至 VPC 的選項:

      • Netmask length (網路遮罩長度):選擇此選項可為 CIDR 選取網路遮罩長度。執行以下任意一項:

        • 如果已為 IPAM 集區選取預設網路遮罩長度,您可以選擇 Default to IPAM netmask length (預設為 IPAM 網路遮罩長度),以使用 IPAM 管理員為 IPAM 集區設定的預設網路遮罩長度。如需有關可選預設網路遮罩長度配置規則的詳細資訊,請參閱《Amazon VPC IPAM 使用者指南》中的建立區域 IPv6 集區

        • 如果沒有為 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 區塊。對於網路邊界群組,選取通 AWS 告 IP 位址的群組。Amazon 所提供 IPv6 CIDR 區塊的固定大小為 /56

    • 選擇 IPv6 CIDR owned by me (我擁有的 IPv6 CIDR),佈建已帶入 AWS的 IPv6 CIDR。如需將自己的 IP 位址範圍帶到的詳細資訊 AWS,請參閱 Amazon EC2 使用者指南中的攜帶您自己的 IP 位址 (BYOIP)。您可以使用下列 CIDR 區塊選項為 VPC 佈建 IP 位址範圍:

      • No preference (無偏好設定):選擇此選項可使用網路遮罩長度 /56

      • Select a CIDR (選取 CIDR):選擇此選項可手動輸入 IPv6 地址,並選擇比 BYOIP CIDR 規模更具體的網路遮罩長度。例如,如果 BYOIP 集區 CIDR 是 /50,您可以為 VPC 選擇介於 /52/60 之間的網路遮罩長度。可能的 IPv6 網路遮罩長度介於 /44/60 之間 (增量為 /4)。

  7. (選用) 選擇租用選項。此選項會定義啟動至 VPC 的 EC2 執行個體,是否會在與其他 AWS 帳戶 共用的硬體上執行,或是在僅供您使用的硬體上執行。如果您選擇租用 VPCDefault,啟動到此 VPC 的 EC2 執行個體將使用啟動執行個體時指定的租用屬性--如需詳細資訊,請參閱 Amazon EC2 使用者指南中的使用已定義參數啟動執行個體。如果您選擇 VPC 的租用為 Dedicated,則執行個體將會一律以硬體上之專用預留執行個體 (專供您使用) 的形式執行。如果您使用的是 AWS Outposts,您的 Outpost 需要私人連接;您必須使用Default租賃。

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

  9. 選擇建立 VPC

  10. 建立 VPC 後,您可以新增子網。如需詳細資訊,請參閱 建立子網

使用建立 VPC AWS CLI

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

必要條件

開始之前,請先安裝並設定 AWS CLI。配置時 AWS CLI,系統會提示您輸 AWS 入身份證明。本程序中的範例假設您也設定了預設「區域」。否則,請將 --region 選項新增至每個命令。如需詳細資訊,請參閱安裝或更新 AWS CLI設定 AWS CLI

標記

您可以在使用 create-tags 命令建立資源後,將標籤新增至資源。或者,您也可以如下所示將 --tag-specification 選項新增至資源的建立命令。

--tag-specifications ResourceType=vpc,Tags=[{Key=Name,Value=my-project}]
若要建立 VPC 加上 VPC 資源,請使用 AWS CLI
  1. 使用下列 create-vpc 命令,以建立具有指定 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
  2. [雙堆疊 VPC] 使用下列 describe-vpcs 命令,取得已與您 VPC 建立關聯的 IPv6 CIDR 區塊。

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

    下列為範例輸出。

    2600:1f13:cfe:3600::/56
  3. 視您的使用案例而定,可建立一或多個子網路。在生產環境中,建議您至少在兩個可用區域中啟動資源。使用下列其中一個命令來建立各個子網路。

    • 僅限 IPv4 子網路 – 若要建立具有特定 IPv4 CIDR 區塊的子網路,請使用下列 create-subnet 命令。

      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
  4. 如果您的 Web 伺服器或 NAT 閘道需要公有子網路,請執行下列動作:

    1. 使用下列create-internet-gateway指令建立網際網路閘道。該命令會傳回新網際網路閘道的 ID。

      aws ec2 create-internet-gateway --query InternetGateway.InternetGatewayId --output text
    2. 使用下列attach-internet-gateway指令將網際網路閘道連接至您的 VPC。使用上一個步驟傳回的網際網路閘道 ID。

      aws ec2 attach-internet-gateway --vpc-id vpc-1a2b3c4d5e6f1a2b3 --internet-gateway-id igw-id
    3. 使用下列create-route-table命令為您的公用子網路建立自訂路由表。該命令會傳回新路由表的 ID。

      aws ec2 create-route-table --vpc-id vpc-1a2b3c4d5e6f1a2b3 --query RouteTable.RouteTableId --output text
    4. 使用下列 create-route 命令,在將所有 IPv4 流量傳送至網際網路閘道的路由表中建立路由。使用公有子網路的路由表 ID。

      aws ec2 create-route --route-table-id rtb-id-public --destination-cidr-block 0.0.0.0/0 --gateway-id igw-id
    5. 使用下列associate-route-table命令將路由表與公用子網路產生關聯。使用公有子網路的路由表 ID 以及公有子網路的 ID。

      aws ec2 associate-route-table --route-table-id rtb-id-public --subnet-id subnet-id-public-subnet
  5. [IPv6] 您可以新增輸出限定網際網路閘道,讓私有子網路中的執行個體可以透過 IPv6 存取網際網路 (例如用於取得軟體更新),但網際網路上的主機無法存取您的執行個體。

    1. 使用下列 create-egress-only-internet- gateway 指令建立僅限輸出的網際網路閘道。該命令會傳回新網際網路閘道的 ID。

      aws ec2 create-egress-only-internet-gateway --vpc-id vpc-1a2b3c4d5e6f1a2b3 --query EgressOnlyInternetGateway.EgressOnlyInternetGatewayId --output text
    2. 使用下列create-route-table命令為您的私有子網路建立自訂路由表。該命令會傳回新路由表的 ID。

      aws ec2 create-route-table --vpc-id vpc-1a2b3c4d5e6f1a2b3 --query RouteTable.RouteTableId --output text
    3. 使用下列 create-route 命令,在將所有 IPv6 流量傳送至輸出限定網際網路閘道的私有子網路的路由表中建立路由。使用上一個步驟傳回的路由表 ID。

      aws ec2 create-route --route-table-id rtb-id-private --destination-cidr-block ::/0 --egress-only-internet-gateway eigw-id
    4. 使用下列associate-route-table命令將路由表與私有子網路產生關聯。

      aws ec2 associate-route-table --route-table-id rtb-id-private --subnet-id subnet-id-private-subnet
  6. 如果私有子網路中的資源需要 NAT 閘道,請執行下列動作:

    1. 使用下列 allocate-address 命令,建立 NAT 閘道的彈性 IP 地址。

      aws ec2 allocate-address --domain vpc --query AllocationId --output text
    2. 使用下列create-nat-gateway命令在公用子網路中建立 NAT 閘道。使用上一個步驟傳回的配置 ID。

      aws ec2 create-nat-gateway --subnet-id subnet-id-public-subnet --allocation-id eipalloc-id
    3. (選用) 如果您已在步驟 5 中建立私有子網路的路由表,請略過此步驟。否則,請使用以下create-route-table命令為您的私有子網路建立路由表。該命令會傳回新路由表的 ID。

      aws ec2 create-route-table --vpc-id vpc-1a2b3c4d5e6f1a2b3 --query RouteTable.RouteTableId --output text
    4. 使用下列 create-route 命令,在將所有 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
    5. (選用) 如果您已在步驟 5 中將路由表與私有子網路建立關聯,請略過此步驟。否則,請使用以下associate-route-table命令將路由表與私有子網路產生關聯。使用您在此步驟或步驟 5 中建立的私有子網路的路由表 ID。

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