Amazon ECS 服務限流邏輯 - Amazon Elastic Container Service

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

Amazon ECS 服務限流邏輯

Amazon ECS 服務排程器包含保護性邏輯,當任務重複啟動失敗時,會對任務啟動進行限流。這有助於防止不必要的資源消耗並降低成本。

如果服務中的任務未能從 PENDING 狀態轉換為 RUNNING 狀態,而是直接移至 STOPPED 狀態,排程器會:

  • 遞增重新啟動嘗試之間的間隔時間

  • 持續增加延遲,直至兩次嘗試之間的間隔達到上限 27 分鐘

  • 產生服務事件訊息以通知您問題

注意

27 分鐘的延遲期間上限可能會在未來更新中發生變更。

啟用限流後,您會收到此服務事件訊息:

(service service-name) is unable to consistently start tasks successfully.

節流邏輯的重要特性:

  • 服務會無限期地繼續重試嘗試

  • 唯一的修改是增加了重新啟動之間的間隔時間

  • 沒有使用者可設定的參數

解決限流問題

若要解決限流問題,您可以:

  • 更新服務以使用新的任務定義,這會立即將服務回復到正常、非限流的運作狀態。如需詳細資訊,請參閱更新 Amazon ECS 服務

  • 解決導致任務失敗的根本原因。

觸發限流的常見任務失敗原因包括:

重要

以下情況不會觸發限流邏輯:

  • 達到 RUNNING 狀態後停止的任務

  • 任務因 ELB 運作狀態檢查失敗而停止

  • 容器命令在達到 RUNNING 狀態後以非零代碼結束的任務