

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

# 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)。