AWS Fargate でタスクの終了直前付近のログが CloudWatch Logs に送られていません。なぜでしょうか?

2021.02.25

困っていた内容

Fargate のコンテナのログを CloudWatch Logs に出力していますが、タスクの終了直前付近のログがありません。

どう対応すればいいの?

現在の Fargate における挙動として、タスクの終了時に終了直前付近のログが送られないという制約があります。
これに対する回避策としましては、下記の2点があります。

①タスクで使用するコンテナのライフサイクルを延長する

ログが CloudWatch Logs に転送完了した後にコンテナを終了し、タスクを終了させます。
タスク内の終了処理前に10秒から15秒程の sleep 処理を入れてください。

②EC2 起動タイプを利用する

EC2 起動タイプで上記の制約を回避できます。

参考資料

テクニカルサポートノートとは?

クラスメソッドのカルチャー(CLP)の「情報発信を通じて、全ての人々の創造活動に貢献し続ける」という考えから、クラスメソッド メンバーズをご利用のお客様よりいただいたお問い合わせより、他の AWS ユーザーにとっても 有益な情報を一般的な TIPS としてご紹介しています。