

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

# Classic Load Balancer 的註冊執行個體
<a name="elb-backend-instances"></a>

建立 Classic Load Balancer 之後，必須在負載平衡器註冊 EC2 執行個體。您可以從相同區域內的單一可用區域或多個可用區域選擇 EC2 執行個體，做為負載平衡器。Elastic Load Balancing 會定期對已註冊的 EC2 執行個體執行運作狀態檢查，並且在已註冊且運作狀態良好的 EC2 執行個體之間，自動將傳入請求分配至負載平衡器的 DNS 名稱。

**Topics**
+ [執行個體最佳實務](#backend-instance-best-practices)
+ [VPC 的建議](#set-up-ec2)
+ [向負載平衡器註冊執行個體](elb-deregister-register-instances.md)
+ [運作狀態檢查](elb-healthchecks.md)
+ [Security groups (安全群組)](elb-instances-security-groups.md)
+ [網路 ACL](elb-instances-network-acls.md)

## 執行個體最佳實務
<a name="backend-instance-best-practices"></a>
+ 您必須確保負載平衡器可以同時在接聽程式連接埠和運作狀態檢查連接埠上，與您的執行個體通訊。如需詳細資訊，請參閱[設定您的 Classic Load Balancer 的安全群組](elb-vpc-security-groups.md)。您的執行個體的安全群組必須允許在負載平衡器的每個子網路的兩個連接埠雙向流量。
+ 在您要向負載平衡器註冊的所有執行個體上安裝 Web 伺服器，例如 Apache 或 Internet Information Services (IIS)。
+ 對於 HTTP 和 HTTPS 接聽程式，我們建議在您的 EC2 執行個體啟用持續作用選項，其可讓負載平衡器針對多用戶端請求重複使用與您執行個體的連線。這可減少 Web 伺服器的負載，進而提升負載平衡器的輸送量。持續作用逾時應至少為 60 秒，以確保負載平衡器負責關閉連接到您的執行個體。
+ Elastic Load Balancing 支援路徑最大傳輸單元 (MTU) 探索。為了確保路徑 MTU 探索可以正常運作，您必須確保執行個體的安全群組可允許需要 ICMP 分段 (類型 3、代碼 4) 訊息。如需詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的[路徑 MTU 探索](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/network_mtu.html#path_mtu_discovery)。

## VPC 的建議
<a name="set-up-ec2"></a>

**虛擬私有雲端 (VPC)**  
除非您在 2014 年 AWS 帳戶 之前建立 ，否則每個區域中都有預設 VPC。如果您有預設 VPC，則可以為負載平衡器使用預設 VPC，也可以建立新的 VPC。如需詳細資訊，請參閱 *[Amazon VPC 使用者指南](https://docs.aws.amazon.com/vpc/latest/userguide/)*。

**負載平衡器的子網路**  
為了確保負載平衡器可以適當調整規模，請確認負載平衡器的每個子網路有一個 CIDR 區塊，並具有至少一個 `/27` 位元遮罩 (例如，`10.0.0.0/27`) 和至少 8 個免費的 IP 地址。負載平衡器會使用這些 IP 地址與執行個體建立連線，並在必要時橫向擴展。如果 IP 地址不足，負載平衡器可能無法擴展，並且由於容量不足而導致 503 錯誤。

在每個您想要啟動執行個體的可用區域建立子網路。根據您的應用程式，您可以在公有子網路、私有子網路、公有和私有子網路的組合啟動您的執行個體。公有子網路包含到網際網路閘道的路由。請注意，預設 VPC 在預設情況下的每個可用區域有一個公有子網路。

當您建立負載平衡器，您必須新增一或多個公有子網路到負載平衡器。如果您的執行個體位於私有子網路，請在相同的可用區域中建立公有子網路，如同您的執行個體的子網路；您會新增這些公有子網路到負載平衡器。

**網路 ACL**  
您的 VPC 的網路 ACL 必須在接聽連接埠和運作狀態檢查連接埠允許雙向流量。如需詳細資訊，請參閱[Classic Load Balancer 執行個體的網路 ACLs](elb-instances-network-acls.md)。

# 向 Classic Load Balancer 註冊執行個體
<a name="elb-deregister-register-instances"></a>

註冊 EC2 執行個體會將它新增到負載平衡器。負載平衡器在啟用的可用區域持續監控註冊的執行個體的運作狀態，並將請求路由到運作狀態良好的執行個體。如果執行個體的需求增加，您可以向負載平衡器註冊額外的執行個體來處理需求。

取消註冊 EC2 執行個體會將它從負載平衡器移除。執行個體取消註冊後，負載平衡器即停止路由請求到該執行個體。如果需求減少或您需要為執行個體提供服務，則可從負載平衡器取消註冊執行個體。取消註冊的執行個體仍會執行，但是不會再從負載平衡器接收流量，當您需要時可以再向負載平衡器註冊。

當您取消註冊執行個體時，如果啟用連接耗盡，Elastic Load Balancing 會等到處理中的請求完成。如需詳細資訊，請參閱[為 Classic Load Balancer 設定連接耗盡](config-conn-drain.md)。

如果您連接執行個體到 Auto Scaling 群組，群組中的執行個體已自動註冊了負載平衡器。如果分離負載平衡器與您的 Auto Scaling 群組的連結，會自動從該目標群組中取消執行個體的註冊。

Elastic Load Balancing 以您的負載平衡器註冊及其 IP 地址註冊您的 EC2 執行個體。

[EC2-VPC] 當您向連接的彈性網路界面 (ENI) 註冊執行個體時，負載平衡器會將請求路由到執行個體上主要界面 (eth0) 的主要 IP 地址。

**Topics**
+ [註冊執行個體](#elb-register-instances)
+ [檢視使用負載平衡器註冊的執行個體。](#elb-describe-load-balancer-instances)
+ [判斷已註冊執行個體的負載平衡器](#elb-describe-instance-load-balancer)
+ [取消註冊執行個體](#elb-deregister-instances)

## 註冊執行個體
<a name="elb-register-instances"></a>

當您準備好，以您的負載平衡器註冊您的執行個體。如果在可用區域內的執行個體是在已啟用負載平衡器，執行個體準備好接受流量時便立即通過所需的負載平衡器的運作狀態檢查。

**使用主控台註冊您的執行個體**

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

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

1. 選擇負載平衡器的名稱來開啟其詳細資訊頁面。

1. 在**目標執行個體**索引標籤中，選取**管理執行個體**。

1. 在**管理執行個體**頁面的**可用執行個體**表中，選取要向負載平衡器註冊的執行個體。

1. 確認**檢閱所選執行個體**表中出現需要註冊的執行個體。

1. 選擇**儲存變更**。

**使用 註冊執行個體 AWS CLI**  
使用以下 [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-4e05f721
```

以下是範例回應執行個體註冊列出的負載平衡器：

```
{
    "Instances": [
        {
            "InstanceId": "i-315b7e51"
        }, 
        {
            "InstanceId": "i-4e05f721"
        }
    ]
}
```

## 檢視使用負載平衡器註冊的執行個體。
<a name="elb-describe-load-balancer-instances"></a>

使用下列 [describe-load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) 命令，列出以指定負載平衡器註冊的執行個體：

```
aws elb describe-load-balancers --load-balancer-names my-load-balancer --output text --query "LoadBalancerDescriptions[*].Instances[*].InstanceId"
```

下列為範例輸出：

```
i-e905622e
i-315b7e51
i-4e05f721
```

## 判斷已註冊執行個體的負載平衡器
<a name="elb-describe-instance-load-balancer"></a>

使用下列 [describe-load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) 命令，取得指定執行個體所註冊的負載平衡器名稱：

```
aws elb describe-load-balancers --output text --query "LoadBalancerDescriptions[?Instances[?InstanceId=='i-e905622e']].[LoadBalancerName]"
```

下列為範例輸出：

```
my-load-balancer
```

## 取消註冊執行個體
<a name="elb-deregister-instances"></a>

您可以從您的負載平衡器取消註冊執行個體，如果您不再需要的容量，或如果您需要服務的執行個體。

如果負載平衡器連接到 Auto Scaling 群組，從群組分離執行個體，則執行個體會從負載平衡器取消註冊。如需詳細資訊，請參閱 *Amazon EC2 Auto Scaling 使用者指南*中的[從 Auto Scaling 群組分離 EC2 執行個體](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-detach-attach-instances.html)。

**使用主控台取消註冊您的執行個體**

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

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

1. 選擇負載平衡器的名稱來開啟其詳細資訊頁面。

1. 在**目標執行個體**索引標籤中，選取**管理執行個體**。

1. 在**管理執行個體**頁面的**可用執行個體**表中，取消選取要從負載平衡器取消註冊的執行個體。

1. 確認**檢閱所選執行個體**表中沒有需要取消註冊的執行個體。

1. 選擇**儲存變更**。

**使用 取消註冊您的執行個體 AWS CLI**  
使用以下 [register-instances-with-load-balancer](https://docs.aws.amazon.com/cli/latest/reference/elb/deregister-instances-from-load-balancer.html) 命令：

```
aws elb deregister-instances-from-load-balancer --load-balancer-name my-loadbalancer --instances i-4e05f721
```

以下是範例回應剩餘執行個體註冊列出的負載平衡器：

```
{
    "Instances": [
        {
            "InstanceId": "i-315b7e51"
        }
    ]
}
```

# Classic Load Balancer 執行個體的運作狀態檢查
<a name="elb-healthchecks"></a>

您的 Classic Load Balancer 會定期將請求傳送到已註冊的執行個體來測試其狀態。這些測試稱為*運作狀況檢查*。在進行運作狀態檢查時，運作狀態良好的執行個體的狀態為 `InService`。在進行運作狀態檢查時，運作狀態不佳的執行個體狀態為 `OutOfService`。無論執行個體運作狀態良好或不佳，負載平衡器都會在所有註冊的執行個體上執行運作狀態檢查。

負載平衡器只會將請求路由到運作狀態良好的執行個體。當負載平衡器判斷某個執行個體的運作狀態不佳時，會停止將請求路由到該執行個體。在執行個體還原到運作良好的狀態後，負載平衡器就會重新恢復路由請求到該執行個體。

負載平衡器會檢查其已註冊執行個體的運作狀態，使用方式是透過 Elastic Load Balancing 所提供預設的運作狀態檢查組態，或是您指定的自訂運作狀態檢查組態。

如果您的 Auto Scaling 群組與 Classic Load Balancer 相關聯，您可以使用負載平衡器的運作狀態檢查，以確定您的 Auto Scaling 群組中的執行個體的運作狀態。根據預設，每個執行個體的 Auto Scaling 群組定期決定運作狀態。如需詳細資訊，請參閱 *Amazon EC2 Auto Scaling 使用者指南*中的[為 Auto Scaling 群組新增 Elastic Load Balancing 運作狀態檢查](https://docs.aws.amazon.com/autoscaling/ec2/userguide/attach-load-balancer-asg.html)。

**Topics**
+ [運作狀態檢查組態](#health-check-configuration)
+ [更新運作狀態檢查組態](#update-health-check-config)
+ [檢查您的執行個體的運作狀態](#check-instance-health)
+ [故障診斷運作狀態檢查](#troubleshoot-health-checks)

## 運作狀態檢查組態
<a name="health-check-configuration"></a>

設定運作狀態，包含負載平衡器用於決定註冊執行個體的運作狀態的資訊。下表說明組態欄位的運作狀態檢查。


| 欄位 | Description | 
| --- | --- | 
|  通訊協定  |  使用通訊協定連線到執行個體。 有效值：`TCP`、`HTTP`、`HTTPS` 和 `SSL` 主控台預設：`HTTP` CLI/API 預設值：`TCP`  | 
|  站點  |  使用連接埠連線到執行個體,，像是 `protocol:port` 對。如果該負載平衡器無法與執行個體在設定的回應逾時時間在指定的連接埠連線，執行個體就視為運作狀態不佳。 通訊協定：`TCP`、`HTTP`、`HTTPS` 和 `SSL` 連接埠範圍：1 到 65535 主控台預設：`HTTP:80` CLI/API 預設值：`TCP:80`  | 
|  路徑  |  適用於 HTTP 或 HTTPS 請求的目的地。 會向連接埠和路徑上的執行個體發出 HTTP 或 HTTPS GET 請求。如果運作狀態檢查在回應的逾時時段內收到「200 OK」以外的任何回應，執行個體會被視為狀況不良。如果回應包含內文，您的應用程式必須將 Content-Length 標頭設為大於或等於零的值，或指定 Transfer-Encoding 值設為「區塊」。 預設：`/index.html`  | 
|  回應逾時  |  等待收到運作狀態檢查回應的時間，(以秒為單位)。 有效值：2 到 60 預設：5  | 
|  HealthCheck 間隔  |  個別執行個體的運作狀態檢查之間的時間，(以秒為單位)。 有效值：5 到 300 預設：30  | 
|  運作不良閾值  |  在宣告 EC2 執行個體不良之前，運作狀態檢查失敗必須發生的連續次數。 有效值：2 到 10 預設：2  | 
|  運作良好閾值  |  在宣告 EC2 執行個體良好之前，運作狀態檢查成功必須發生的連續次數。 有效值：2 到 10 預設：10  | 

負載平衡器每隔 `Interval` 秒會使用指定的連接埠、通訊協定和路徑，向每個已註冊執行個體傳送運作狀態檢查請求。每個運作狀態檢查請求是各自獨立，且在整個間隔內持續進行。執行個體回應所花的時間不影響下次運作狀態檢查請求的間隔。如果運作狀態檢查連續失敗超過 **UnhealthyThresholdCount** 次，負載平衡器會停用該執行個體。當運作狀態檢查連續成功超過 **HealthyThresholdCount** 次時，負載平衡器重新啟用該執行個體。

HTTP/HTTPS 運作狀態檢查成功如果在運作狀態檢查間隔內傳回 200 個回應代碼，執行個體會被視為運作狀態良好。如果 TCP 連線成功則 TCP 運作狀態檢查成功。如果 SSL 交握成功則 SSL 運作狀態檢查成功。

## 更新運作狀態檢查組態
<a name="update-health-check-config"></a>

您可以在任何時間更新您的負載平衡器的運作狀態檢查的組態。

**使用主控台更新您的負載平衡器的運作狀態檢查的組態。**

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

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

1. 選擇負載平衡器的名稱來開啟其詳細資訊頁面。

1. 在 **Health checks (運作狀態檢查)** 標籤上，選擇 **Edit (編輯)**。

1. 在**編輯運作狀態檢查設定**頁面的**運作狀態檢查**下方，視需要更新組態。

1. 對您的選項感到滿意後，請選擇**儲存變更**。

**使用 更新負載平衡器的運作狀態檢查組態 AWS CLI**  
使用以下 [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-load-balancer --health-check Target=HTTP:80/path,Interval=30,UnhealthyThreshold=2,HealthyThreshold=2,Timeout=3
```

## 檢查您的執行個體的運作狀態
<a name="check-instance-health"></a>

您可以查看您已註冊執行個體的運作狀態。

**使用主控台檢查執行個體的運作狀態**

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

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

1. 選擇負載平衡器的名稱來開啟其詳細資訊頁面。

1. 在**詳細資訊**區段中，**狀態**表示在服務中的執行個體數量。

1. 在**目標執行個體**索引標籤的**目標執行個體**表中，**運作狀態**欄位表示每個註冊執行個體的具體狀態。

**使用 檢查執行個體的運作狀態 AWS CLI**  
使用以下 [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-load-balancer
```

## 故障診斷運作狀態檢查
<a name="troubleshoot-health-checks"></a>

您的已註冊執行個體未能通過負載平衡器的運作狀態檢查的原因有若干個。運作狀態檢查失敗最常見的原因是，EC2 執行個體關閉與您的負載平衡器連線，或來自 EC2 執行個體的回應逾時。如需有關可能原因和步驟，以及您需要採取哪些步驟解決運作狀態檢查問題的詳細資訊，請參閱[故障診斷 Classic Load Balancer：運作狀態檢查](ts-elb-healthcheck.md)。

# Classic Load Balancer 執行個體的安全群組
<a name="elb-instances-security-groups"></a>

*security group (安全群組)* 扮演防火牆的角色，可控制允許進出一或多個執行個體的流量。啟動 EC2 執行個體時，您可以將一或多個安全群組與執行個體相關聯。針對每個安全群組，您可新增一或多個規則來允許流量。您可以隨時修改安全群組的規則；系統會自動將新規則套用至與安全群組相關聯的所有執行個體。如需詳細資訊，請參閱[《Amazon EC2 使用者指南》中的 Amazon EC2 安全群組](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.html)。 *Amazon EC2 *

您的執行個體的安全群組，必須允許它們與負載平衡器進行通訊。下表顯示建議的傳入規則。


| 來源 | 通訊協定 | 連接埠範圍 | Comment | 
| --- | --- | --- | --- | 
| *負載平衡器安全群組* | TCP | *執行個體接聽程式* | 允許來自負載平衡器在執行個體接聽程式連接埠上的流量 | 
| *負載平衡器安全群組* | TCP | *運作狀態檢查* | 允許負載平衡器透過運作狀態檢查連接埠傳送的流量 | 

我們也建議您允許傳入 ICMP 流量，以支援路徑 MTU 探索。如需詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的[路徑 MTU 探索](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/network_mtu.html#path_mtu_discovery)。

# Classic Load Balancer 執行個體的網路 ACLs
<a name="elb-instances-network-acls"></a>

*網路存取控制清單 (ACL)* 會允許或拒絕子網層級的特定傳入或傳出流量。您可使用 VPC 的預設網路 ACL，亦可使用與安全群組規則類似的規則來為 VPC 建立自訂網路 ACL，為 VPC 提供多一層的安全性。

VPC 的預設網路存取控制清單 (ACL) 可允許所有傳入和傳出的流量。如果您建立自訂網路 ACL，您必須新增規則允許負載平衡器和執行個體進行通訊。

您的執行個體的子網路建議規則，取決於子網路是私有或公有。以下規則用於一個私有子網路。如果您的執行個體處於公有子網路，請變更來源與目的地的 VPC 的 CIDR 至 `0.0.0.0/0`。

以下是建議的傳入規則。


| 來源 | 通訊協定 | 連接埠範圍 | Comment | 
| --- | --- | --- | --- | 
|  *VPC CIDR*  |  TCP  |  *執行個體接聽程式*  |  在執行個體接聽程式連接埠上允許從 VPC CIDR 流入的傳入流量  | 
|  *VPC CIDR*  |  TCP  |  *運作狀態檢查*  |  在運作狀態檢查連接埠上允許從 VPC CIDR 流入的傳入流量  | 

下列是建議的傳出規則。


| 目標 | 通訊協定 | 連接埠範圍 | Comment | 
| --- | --- | --- | --- | 
|  *VPC CIDR*  |  TCP  |  1024-65535  |  在暫時性連接埠上允許流向 VPC CIDR 的傳出流量  | 