

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

# 使用 Elastic Load Balancing for 新增負載平衡器 AWS CloudHSM（選用）
<a name="third-offload-add-lb"></a>

對一個 Web 伺服器設定 SSL/TLS 卸載之後，您可以建立更多個 Web 伺服器和 Elastic Load Balancing 負載平衡器，將 HTTPS 流量路由到 Web 伺服器。負載平衡器可以平衡兩個或更多個伺服器之間的流量，以降低個別 Web 伺服器的負載。還可以提高網站的可用性，因為負載平衡器會監控 Web 伺服器的運作狀態，只將流量路由到運作狀態良好的伺服器。如果 Web 伺服器故障，負載平衡器會自動停止路由流量。

**Topics**
+ [步驟 1. 針對第二個 Web 伺服器建立子網路](#ssl-offload-load-balancer-create-new-subnet)
+ [步驟 2. 建立第二個 Web 伺服器](#ssl-offload-load-balancer-create-web-server)
+ [步驟 3。建立負載平衡器](#ssl-offload-load-balancer-create-load-balancer)

## 步驟 1. 針對第二個 Web 伺服器建立子網路
<a name="ssl-offload-load-balancer-create-new-subnet"></a>

您必須先在包含現有 Web 伺服器和 AWS CloudHSM 叢集的相同 VPC 中建立新的子網路，才能建立另一個 Web 伺服器。

**建立新的子網路**

1. 開啟 [Amazon VPC 主控台的**子網路**區段](https://console.aws.amazon.com/vpc/home#subnets:)。

1. 選擇 **Create Subnet (建立子網路)**。

1. 在 **Create Subset (建立子網路)** 對話方塊中，執行下列動作：

   1. 在 **Name tag (名稱標籤)** 中，輸入子網路的名稱。

   1. 針對 **VPC**，選擇包含現有 Web 伺服器和 AWS CloudHSM 叢集的 AWS CloudHSM VPC。

   1. 在 **Availability Zone (可用區域)** 中，選擇一個不是現有 Web 伺服器所在的可用區域。

   1. 在 **IPv4 CIDR 區塊**中，輸入要用於子網路 CIDR 區塊。例如，輸入 **10.0.10.0/24**。

   1. 選擇 **Yes, Create** (是，建立)。

1. 選取包含現有 Web 伺服器之公有子網路旁的核取方塊。這與您在先前步驟中建立的公有子網路不同。

1. 在內容窗格中，選擇**路由表**標籤。然後選擇路由表的連結。  
![在 Amazon VPC 主控台中選擇路由表連結。](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/console-vpc-choose-route-table.png)

1. 選取路由表旁的核取方塊。

1. 選擇**子網路關聯**標籤。然後選擇 **Edit (編輯)**。

1. 選取您先前在此程序中建立之公用子網路旁的核取方塊。然後選擇 **Save** (儲存)。

## 步驟 2. 建立第二個 Web 伺服器
<a name="ssl-offload-load-balancer-create-web-server"></a>

完成下列步驟，使用與現有 Web 伺服器相同的組態來建立第二個 Web 伺服器。

**建立第二個 Web 伺服器**

1. 開啟 Amazon EC2 主控台的[https://console.aws.amazon.com/ec2/v2/home#Instances:](https://console.aws.amazon.com/ec2/v2/home#Instances:)區段。

1. 選取現有 Web 伺服器執行個體旁的核取方塊。

1. 依序選擇 **Actions (動作)**、**Image (映像)**、**Create Image (建立映像)**。

1. 在 **Create Image (建立映像)** 對話方塊中，執行下列動作：

   1. 在 **Image Name (映像名稱)** 中，輸入映像的名稱。

   1. 在 **Image description (映像描述)** 中，輸入映像的描述。

   1. 選擇 **Create Image (建立映像)**。這個動作會重新啟動現有的 Web 伺服器。

   1. 選擇**檢視待處理映像 ami-{{<AMI ID>}}**連結。  
![在 Amazon EC2 主控台中選擇檢視待處理映像連結。](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/console-ec2-choose-view-pending-image.png)

      在**狀態**欄，注意您的映像狀態。當您的映像狀態是 **available (可用)** 時 (這可能需要幾分鐘)，請移至下一個步驟。

1. 在導覽窗格中，選擇**執行個體**。

1. 選取現有 Web 伺服器旁的核取方塊。

1. 選擇 **Actions (動作)**，然後選擇 **Launch More Like This (啟動更多類似項目)**。

1. 選擇 **Edit AMI (編輯 AMI)**。  
![在 Amazon EC2 主控台中選擇編輯 AMI 連結。](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/console-ec2-choose-edit-ami.png)

1. 在左側導覽窗格中選擇**我的 AMI**。然後清除搜尋方塊中的文字。

1. 在 Web 伺服器映像旁，選擇 **Select (選取)**。

1. 選擇**是，我想要繼續此 AMI ({{<映像名稱>}} - ami-{{<AMI ID>}})**。

1. 選擇**下一步**。

1. 選取執行個體類型，然後選擇 **Next: Configure Instance Details (下一步：設定執行個體的詳細資訊)**。

1. 在 **Step 3: Configure Instance Details (步驟 3：設定執行個體詳細資訊)** 中，執行下列動作：

   1. 在 **Network (網路)** 中，選擇包含現有 Web 伺服器的 VPC。

   1. 在 **Subnet (子網路)** 中，選擇您針對第二個 Web 伺服器建立的公有子網路。

   1. 在 **Auto-assign Public IP (自動指派公有 IP)** 中，選擇 **Enable (啟用)**。

   1. 依喜好變更剩餘的執行個體詳細資訊。然後選擇 **Next: Add Storage (下一步：新增儲存體)**。

1. 依喜好變更儲存設定。然後選擇 **Next: Add Tags** (下一步：新增標籤)。

1. 依喜好新增或編輯標籤。然後選擇 **Next: Configure Security Group (下一步：設定安全群組)**。

1. 在 **Step 6: Configure Security Group (步驟 6：設定安全群組)** 中，執行下列動作：

   1. 在 **Assign a security group (指派安全群組)** 中，選擇 **Select an existing security group (選取現有的安全群組)**。

   1. 選取名為 **cloudhsm-{{<叢集 ID>}}-sg** 的安全群組旁邊的核取方塊。 AWS CloudHSM 在[建立叢集](create-cluster.md)時代表您建立此安全群組。您必須選擇此安全群組，Web 伺服器執行個體才能連接到叢集內的 HSM。

   1. 選取允許傳入 HTTPS 流量之安全群組旁的核取方塊。您[先前已建立此安全群組](ssl-offload-windows.md#ssl-offload-add-security-group-windows)。

   1. (選用) 選取允許從您的網路傳入 SSH (Linux) 或 RDP (Windows) 流量之安全群組旁的核取方塊。也就是說，安全群組必須允許連接埠 22 (適用於 Linux 上的 SSH) 或連接埠 3389 (適用於 Windows 上的 RDP) 上的傳入 TCP 流量。否則，您無法連接到用戶端執行個體。如果您沒有像這樣的安全群組，則必須建立一個安全群組，並於稍後指派給用戶端執行個體。

   選擇 **Review and Launch** (檢閱和啟動)。

1. 檢閱您的執行個體詳細資訊，然後選擇 **Launch (啟動)**。

1. 選擇是否以現有的金鑰對啟動執行個體、建立新的金鑰對，或在沒有金鑰對的情況下啟動執行個體。
   + 若要使用現有的金鑰對，請執行下列動作：

     1. 選擇 **Choose an existing key pair** (選擇現有金鑰對)。

     1. 在 **Select a key pair (選取金鑰對)** 中，選擇要使用的金鑰對。

     1. 選取**我知道我能夠使用所選取的私有金鑰檔案 ({{<私有金鑰檔案名稱>}}.pem)，也知道如果沒有此檔案，我將無法登入我的執行個體) **旁的核取方塊。
   + 若要建立新的金鑰對，請執行下列動作：

     1. 選擇 **Create a new key pair (建立新的金鑰對)**。

     1. 在 **Key pair name (金鑰對名稱)** 中，輸入金鑰對名稱。

     1. 選擇 **Download Key Pair (下載金鑰對)**，然後將私有金鑰檔案儲存到安全又可存取的位置。
**警告**  
此後，您就無法再次下載私有金鑰檔案。如果現在不下載私有金鑰檔案，您將無法存取用戶端執行個體。
   + 若要在沒有金鑰對的情況下啟動執行個體，請執行下列動作：

     1. 選擇 **Proceed without a key pair (不使用金鑰對而繼續)**。

     1. 選取 **I acknowledge that I will not be able to connect to this instance unless I already know the password built into this AMI (我知道除非我已擁有內建於此 AMI 的密碼，否則我將無法連接至此執行個體)** 旁的核取方塊。

   選擇 **Launch Instances** (啟動執行個體)。

## 步驟 3。建立負載平衡器
<a name="ssl-offload-load-balancer-create-load-balancer"></a>

完成以下步驟來建立 Elastic Load Balancing 負載平衡器，將 HTTPS 流量路由到您的 Web 伺服器。

**建立負載平衡器**

1. 開啟 Amazon EC2 主控台中的[ https://console.aws.amazon.com/ec2/v2/home#LoadBalancers:]( https://console.aws.amazon.com/ec2/v2/home#LoadBalancers:)區段。

1. 選擇 **Create Load Balancer (建立負載平衡器)**。

1. 在 **Network Load Balancer (網路負載平衡器)** 區段中，選擇 **Create (建立)**。

1. 在 **Step 1: Configure Load Balancer (步驟 1：設定負載平衡器)** 中，執行下列動作：

   1. 在 **Name (名稱)** 中，輸入您要建立之負載平衡器的名稱。

   1. 在**接聽程式**區段中，將**負載平衡器連接埠**的值改為 **443**。

   1. 在 **Availability Zones (可用區域)** 區段的 **VPC** 中，選擇包含您的 Web 伺服器的 VPC。

   1. 在 **Availability Zones (可用區域)** 區段中，選擇包含您 Web 伺服器的子網路。

   1. 選擇 **Next: Configure Routing (下一步：設定路由)**。

1. 在 **Step 2: Configure Routing (步驟 2：設定路由)** 中，執行下列動作：

   1. 在 **Name (名稱)** 中，輸入您要建立之目標群組的名稱。

   1. 將**連接埠**的值改為 **443**。

   1. 選擇 **Next: Register Targets (下一步：註冊目標)**。

1. 在 **Step 3: Register Targets (步驟 3：註冊目標)** 中，執行下列動作：

   1. 在**執行個體**區段中，選取您 Web 伺服器執行個體旁的核取方塊。然後選擇 **Add to registered (新增至已註冊)**。

   1. 選擇下**一步：檢閱**。

1. 檢閱負載平衡器詳細資訊，然後選擇 **Create (建立)**。

1. 已成功建立負載平衡器時，請選擇 **Close (關閉)**。

當您完成前面的步驟後，Amazon EC2 主控台會顯示您的 Elastic Load Balancing 負載平衡器。

當負載平衡器的狀態為作用中，您可以確認負載平衡器是否在運作。也就是說，您可以確認負載平衡器是否將 HTTPS 流量傳送到 Web 伺服器 (使用 SSL/TLS 卸載搭配 AWS CloudHSM)。若要這樣做，您可以使用 Web 瀏覽器或 [OpenSSL s\_client](https://www.openssl.org/docs/manmaster/man1/s_client.html) 之類的工具。

**使用 Web 瀏覽器來確認負載平衡器是否在運作**

1. 在 Amazon EC2 主控台，尋找您剛建立之負載平衡器的 **DNS 名稱**。然後選取 DNS 名稱並將其複製。

1. 透過 Web 瀏覽器 (例如 Mozilla Firefox 或 Google Chrome)，使用負載平衡器的 DNS 名稱來連接到負載平衡器。請確定網址列中的 URL 開頭為 https://。
**提示**  
您可以使用 DNS 服務 (例如 Amazon Route 53)，將網站的網域名稱 (例如，https://www.example.com/) 路由到 Web 伺服器。如需詳細資訊，請參閱《Amazon Route 53 開發人員指南》**或 DNS 服務文件中的[將流量路由到 Amazon EC2 執行個體](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-ec2-instance.html)。

1. 使用您的 Web 瀏覽器來檢視 Web 伺服器憑證。如需詳細資訊，請參閱下列內容：
   + 若為 Mozilla Firefox，請參閱 Mozilla 技術支援網站上的[檢視憑證](https://support.mozilla.org/en-US/kb/secure-website-certificate#w_view-a-certificate)。
   + 若為 Google Chrome，請參閱 Google Web 開發人員工具網站上的[了解安全問題](https://developers.google.com/web/tools/chrome-devtools/security)。

   其他 Web 瀏覽器可能有類似的功能，可供您用來檢視 Web 伺服器憑證。

1. 請確定憑證是您將 Web 伺服器設定為要使用的憑證。

**使用 OpenSSL s\_client 來驗證負載平衡器是否在運作**

1. 使用以下 OpenSSL 命令使用 HTTPS 連接負載平衡器。以負載平衡器的 DNS 名稱取代 {{<DNS 名稱>}}。

   ```
   openssl s_client -connect {{<DNS name>}}:443
   ```
**提示**  
您可以使用 DNS 服務 (例如 Amazon Route 53)，將網站的網域名稱 (例如，https://www.example.com/) 路由到 Web 伺服器。如需詳細資訊，請參閱《Amazon Route 53 開發人員指南》**或 DNS 服務文件中的[將流量路由到 Amazon EC2 執行個體](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-ec2-instance.html)。

1. 請確定憑證是您將 Web 伺服器設定為要使用的憑證。

您現在有一個使用 HTTPS 保護的網站，其 Web 伺服器的私有金鑰存放在 AWS CloudHSM 叢集的 HSM 中。您的網站有兩個 Web 伺服器和一個負載平衡器，有助於提升效率和可用性。