如何對 Fargate 上 Amazon ECS 任務的運作狀態檢查失敗進行疑難排解?

2 分的閱讀內容
0

我的 AWS Fargate 上的 Amazon Elastic Container Service (Amazon ECS) 任務運作狀態檢查失敗。

解決方法

對最常見的負載平衡器錯誤進行疑難排解

如果您收到下列任一錯誤:

  • (service AWS-service) (port 8080) is unhealthy in (target-grouparn:uxyztargetgroup/aws-targetgroup/123456789) due to (reason Health checks failed with these codes: [502]) or [request timeout]
  • (service AWS-Service) (port 8080) is unhealthy in target-group tf-20190411170 due to (reason Health checks failed)

請嘗試以下疑難排解步驟:

  • 如果您的容器映射至連接埠 80,請確認您的容器安全群組允許負載平衡器在連接埠 80 上進行傳入流量。
  • 確認負載平衡器運作狀態的 ping 連接埠值已正確設定。如果此連接埠未正確設定,負載平衡器可能會自行取消註冊容器。
  • 定義運作狀態檢查寬限期下限。這會指示服務排程器在具現化任務之後,忽略預先定義時段內的 Elastic Load Balancing 運作狀態檢查。
  • 監控服務的 CPU 和記憶體指標。例如,高度佔用 CPU 可能使您的應用程式沒有回應,並導致 502 錯誤。
  • 檢查應用程式日誌中是否有應用程式錯誤。
  • 檢查 ping 連接埠和運作狀態檢查路徑是否均已正確設定。
  • 確定您的後端資料庫已成功連接。這假設您的應用程式是在 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上由 Amazon Elastic Container Service (Amazon ECS) 啟動的一組任務。它還假設您的應用程式無法與 Amazon Relational Database Service (Amazon RDS) 資料庫通訊。

對 504 錯誤進行疑難排解

由於下列任何原因,您可能會收到 504 錯誤:

  • 您的負載平衡器無法在連線逾時到期 (10 秒) 之前建立與目標的連線。
  • 您的負載平衡器已建立目標的連線,但目標在閒置逾時期間結束前並無回應。
  • 子網路的網路存取控制清單不允許目標流量傳輸至暫時性連接埠 (1,024-65,535) 的負載平衡器節點

如果您收到 504 錯誤,如下所示:

  • (service AWS-Service) (port 8080) is unhealthy in target-group due to (reason Health checks failed with these codes:[504]

請嘗試以下疑難排解步驟:

  • 確認後端立即成功回應。
  • 正確設定回應逾時值。
    **注意:**回應逾時是指容器必須將回應傳回運作狀態檢查 ping 的時間量。如果此值低於回應所需的時間量,運作狀態檢查會失敗。
  • 檢查負載平衡器的存取日誌,以取得有關錯誤的詳細資訊。

對失敗的容器運作狀態檢查進行疑難排解

如果您收到下列錯誤,表示您的服務未與負載平衡器整合,但任務中的容器正在使用您的服務無法通過的運作狀態檢查

  • (service AWS-Service) (task ff3e71a4-d7e5-428b-9232-2345657889) failed container health checks

請嘗試下列疑難排解步驟:

  • 確認您傳遞至容器的命令正確,且語法正確。
  • 如果任務已執行一段時間,請檢查您的應用程式日誌和 Amazon CloudWatch 日誌。

**注意:**您無法存取基礎主機,因為 Fargate 由 AWS 管理。如需進一步疑難排解,請在 Amazon EC2 中啟動 Amazon ECS 任務。然後,使用 SSH 連接至 EC2 執行個體


相關資訊

服務定義參數

進階容器定義參數

啟用存取記錄

對 Application Load Balancer 進行疑難排解

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