

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

# 範例：在私有子網路和 NAT 具有伺服器的 VPC
<a name="vpc-example-private-subnets-nat"></a>

此範例示範如何建立 VPC，以便用於生產環境中的伺服器。若要提升彈性，您可以使用 Auto Scaling 群組和 Application Load Balancer，在兩個可用區域中部署伺服器。若要提高安全性，您可以在私有子網路中部署伺服器。伺服器會透過負載平衡器接收要求。伺服器可以使用 NAT 閘道連線至網際網路。若要提升彈性，您可以在兩個可用區域中部署 NAT 閘道。

**Topics**
+ [概要](#overview-vpc-private-subnets-nat)
+ [1. 建立 VPC](#create-vpc-private-subnets-nat)
+ [2. 部署您的應用程式](#deploy-private-subnets)
+ [3. 測試組態](#test-private-subnets)
+ [4. 清除](#clean-up-private-subnets)

## 概要
<a name="overview-vpc-private-subnets-nat"></a>

下圖提供此範例所包含的資源概觀。VPC 具有兩個可用區域中的公有子網路和私有子網路。每個公有子網路都包含一個 NAT 閘道和一個負載平衡器節點。在私有子網路中執行的伺服器會使用 Auto Scaling 群組啟動和終止，並從負載平衡器接收流量。伺服器可以使用 NAT 閘道連線至網際網路。伺服器可以使用閘道 VPC 端點連線至 Amazon S3。

![在兩個可用區域具有子網路的 VPC。](http://docs.aws.amazon.com/zh_tw/vpc/latest/userguide/images/vpc-example-private-subnets.png)


### 路由
<a name="routing-vpc-private-subnets-nat"></a>

當您使用 Amazon VPC 主控台建立此 VPC 時，我們會為具有本機路由和網際網路閘道之路由的公有子網路建立路由表。我們也會為具有本機路由以及 NAT 閘道、僅限輸出網際網路閘道和閘道 VPC 端點之路由的私有子網路建立路由表。

以下是具有 IPv4 和 IPv6 路由之公有子網路的路由表範例。如果您建立僅限 IPv4 的子網路 (而不是雙堆疊子網路)，則路由表只會包含 IPv4 路由。


| 目的地 | 目標 | 
| --- | --- | 
| {{10.0.0.0/16}} | 區域 | 
| {{2001:db8:1234:1a00::/56}} | 區域 | 
| 0.0.0.0/0 | {{igw-id}} | 
| ::/0 | {{igw-id}} | 

以下是其中一個具有 IPv4 和 IPv6 路由之私有子網路的路由表範例。如果您建立了僅限 IPv4 的子網路，則路由表只會包含 IPv4 路由。最後一個路由會將目的地 Amazon S3 的流量傳送至閘道 VPC 端點。


| 目標 | 目標 | 
| --- | --- | 
| {{10.0.0.0/16}} | 區域 | 
| {{2001:db8:1234:1a00::/56}} | 區域 | 
| 0.0.0.0/0 | {{nat-gateway-id}} | 
| ::/0 | {{eigw-id}} | 
| {{s3- 字首清單 ID}} | {{S3 閘道識別碼}} | 

### 安全
<a name="security-vpc-private-subnets-nat"></a>

以下是您可能為與伺服器相關聯之安全群組建立的規則範例。安全群組必須在接聽程式連接埠和通訊協定上允許來自負載平衡器的流量。它還必須允許運作狀態檢查流量。


| 來源 | 通訊協定 | 連接埠範圍 | 評論 | 
| --- | --- | --- | --- | 
| {{負載平衡器安全群組的 ID}} | {{接聽程式通訊協定}} | {{接聽程式連接埠}} | 在接聽程式連接埠上允許來自負載平衡器的所有傳入流量 | 
| {{負載平衡器安全群組的 ID}} | {{運作狀態檢查通訊協定}} | {{運作狀態檢查連接埠}} | 允許來自負載平衡器的傳入運作狀態檢查流量 | 

## 1. 建立 VPC
<a name="create-vpc-private-subnets-nat"></a>

使用下列程序建立在兩個可用區域具有公有子網路和私有子網路並在每個可用區域具有 NAT 閘道的 VPC。

**若要建立 VPC**

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

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

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

1. **設定 VPC**

   1. 針對**自動產生名稱標籤**，輸入 VPC 的名稱。

   1. 對於 **IPv4 CIDR 區塊**，您可以保留預設建議，或者您也可以輸入應用程式或網路所需的 CIDR 區塊。

   1. 如果您的應用程式使用 IPv6 地址進行通訊，請選擇 **IPv6 CIDR 區塊** > **Amazon 提供的 IPv6 CIDR 區塊**。

1. **設定子網路**

   1. 對於**可用區域數量**，請選擇 **2**，以便在多個可用區域中啟動執行個體，以提高彈性。

   1. 針對**公用子網路數量**，選擇 **2**。

   1. 在 **Number of private subnet** (私有子網路數量) 中，選擇 **2**。

   1. 您可以保留公有子網路的預設 CIDR 區塊，或者您也可以展開**自訂子網路 CIDR 區塊**並輸入 CIDR 區塊。如需詳細資訊，請參閱[子網路 CIDR 區塊](subnet-sizing.md)。

1. 若為 **NAT 閘道**，請選擇**每個 AZ 1 個**以提高彈性。

1. 如果您的應用程式使用 IPv6 地址進行通訊，則針對**輸出限定網際網路閘道**，請選擇**是**。

1. 針對 **VPC 端點**，如果您的執行個體必須存取 S3 儲存貯體，請保留 **S3 閘道**預設值。否則，私有子網路中的執行個體將無法存取 Amazon S3。此選項無須支付任何費用，因此如果您未來可能使用 S3 儲存貯體，則可以保留預設值。如果您選擇**無**，您稍後可以隨時新增閘道 VPC 端點。

1. 對於 **DNS 選項**，請清除**啟用 DNS 主機名稱**。

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

## 2. 部署您的應用程式
<a name="deploy-private-subnets"></a>

在理想的情況下，您已在開發或測試環境中完成伺服器測試，並建立了用於在生產環境中部署應用程式的指令碼或映像。

您可以使用 [Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/) 在多個可用區域中部署伺服器，並維持應用程式所需的最低伺服器容量。

**使用 Auto Scaling 群組啟動執行個體**

1. 建立啟動範本，以指定使用 Amazon EC2 Auto Scaling 啟動 EC2 執行個體所需的組態資訊。如需逐步指示，請參閱《Amazon EC2 Auto Scaling 使用者指南》**中的[建立 Auto Scaling 群組的啟動範本](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-template.html)。

1. 建立 Auto Scaling 群組，該群組是具有最小、最大以及所需大小的 EC2 執行個體集合。如需逐步指示，請參閱《Amazon EC2 Auto Scaling 使用者指南》**中的[使用啟動範本建立 Auto Scaling 群組](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-launch-template.html)。

1. 建立負載平衡器，以將流量平均分配在您 Auto Scaling 群組的各執行個體之間，然後將負載平衡器連接至 Auto Scaling 群組。如需詳細資訊，請參閱《Elastic Load Balancing 使用者指南》[https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/)以及《Amazon EC2 Auto Scaling 使用者指南》**中的[使用 Elastic Load Balancing](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html)。

## 3. 測試組態
<a name="test-private-subnets"></a>

完成應用程式部署後，您可以對其進行測試。如果您的應用程式無法傳送或接收預期的流量，您可以使用 Reachability Analyzer 來協助您進行疑難排解。例如，Reachability Analyzer 可以識別路由表或安全群組的組態問題。如需詳細資訊，請參閱 [Reachability Analyzer Guide](https://docs.aws.amazon.com/vpc/latest/reachability/) (《Reachability Analyzer 指南》)。

## 4. 清除
<a name="clean-up-private-subnets"></a>

此組態結束使用後即可刪除。刪除 VPC 之前，您必須先刪除 Auto Scaling 群組、終止執行個體、刪除 NAT 閘道，以及刪除負載平衡器。如需詳細資訊，請參閱[刪除您的 VPC](delete-vpc.md)。