

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

# 使用 HTTPS 接聽程式建立 Classic Load Balancer
<a name="elb-create-https-ssl-load-balancer"></a>

用戶端採用來自用戶端的請求，並將它們的分佈到已向負載平衡器註冊的 EC2 執行個體。

您可以建立一個會監聽這兩種 HTTP (80) 和 HTTPS (443) 連接埠的負載平衡器。如果您指定 HTTPS 接聽程式傳送請求到連接埠 80 上的執行個體，則負載平衡器會終止請求，而且不加密從負載平衡器到執行個體的通訊。如果 HTTPS 接聽程式傳送請求到連接埠 443 上的執行個體，便會將從負載平衡器到執行個體的通訊加密。

如果您的負載平衡器使用已加密的連線來與執行個體通訊，您就可以選擇性啟用執行個體的身分驗證。這可確保負載平衡器僅與執行個體通訊，若其公有金鑰符合您為此目的而指定到負載平衡器的金鑰的話。

如需有關新增 HTTPS 接聽程式至現有的負載平衡器的詳細資訊，請參閱[設定 Classic Load Balancer 的 HTTPS 接聽程式](elb-add-or-delete-listeners.md)。

**Topics**
+ [先決條件](#elb-https-ssl-prerequisites)
+ [使用主控台建立 HTTPS 負載平衡器](#create-https-lb-console)
+ [使用 建立 HTTPS 負載平衡器 AWS CLI](#create-https-lb-clt)

## 先決條件
<a name="elb-https-ssl-prerequisites"></a>

在開始使用之前，請確認您已符合以下必要條件：
+ 完成「[VPC 的建議](elb-backend-instances.md#set-up-ec2)」中的步驟。
+ 啟動您計劃向負載平衡器註冊的 EC2 執行個體。這些執行個體的安全群組必須允許負載平衡器的流量。
+ EC2 執行個體必須回應具 HTTP 狀態碼 200的運作狀態檢查的目標。如需詳細資訊，請參閱[Classic Load Balancer 執行個體的運作狀態檢查](elb-healthchecks.md)。
+ 如果您計劃在 EC2 執行個體上啟用持續作用選項，建議您將持續作用至少設定為負載平衡器的閒置逾時設定。若您想要確保負載平衡器負責關閉您的執行個體連線，請確保持續連線時間適用之執行個體上的值集大於您的負載平衡器上的閒置逾時設定。如需詳細資訊，請參閱[為 Classic Load Balancer 設定閒置連線逾時](config-idle-timeout.md)。
+ 若是建立安全接聽程式，您必須在您的負載平衡器上部署 SSL/TLS 伺服器憑證。負載平衡器使用此憑證以終止然後解密請求，再將它們傳送到執行個體。若您沒有 SSL 憑證，您可以建立一個。如需詳細資訊，請參閱[Classic Load Balancer 的 SSL/TLS 憑證](ssl-server-cert.md)。

## 使用主控台建立 HTTPS 負載平衡器
<a name="create-https-lb-console"></a>

在此範例中，您為負載平衡器設定兩個接聽程式。第一個接聽程式接受連接埠 80 上的 HTTP 請求，並將其傳送到連接埠 80 上使用 HTTP 的執行個體。第二個接聽程式接受連接埠 443 上的 HTTPS，並將其傳送到連接埠 80 上使用 HTTP 的執行個體 (如果您想要設定後端執行個體驗證，則使用連接埠 443 上的 HTTPS)。

*接聽程式*是檢查連線請求的程序。它是透過一個前端 (用戶端到負載平衡器) 連線的協定和連接埠，以及一個後端 (負載平衡器到執行個體) 連線的協定和連接埠進行設定。如需有關 Elastic Load Balancing 支援的連接埠、通訊協定和接聽程式組態的詳細資訊，請參閱 [Classic Load Balancer 的接聽程式](elb-listener-config.md)。

**使用主控台建立安全的 Classic Load Balancer**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 於導覽列上，為負載平衡器選擇一個區域。請務必選取您為 EC2 執行個體選取的同一區域。

1. 在導覽窗格的 **Load Balancing (負載平衡器)**，選擇 **Load Balancer (負載平衡器)**。

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

1. 展開 **Classic Load Balancer** 區段，然後選擇**建立**。

1. **基本組態**

   1. 針對**負載平衡器名稱**，輸入負載平衡器的名稱。

      在區域的 Classic Load Balancer 組合中，您的 Classic Load Balancer 名稱必須獨一無二，其字元數上限為 32 個，只能包含英數字元與連字號，但開頭或結尾都不可為連字號。

   1. 針對**結構描述**，選取**面向網際網路**。

1. **網路映射**

   1. 針對 **VPC**，選取與您執行個體相同的 VPC。

   1. 針對**映射**，先選取可用區域，然後從可用子網路中選擇公有子網路。一個可用區域只能選取一個子網路。為了提高您的負載平衡器可用性，可選取一個以上的可用區域和子網路。

1. **安全群組**

   1. 針對**安全群組**，請選取設定為在連接埠 80 上允許必要的 HTTP 流量，並在連接埠 443 上允許 HTTPS 流量的現有安全群組。

     如果沒有安全群組符合條件，您可以建立擁有必要規則的新安全群組。

1. **接聽程式和路由**

   1. 保留預設接聽程式的預設設定，然後選取**新增接聽程式**。

   1. 針對新接聽程式上的**接聽程式**，請選取 `HTTPS` 做為通訊協定，然後連接埠會更新為 `443`。根據預設，**執行個體**會在連接埠 `80` 上使用 `HTTP` 通訊協定。

   1. 如果需要執行後端身分驗證，請將**執行個體**通訊協定變更為 `HTTPS`。這也會將**執行個體**連接埠更新為 `443`

1. **安全接聽程式設定**

   當您對前端接聽程式使用 HTTPS 或 SSL，您必須在負載平衡器上部署 SSL 憑證。負載平衡器使用此憑證終止連接，然後解密用戶端的請求，再將它們傳送到執行個體。您也必須指定安全政策。Elastic Load Balancing 提供具有預先定義之 SSL 溝通組態的安全政策，或可建立您自己的自訂安全政策。如果您在後端連線設定 HTTPS/SSL，您可以為您的執行個體啟用身分驗證。

   1. 針對**安全政策**，我們建議您一律使用最新的預先定義安全政策，或建立自訂政策。查看[更新 SSL 溝通組態](ssl-config-update.md#ssl-config-update-console)。

   1. 針對**預設 SSL/TLS 憑證**，有下列選項可用：
      + 如果您使用 建立或匯入憑證 AWS Certificate Manager，請選取**從 ACM**，然後從選取憑證**中選取憑證**。
      + 如果您使用 IAM 匯入憑證，請選取**從 IAM**，然後從**選取憑證**處選取您的憑證。
      + 如果您想匯入憑證，但您的區域無法使用 ACM，請依序選取**匯入**和**到 IAM**。在**憑證名稱**欄位輸入憑證名稱。在**憑證私有金鑰**中，複製並貼上私有金鑰檔案的內容 (PEM 編碼)。在**憑證內文**中，複製並貼上公有金鑰憑證檔案的內容 (PEM 編碼)。在 **Certificate Chain** (憑證鏈) 中，將憑證鏈檔案的內容 (PEM 編碼) 複製並貼上，除非您使用的是自我簽署憑證，且不介意瀏覽器隱含地接受憑證。

   1. (選用) 如果您設定 HTTPS 接聽程式為使用加密的連線與執行個體通訊，您可以選擇性地在**後端身分驗證憑證**中設定執行個體的身分驗證。
**注意**  
如果您沒有看到**後端身分驗證憑證**區段，請返回**接聽程式和路由**，然後選取 `HTTPS` 做為**執行個體**的通訊協定。

      1. 針對 **Certificate name (憑證名稱)**，輸入公有金鑰憑證的名稱。

      1. 針對**憑證內文 (PEM 編碼)**，請複製並貼上憑證的內容。如果公有金鑰符合此金鑰，負載平衡器只會與執行個體通訊。

      1. 若要新增另一個憑證，請選擇**新增後端憑證**。最多五個憑證。

1. **運作狀態檢查**

   1. 在 **Ping 目標**區段中，選取 **Ping 通訊協定**和 **Ping 連接埠**。您的 EC2 執行個體必須接受指定 Ping 連接埠上的流量。

   1. 針對 **Ping 連接埠**，請確定連接埠為 `80`。

   1. 針對 **Ping 路徑**，請將預設值取代為單一政協線 (`/`)。這會告知 Elastic Load Balancing 將運作狀態檢查請求傳送給您 Web 伺服器的預設首頁，例如 `index.html`。

   1. 針對**進階運作狀態檢查設定**，請使用預設值。

1. **執行個體**

   1. 選取**新增執行個體**以開啟執行個體選取畫面。

   1. 在**可用執行個體**下方，您可以根據先前選取的網路設定，選取目前可用於負載平衡器的執行個體。

   1. 當您對您的選項感到滿意時，請選取**確認**，將要註冊的執行個體新增至負載平衡器。

1. **Attributes**

   1. 針對**啟用跨區域負載平衡**、**啟用連接耗盡**和**逾時 (耗盡間隔)**，請保留預設值。

1. **負載平衡器標籤 (選用)**

   1. **索引鍵**欄位為必填。

   1. **值**欄位為選填。

   1. 若要新增另一個標籤，請選取**新增標籤**，然後輸入**索引鍵**欄位值，並選擇性地填寫**值**欄位。

   1. 若要移除現有的標籤，請在要移除的標籤旁選取**移除**。

1. **摘要和建立**

   1. 如果您需要變更任何設定，請在需要變更的設定旁選取**編輯**。

   1. 如果您對摘要中顯示的所有設定感到滿意，請選取**建立負載平衡器**，開始建立您的負載平衡器。

   1. 在最終建立頁面上選取**檢視負載平衡器**，即可在 Amazon EC2 主控台中檢視您的負載平衡器。

1. **確認**

   1. 選取新的負載平衡器。

   1. 在**目標執行個體**索引標籤中，檢查**運作狀態**欄位。至少有一個 EC2 執行個體在**服務中**之後，您可以測試負載平衡器。

   1. 在**詳細資訊**區段中複製負載平衡器的 **DNS 名稱**，此名稱看起來會類似 `my-load-balancer-1234567890.us-east-1.elb.amazonaws.com`。

   1. 將負載平衡器的 **DNS 名稱**貼至已連接公有網際網路的 Web 瀏覽器的網址欄位。如果負載平衡器運作正常，您會看到伺服器的預設頁面。

1. **刪除 (選用)**

   1. 若您的網域有指向負載平衡器的 CNAME 記錄，請指向新位置並等待 DNS 變更發生效用，之後再刪除負載平衡器。

   1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

   1. 選取負載平衡器。

   1. 選擇**動作**、**刪除負載平衡器**。

   1. 出現確認提示時，請輸入 `confirm`，然後選取**刪除**。

   1. 刪除負載平衡器後，透過該負載平衡器註冊的 EC2 執行個體會繼續執行。系統將根據執行個體繼續執行的時間，按每小時或不足一小時的時數計費。當您不再需要某個 EC2 執行個體時，可以停止或終止該執行個體，避免產生額外費用。

## 使用 建立 HTTPS 負載平衡器 AWS CLI
<a name="create-https-lb-clt"></a>

使用以下指示，使用 AWS CLI建立 HTTPS/SSL 負載平衡器。

**Topics**
+ [步驟 1：設定接聽程式](#configuring_listener_clt)
+ [步驟 2：設定 SSL 安全政策](#configure_ciphers_clt)
+ [步驟 3：設定後端執行個體身分驗證 (選用)](#configure_backendauth_clt)
+ [步驟 4：設定運作狀態檢查(選用)](#configure_healthcheck_clt)
+ [步驟 5：註冊 EC2 執行個體](#add_ec2instances_clt)
+ [步驟 6：驗證執行個體](#verify-ec2instances-clt)
+ [步驟 7：刪除負載平衡器 (選用)](#us-tearing-lb-cli)

### 步驟 1：設定接聽程式
<a name="configuring_listener_clt"></a>

*接聽程式*是檢查連線請求的程序。它是透過一個前端 (用戶端到負載平衡器) 連線的協定和連接埠，以及一個後端 (負載平衡器到執行個體) 連線的協定和連接埠進行設定。如需有關 Elastic Load Balancing 支援的連接埠、通訊協定和接聽程式組態的詳細資訊，請參閱 [Classic Load Balancer 的接聽程式](elb-listener-config.md)。

在這個範例中，您為負載平衡器設定兩個接聽程式，做法是指定連接埠和通訊協定以用於前端和後端連線。第一個接聽程式接受連接埠 80 上的 HTTP 請求，並將請求傳送到連接埠 80 上使用 HTTP 的執行個體。第二個接聽程式接受連接埠 443 上的 HTTPS 請求，並將請求傳送到連接埠 80 上使用 HTTP 的執行個體。

由於第二個接聽程式使用 HTTPS 管理連線的前端伺服器，您必須在負載平衡器上部署 SSL 伺服器憑證。負載平衡器使用此憑證以終止然後解密請求，再將它們傳送到執行個體。

**設定負載平衡器的接聽程式。**

1. 取得 SSL 憑證的 Amazon Resource Name (ARN)。例如：

   **ACM**

   ```
   arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012
   ```

   **IAM**

   ```
   arn:aws:iam::123456789012:server-certificate/my-server-certificate
   ```

1. 使用以下 [create-load-balancer](https://docs.aws.amazon.com/cli/latest/reference/elb/create-load-balancer.html) 命令來建立具有兩個接聽程式的負載平衡器：

   ```
   aws elb create-load-balancer --load-balancer-name my-load-balancer --listeners "Protocol=http,LoadBalancerPort=80,InstanceProtocol=http,InstancePort=80" "Protocol=https,LoadBalancerPort=443,InstanceProtocol=http,InstancePort=80,SSLCertificateId="ARN" --availability-zones us-west-2a
   ```

   以下是回應範例：

   ```
   {
     "DNSName": "my-loadbalancer-012345678.us-west-2.elb.amazonaws.com"
   }
   ```

1. (選用) 使用以下 [describe- load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) 命令來檢視您的負載平衡器的詳細資訊：

   ```
   aws elb describe-load-balancers --load-balancer-name my-load-balancer
   ```

### 步驟 2：設定 SSL 安全政策
<a name="configure_ciphers_clt"></a>

您可以選擇一個預先定義的安全政策，或可建立自己的自訂安全政策。否則，Elastic Load Balancing 會使用預設的預先定義安全政策 `ELBSecurityPolicy-2016-08` 來設定您的負載平衡器。如需詳細資訊，請參閱[Classic Load Balancer 的 SSL 溝通組態](elb-ssl-security-policy.md)。

**確認您的負載平衡器與預設安全政策相關聯**  
使用以下 [describe-load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) 命令：

```
aws elb describe-load-balancers --load-balancer-name my-loadbalancer
```

以下是回應範例。請注意，`ELBSecurityPolicy-2016-08` 與連接埠 443 的負載平衡器相關聯。

```
{
    "LoadBalancerDescriptions": [
        {
            ...
            "ListenerDescriptions": [
                {
                    "Listener": {
                        "InstancePort": 80, 
                        "SSLCertificateId": "ARN", 
                        "LoadBalancerPort": 443, 
                        "Protocol": "HTTPS", 
                        "InstanceProtocol": "HTTP"
                    }, 
                    "PolicyNames": [
                        "ELBSecurityPolicy-2016-08"
                    ]
                }, 
                {
                    "Listener": {
                        "InstancePort": 80, 
                        "LoadBalancerPort": 80, 
                        "Protocol": "HTTP", 
                        "InstanceProtocol": "HTTP"
                    }, 
                    "PolicyNames": []
                }
            ],
            ...
        }
    ]
}
```

如果您願意，您可以為您的負載平衡器設定 SSL 安全政策，而不是使用預設的安全政策。

**(選用) 使用預先定義的 SSL 安全政策**

1. 使用以下 [describe-load-balancer-policies](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancer-policies.html) 命令，列出預先定義的安全政策的名稱：

   ```
   aws elb describe-load-balancer-policies
   ```

   如需有關為預先定義安全政策的組態的詳細資訊，請參閱[Classic Load Balancer 適用的預先定義 SSL 安全政策](elb-security-policy-table.md)。

1. 使用以下 [create-load-balancer-policy](https://docs.aws.amazon.com/cli/latest/reference/elb/create-load-balancer-policy.html) 命令來建立使用其中一個預先定義安全政策的 SSL 溝通政策，如之前步驟所述：

   ```
   aws elb create-load-balancer-policy --load-balancer-name my-loadbalancer
   --policy-name my-SSLNegotiation-policy --policy-type-name SSLNegotiationPolicyType 
   --policy-attributes AttributeName=Reference-Security-Policy,AttributeValue=predefined-policy
   ```

1. (選用) 使用以下 [describe-load-balancer-policies](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancer-policies.html) 命令來確認已建立政策：

   ```
   aws elb describe-load-balancer-policies --load-balancer-name my-loadbalancer --policy-name my-SSLNegotiation-policy
   ```

   回應包含政策的描述。

1. 使用以下 [set-load-balancer-policies-of-listener](https://docs.aws.amazon.com/cli/latest/reference/elb/set-load-balancer-policies-of-listener.html) 命令以啟用負載平衡器連接埠 443 的政策：

   ```
   aws elb set-load-balancer-policies-of-listener --load-balancer-name my-loadbalancer --load-balancer-port 443 --policy-names my-SSLNegotiation-policy
   ```
**注意**  
此 `set-load-balancer-policies-of-listener` 命令會將指定的負載平衡器連接埠的目前政策集合取代為指定的政策。`--policy-names` 清單必須包含所有要啟用的 政策。如果您省略的政策目前已啟用，它會被停用。

1. (選用) 使用以下 [describe- load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) 命令來驗證已啟用的政策：

   ```
   aws elb describe-load-balancers --load-balancer-name my-loadbalancer
   ```

   以下是範例回應，其顯示政策在連接埠 443 上啟用。

   ```
   {
       "LoadBalancerDescriptions": [
           {
               ....
               "ListenerDescriptions": [
                   {
                       "Listener": {
                           "InstancePort": 80, 
                           "SSLCertificateId": "ARN", 
                           "LoadBalancerPort": 443, 
                           "Protocol": "HTTPS", 
                           "InstanceProtocol": "HTTP"
                       }, 
                       "PolicyNames": [
                           "my-SSLNegotiation-policy"
                       ]
                   }, 
                   {
                       "Listener": {
                           "InstancePort": 80, 
                           "LoadBalancerPort": 80, 
                           "Protocol": "HTTP", 
                           "InstanceProtocol": "HTTP"
                       }, 
                       "PolicyNames": []
                   }
               ],
               ...
           }
       ]
   }
   ```

當您建立自訂安全政策，您必須至少啟用一個通訊協定，和一個加密方式。DSA 和 RSA 加密方式是專用於建立 SSL 憑證的簽署演算法。如果您已有 SSL 憑證，請務必啟用用於建立您的憑證的加密方式。您的自訂政策名稱不得以 `ELBSample-` 或 `ELBSecurityPolicy-` 開頭，因為這些字首是預留給預先定義安全政策的名稱使用。

**(選用) 使用自訂 SSL 安全政策**

1. 使用 [create-load-balancer-policy](https://docs.aws.amazon.com/cli/latest/reference/elb/create-load-balancer-policy.html) 命令來建立使用自訂安全政策的 SSL 溝通政策。例如：

   ```
   aws elb create-load-balancer-policy --load-balancer-name my-loadbalancer 
    --policy-name my-SSLNegotiation-policy --policy-type-name SSLNegotiationPolicyType 
    --policy-attributes AttributeName=Protocol-TLSv1.2,AttributeValue=true 
    AttributeName=Protocol-TLSv1.1,AttributeValue=true 
    AttributeName=DHE-RSA-AES256-SHA256,AttributeValue=true 
    AttributeName=Server-Defined-Cipher-Order,AttributeValue=true
   ```

1. (選用) 使用以下 [describe-load-balancer-policies](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancer-policies.html) 命令來確認已建立政策：

   ```
   aws elb describe-load-balancer-policies --load-balancer-name my-loadbalancer --policy-name my-SSLNegotiation-policy
   ```

   回應包含政策的描述。

1. 使用以下 [set-load-balancer-policies-of-listener](https://docs.aws.amazon.com/cli/latest/reference/elb/set-load-balancer-policies-of-listener.html) 命令以啟用負載平衡器連接埠 443 的政策：

   ```
   aws elb set-load-balancer-policies-of-listener --load-balancer-name my-loadbalancer --load-balancer-port 443 --policy-names my-SSLNegotiation-policy
   ```
**注意**  
此 `set-load-balancer-policies-of-listener` 命令會將指定的負載平衡器連接埠的目前政策集合取代為指定的政策。`--policy-names` 清單必須包含所有要啟用的 政策。如果您省略的政策目前已啟用，它會被停用。

1. (選用) 使用以下 [describe- load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) 命令來驗證已啟用的政策：

   ```
   aws elb describe-load-balancers --load-balancer-name my-loadbalancer
   ```

   以下是範例回應，其顯示政策在連接埠 443 上啟用。

   ```
   {
       "LoadBalancerDescriptions": [
           {
               ....
               "ListenerDescriptions": [
                   {
                       "Listener": {
                           "InstancePort": 80, 
                           "SSLCertificateId": "ARN", 
                           "LoadBalancerPort": 443, 
                           "Protocol": "HTTPS", 
                           "InstanceProtocol": "HTTP"
                       }, 
                       "PolicyNames": [
                           "my-SSLNegotiation-policy"
                       ]
                   }, 
                   {
                       "Listener": {
                           "InstancePort": 80, 
                           "LoadBalancerPort": 80, 
                           "Protocol": "HTTP", 
                           "InstanceProtocol": "HTTP"
                       }, 
                       "PolicyNames": []
                   }
               ],
               ...
           }
       ]
   }
   ```

### 步驟 3：設定後端執行個體身分驗證 (選用)
<a name="configure_backendauth_clt"></a>

如果您在後端連線設定 HTTPS/SSL，您可以選擇性設定執行個體的身分驗證。

當您設定後端執行個體身分驗證時，會建立公有金鑰政策。接著，您會使用這個公有金鑰政策來建立後端執行個體身分驗證政策。最後，您使用 HTTPS 通訊協定的執行個體連接埠來設定後端執行個體驗證政策。

只有在執行個體提供給負載平衡器的公有金鑰符合您的負載平衡器身分驗證政策的公有金鑰時，負載平衡器才會與執行個體通訊。

**設定後端執行個體身分驗證**

1. 使用下列命令來擷取公有金鑰：

   ```
   openssl x509 -in your X509 certificate PublicKey -pubkey -noout
   ```

1. 使用以下 [create-load-balancer-policy](https://docs.aws.amazon.com/cli/latest/reference/elb/create-load-balancer-policy.html) 命令來建立公有金鑰政策：

   ```
   aws elb create-load-balancer-policy --load-balancer-name my-loadbalancer --policy-name my-PublicKey-policy \
   --policy-type-name PublicKeyPolicyType --policy-attributes AttributeName=PublicKey,AttributeValue=MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w
    0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ
    WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw
    EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5
    jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh
    MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb
    WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx
    HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE
    BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI
    k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ
    ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr
    AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN
    KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo
    EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw
    3rrszlaEXAMPLE=
   ```
**注意**  
若要指定 `--policy-attributes` 的公有金鑰值，請移除第一個和最後一行公有金鑰 (該行各包含`-----BEGIN PUBLIC KEY-----` 和 `-----END PUBLIC KEY-----`)。 AWS CLI 不接受 中的空格字元`--policy-attributes`。

1. 使用以下 [create-load-balancer-policy](https://docs.aws.amazon.com/cli/latest/reference/elb/create-load-balancer-policy.html) 命令來建立使用 `my-PublicKey-policy` 的後端執行個體驗證政策。

   ```
   aws elb create-load-balancer-policy --load-balancer-name my-loadbalancer --policy-name my-authentication-policy --policy-type-name BackendServerAuthenticationPolicyType --policy-attributes AttributeName=PublicKeyPolicyName,AttributeValue=my-PublicKey-policy
   ```

   您可以選擇性使用多個公有金鑰政策。負載平衡器嘗試所有金鑰，一次一個。如果執行個體提供的公有金鑰符合這些公有金鑰的其中一個，該執行個體會被驗證。

1. 使用下列 [set-load-balancer-policies-for-backend-server](https://docs.aws.amazon.com/cli/latest/reference/elb/set-load-balancer-policies-for-backend-server.html) 命令將 `my-authentication-policy` 設定為 HTTPS 的執行個體連接埠。在此範例中，執行個體連接埠為 443。

   ```
   aws elb set-load-balancer-policies-for-backend-server --load-balancer-name my-loadbalancer --instance-port 443 --policy-names my-authentication-policy
   ```

1. (選用) 使用以下 [describe-load-balancer-policies](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancer-policies.html) 命令列出負載平衡器的所有政策：

   ```
   aws elb describe-load-balancer-policies --load-balancer-name my-loadbalancer
   ```

1. (選用) 使用以下 [describe-load-balancer-policies](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancer-policies.html) 命令來檢視政策的詳細資訊：

   ```
   aws elb describe-load-balancer-policies --load-balancer-name my-loadbalancer --policy-names my-authentication-policy
   ```

### 步驟 4：設定運作狀態檢查(選用)
<a name="configure_healthcheck_clt"></a>

Elastic Load Balancing 會根據您設定的運作狀態檢查，定期檢查每個註冊的 EC2 執行個體的運作狀態。如果 Elastic Load Balancing 找到運作狀態不佳的執行個體，則會停止將流量傳送至執行個體，並將流量路由至運作狀態良好的執行個體。如需詳細資訊，請參閱[Classic Load Balancer 執行個體的運作狀態檢查](elb-healthchecks.md)。

當您建立您的負載平衡器，Elastic Load Balancing 會使用預設的運作狀態檢查設定。如果您願意，您可以為您的負載平衡器變更運作狀態檢查組態，而不是使用預設的設定。

**設定執行個體的運作狀態檢查**  
使用以下 [Configure Health Check (設定運作狀態檢查)](https://docs.aws.amazon.com/cli/latest/reference/elb/configure-health-check.html) 命令：

```
aws elb configure-health-check --load-balancer-name my-loadbalancer --health-check Target=HTTP:80/ping,Interval=30,UnhealthyThreshold=2,HealthyThreshold=2,Timeout=3
```

以下是回應範例：

```
{
    "HealthCheck": {
        "HealthyThreshold": 2,
        "Interval": 30,
        "Target": "HTTP:80/ping",
        "Timeout": 3,
        "UnhealthyThreshold": 2
    }
}
```

### 步驟 5：註冊 EC2 執行個體
<a name="add_ec2instances_clt"></a>

建立負載平衡器之後，必須在負載平衡器註冊 EC2 執行個體。您可以從相同區域內的單一可用區域或多個可用區域選擇 EC2 執行個體，做為負載平衡器。如需詳細資訊，請參閱[Classic Load Balancer 的註冊執行個體](elb-backend-instances.md)。

使用 [register-instances-with-load-balancer](https://docs.aws.amazon.com/cli/latest/reference/elb/register-instances-with-load-balancer.html) 命令，如下所示：

```
aws elb register-instances-with-load-balancer --load-balancer-name my-loadbalancer --instances i-4f8cf126 i-0bb7ca62
```

以下是回應範例：

```
{
    "Instances": [
        {
            "InstanceId": "i-4f8cf126"
        },
        {
            "InstanceId": "i-0bb7ca62"
        }
    ]
}
```

### 步驟 6：驗證執行個體
<a name="verify-ec2instances-clt"></a>

只要任何一個已註冊執行個體在 `InService` 狀態，您的負載平衡器便可使用。

若要檢查您新註冊的 EC2 執行個體的狀態，請使用下列 [describe-instance-health](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-instance-health.html) 命令：

```
aws elb describe-instance-health  --load-balancer-name my-loadbalancer --instances i-4f8cf126 i-0bb7ca62
```

以下是回應範例：

```
{
    "InstanceStates": [
        {
            "InstanceId": "i-4f8cf126", 
            "ReasonCode": "N/A", 
            "State": "InService", 
            "Description": "N/A"
        }, 
        {
            "InstanceId": "i-0bb7ca62", 
            "ReasonCode": "Instance", 
            "State": "OutOfService", 
            "Description": "Instance registration is still in progress"
        }
    ]
}
```

如果執行個體的 `State` 欄位是 `OutOfService`，原因可能是您的執行個體仍在註冊中。如需詳細資訊，請參閱[故障診斷 Classic Load Balancer：執行個體註冊](ts-elb-register-instance.md)。

當至少有一個執行個體處於 `InService` 狀態後，您即可測試負載平衡器。若要測試您的負載平衡器，請複製負載平衡器的 DNS 名稱，並貼至連接網際網路連線的 Web 瀏覽器網址欄位。如果負載平衡器運作正常，您可查看 HTTP 伺服器的預設頁面。

### 步驟 7：刪除負載平衡器 (選用)
<a name="us-tearing-lb-cli"></a>

刪除負載平衡器會自動取消註冊其關聯的 EC2 執行個體。負載平衡器刪除後，即無需再支付該負載平衡器的費用。不過，EC2 執行個體會持續執行，而且您會持續支付費用。

若要刪除負載平衡器，請使用下列 [delete-load-balancer](https://docs.aws.amazon.com/cli/latest/reference/elb/delete-load-balancer.html) 命令：

```
aws elb delete-load-balancer --load-balancer-name my-loadbalancer
```

若要停止您的 EC2 執行個體，請使用 [stop-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/stop-instances.html) 命令。若要終止您的 EC2 執行個體，請使用 [terminate-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/terminate-instances.html) 命令。