

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

# 建立內部 Classic Load Balancer
<a name="elb-create-internal-load-balancer"></a>

您可以建立內部負載平衡器，將流量分佈到您的 EC2 執行個體：從具備存取權的用戶端，到負載平衡器的 VPC。

**Topics**
+ [

## 先決條件
](#create-internal-lb-prereq)
+ [

## 使用主控台建立內部負載平衡器
](#create-internal-lb)
+ [

## 使用 建立內部負載平衡器 AWS CLI
](#create-internal-lb-cli)

## 先決條件
<a name="create-internal-lb-prereq"></a>
+ 如果您尚未建立負載平衡器的 VPC，您必須在開始使用之前先建立。如需詳細資訊，請參閱[VPC 的建議](elb-backend-instances.md#set-up-ec2)。
+ 啟動您計劃向內部負載平衡器註冊的 EC2 執行個體。確保在您打算用於負載平衡器的 VPC 中的私有子網路中啟動執行個體。

## 使用主控台建立內部負載平衡器
<a name="create-internal-lb"></a>

使用下列程序建立您的內部 Classic Load Balancer。提供您負載平衡器的基本組態資訊，例如名稱和結構描述。然後提供您網路的相關資訊，以及將流量路由至您執行個體的接聽程式資訊。

**使用主控台建立內部 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. 針對**安全群組**，請選取設定為在連接埠 80 上允許必要的 HTTP 流量的現有安全群組。或者，如果您的應用程式使用不同的通訊協定和連接埠，您也可以建立新的安全群組。

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

   1. 針對**接聽程式**，請確定通訊協定為 `HTTP`，且連接埠為 `80`。

   1. 針對**執行個體**，請確定通訊協定為 `HTTP`，且連接埠為 `80`。

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

   1. **Ping 通訊協定**預設為 `HTTP`。

   1. **Ping 連接埠**預設為 `80`。

   1. **Ping 路徑**預設為 `/`。

   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 執行個體時，可以停止或終止該執行個體，避免產生額外費用。

## 使用 建立內部負載平衡器 AWS CLI
<a name="create-internal-lb-cli"></a>

在預設情況下，Elastic Load Balancing 建立面向網際網路的負載平衡器。使用下列程序來建立內部負載平衡器，並且向新建立的內部負載平衡器註冊 EC2 執行個體。

**建立內部負載平衡器**

1. 使用 [create-load-balancer](https://docs.aws.amazon.com/cli/latest/reference/elb/create-load-balancer.html) 命令，其 `--scheme` 選項設定為 `internal`，如下所示：

   ```
   aws elb create-load-balancer --load-balancer-name my-internal-loadbalancer --listeners Protocol=HTTP,LoadBalancerPort=80,InstanceProtocol=HTTP,InstancePort=80
    --subnets subnet-4e05f721 --scheme internal --security-groups sg-b9ffedd5
   ```

   以下是回應範例。請注意，從名稱可看出這是內部負載平衡器。

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

1. 使用以下 [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-internal-loadbalancer --instances i-4f8cf126 i-0bb7ca62
   ```

   以下是回應範例：

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

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-internal-loadbalancer
   ```

   回應包含 `DNSName` 和 `Scheme` 欄位，這表示這是內部負載平衡器。

   ```
   {
       "LoadBalancerDescriptions": [
           {
               ...
               "DNSName": "internal-my-internal-loadbalancer-1234567890.us-west-2.elb.amazonaws.com", 
               "SecurityGroups": [
                   "sg-b9ffedd5"
               ], 
               "Policies": {
                   "LBCookieStickinessPolicies": [], 
                   "AppCookieStickinessPolicies": [], 
                   "OtherPolicies": []
               }, 
               "LoadBalancerName": "my-internal-loadbalancer", 
               "CreatedTime": "2014-05-22T20:32:19.920Z", 
               "AvailabilityZones": [
                   "us-west-2a"
               ], 
               "Scheme": "internal",
               ...
           }
       ]
   }
   ```