如何對 Application Load Balancer 中的 503 (服務無法使用) 錯誤進行疑難排解?

2 分的閱讀內容
0

使用 Application Load Balancer (ALB) 時,出現 HTTP 503 (服務無法使用) 錯誤。如何解決此錯誤?

簡短描述

若要判斷 Application Load Balancer 是否產生 503 錯誤,請執行下列其中一個動作:

  • 存取您的 CloudWatch 指標並找出標示 HTTPCode_ELB_503_Count 的指標。
  • 執行此 CURL 命令。如果回應包含「503 服務暫時不可用」,則錯誤來自 Application Load Balancer。
    請務必將 MY_URL 取代為用於存取 Application Load Balancer 的 URL:
$ curl -IkL MY_URL
  • 檢查 Application Load Balancer 的存取日誌。確認日誌中包含 elb_status_code = 503。 如果您在上述任何位置看到 503 錯誤,就表示由 Application Load Balancer 產生錯誤。若要解決此錯誤,請使用下列疑難排解步驟。

解決方案

確認目標群組已註冊目標

使用 EC2 主控台進行驗證

  1. 存取 Amazon EC2 主控台
  2. 在導覽窗格的負載平衡下,選擇目標群組
  3. 選擇目標群組的名稱,以開啟其詳細資訊頁面。
  4. 選擇目標索引標籤。
  5. 檢查是否有列出的目標。如果目標已列出,則會註冊它們。

使用 AWS CLI 進行驗證

注意:如果您在執行 AWS CLI 命令時收到錯誤,請確保您使用的是最新版 AWS CLI

若要使用 AWS CLI 驗證目標,請使用 describe-target-health 命令。

註冊目標

如果看不到任何已註冊的目標,請透過主控台透過 AWS CLI 註冊它們。

確認目標群組與 Auto Scaling 群組相關聯 (如果您正在使用 Auto Scaling)

如果您的目標群組是 Auto Scaling 群組的一部分,請確認這兩個群組正確關聯。如果不是,請連接這兩個群組。

使用 EC2 主控台進行驗證

  1. 開啟 Amazon EC2 主控台
  2. 在導覽窗格的 Auto Scaling 下,選擇 Auto Scaling 群組
  3. 選擇您要驗證的 Auto Scaling 群組。
  4. 負載平衡下,確認 Application Load Balancer 的目標群組與 Auto Scaling 群組相關聯。

使用 AWS CLI 進行驗證

執行 describe-auto-scaling 命令。請務必將 MY-ASG 取代為 Auto Scaling 群組的名稱。將 AWS-REGION 取代為您的特定 AWS 區域。

$ aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name MY-ASG --region AWS-REGION

在命令輸出中,確認目標群組列在 TargetGroupARNs 之下。

連接目標群組

如果目標群組未連接至 Auto Scaling 群組,請透過主控台透過 CLI 建立群組關聯。

檢查目標運作狀態

確認目標已註冊後,請確認它們處於健康狀態。有關更多資訊,請參閱 如何對 Application Load Balancer 的運作狀態檢查失敗進行疑難排解和修復?


相關資訊

DeregisterTargets

AttachLoadBalancerTargetGroups

AWS 官方
AWS 官方已更新 2 年前