

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

# 範例：適用於 Web 和資料庫伺服器的 VPC
<a name="vpc-example-web-database-servers"></a>

此範例示範如何建立 VPC，以便用於生產環境中的雙層架構。若要提升彈性，您可以在兩個可用區域中部署伺服器。

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

## 概要
<a name="overview-vpc-public-private-subnets-multi-az"></a>

下圖提供此範例所包含的資源概觀。VPC 具有兩個可用區域中的公有子網路和私有子網路。Web 伺服器會在公有子網路中執行，並透過負載平衡器接收來自用戶端的流量。Web 伺服器的安全群組會允許來自負載平衡器的流量。資料庫伺服器會在私有子網路中執行，並從 Web 伺服器接收流量。資料庫伺服器的安全群組會允許來自 Web 伺服器的流量。資料庫伺服器可以使用閘道 VPC 端點連線至 Amazon S3。

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


### 路由
<a name="routing-vpc-public-private-subnets-multi-az"></a>

當您使用 Amazon VPC 主控台建立此 VPC 時，我們會為具有本機路由和網際網路閘道之路由的公有子網路建立路由表，並為具有本機路由和閘道 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 | 本機 | 
| s3- 字首清單 ID | S3 閘道識別碼 | 

### 安全
<a name="security-vpc-public-private-subnets-multi-az"></a>

對於此範例組態，您要為負載平衡器建立安全群組、為 Web 伺服器建立安全群組，並為資料庫伺服器建立安全群組。

**負載平衡器**  
Application Load Balancer 或 Network Load Balancer 的安全群組必須允許負載平衡器接聽程式連接埠上用戶端的傳入流量。若要接受來自網際網路上任何位置的流量，請指定 0.0.0.0/0 作為來源。負載平衡器安全群組也必須允許執行個體接聽程式連接埠和運作狀態檢查連接埠上從負載平衡器到目標執行個體的傳出流量。

**Web 伺服器**  
下列安全群組規則可讓 Web 伺服器接收來自負載平衡器的 HTTP 和 HTTPS 流量。您可以選擇允許 Web 伺服器從您的網路接收 SSH 或 RDP 流量。Web 伺服器可將 SQL 或 MySQL 流量傳送至您的資料庫伺服器。


| 來源 | 通訊協定 | 連接埠範圍 | Description | 
| --- | --- | --- | --- | 
| 負載平衡器安全群組的 ID | TCP | 80 | 允許來自負載平衡器的傳入 HTTP 存取 | 
| 負載平衡器安全群組的 ID | TCP | 443 | 允許來自負載平衡器的傳入 HTTPS 存取 | 
| 您網路的公有 IPv4 地址範圍 | TCP | 22 | (選用) 允許來自您網路中 IPv4 IP 地址的傳入 SSH 存取 | 
| 您網路的公有 IPv6 地址範圍 | TCP | 22 | (選用) 允許來自您網路中 IPv6 IP 地址的傳入 SSH 存取 | 
| 您網路的公有 IPv4 地址範圍 | TCP | 3389 | (選用) 允許來自您網路中 IPv4 IP 地址的傳入 RDP 存取 | 
| 您網路的公有 IPv6 地址範圍 | TCP | 3389 | (選用) 允許來自您網路中 IPv6 IP 地址的傳入 RDP 存取 | 


| 目標 | 通訊協定 | 連接埠範圍 | Description | 
| --- | --- | --- | --- | 
|  執行 Microsoft SQL Server 之執行個體的安全群組 ID  |  TCP  |  1433  |  允許傳出 Microsoft SQL Server 存取資料庫伺服器。  | 
|  執行 MySQL 之執行個體的安全群組 ID  |  TCP  |  3306  |  允許傳出 MySQL 存取資料庫伺服器。  | 

**資料庫伺服器**  
下列安全群組規則允許資料庫伺服器接收來自 Web 伺服器的讀取和寫入請求。


| 來源 | 通訊協定 | 連接埠範圍 | 評論 | 
| --- | --- | --- | --- | 
| Web 伺服器安全群組的 ID | TCP | 1433 | 允許來自 Web 伺服器的傳入 Microsoft SQL Server 存取 | 
| Web 伺服器安全群組的 ID | TCP | 3306 | 允許來自 Web 伺服器的傳入 MySQL Server 存取 | 


| 目標 | 通訊協定 | 連接埠範圍 | 評論 | 
| --- | --- | --- | --- | 
| 0.0.0.0/0 | TCP | 80 | 允許傳出 HTTP 透過 IPv4 存取網際網路 | 
| 0.0.0.0/0 | TCP | 443 | 允許傳出 HTTPS 透過 IPv4 存取網際網路 | 

如需 Amazon RDS 資料庫執行個體安全群組的詳細資訊，請參閱《*Amazon RDS 使用者指南*》中的[透過安全群組控制存取權限](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.RDSSecurityGroups.html)。

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

使用下列程序建立在兩個可用區域具有公有子網路和私有子網路的 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 資源的「名稱」標籤，或將其清除以提供您自己的 VPC 資源「名稱」標籤。

   1. 對於 **IPv4 CIDR 區塊**，您可以保留預設建議，或者您也可以輸入應用程式或網路所需的 CIDR 區塊。如需詳細資訊，請參閱[VPC CIDR 區塊](vpc-cidr-blocks.md)。

   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) (專供您使用) 的形式執行。

1. 設定子網路：

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

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

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

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

1. 若為 **NAT 閘道**，請保留預設值**無**。

1. 若為 **VPC 端點**，請保留預設值 **S3 閘道**。雖然沒有任何效果 (除非您存取 S3 儲存貯體)，但啟用此 VPC 端點無須支付任何費用。

1. 保持選取 **DNS 選項**中的兩個選項。因此，您的 Web 伺服器將收到與其公有 IP 地址對應的公有 DNS 主機名稱。

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

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

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

您可以將 EC2 執行個體用於 Web 伺服器。您可透過各種不同方式部署 EC2 執行個體。例如：
+ [Amazon EC2 啟動執行個體精靈](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html)
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/)
+ [Amazon Elastic Container Service (Amazon ECS)](https://docs.aws.amazon.com/ecs/)

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

您可以使用 [Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/) 來將流量平均分配至伺服器之間。您可以將負載平衡器連接至 Auto Scaling 群組。

您可以將 EC2 執行個體用於資料庫伺服器，或是我們的專用資料庫類型之一。如需詳細資訊，請參閱 [上的資料庫 AWS：如何選擇](https://docs.aws.amazon.com/documentation/latest/databases-on-aws-how-to-choose/)。

## 3. 測試組態
<a name="test-web-database-servers"></a>

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

## 4. 清除
<a name="clean-up-web-database-servers"></a>

此組態結束使用後即可刪除。您必須先終止執行個體並刪除負載平衡器，才能刪除 VPC。如需詳細資訊，請參閱[刪除您的 VPC](delete-vpc.md)。