AWS FargateにおけるAmazon ECSタスクの廃止とメンテナンス

AWS

※本記事は一次情報をもとにAI支援によって構成・作成し、事実関係の照合を行っています。

発表内容(事実)

AWSは、AWS Fargate上の基盤インフラストラクチャを維持するため、プラットフォームバージョンのリビジョンを新しいリビジョンに置き換える「タスクリタイアメント(タスクの廃止)」を実施しています。AWS Fargateのランタイムソフトウェアや、オペレーティングシステム、コンテナランタイムなどの依存関係を含むアップデートを導入するため、サポートされているプラットフォームバージョンが定期的に更新されます。新しいリビジョンが利用可能になった後、古いリビジョンは、すべての顧客ワークロードが最新のリビジョンで実行されるよう廃止されます。

リビジョンが廃止されると、そのリビジョンで実行されているすべてのタスクが停止します。Amazon ECSのタスクは、サービスとしてデプロイされるサービスタスクと、Amazon ECSのRunTask APIや外部スケジューラーによって開始されるスタンドアロンタスクに分類されます。サービスタスクの場合、Amazon ECSスケジューラーが自動的にタスクを置き換えるため、ユーザーが対応を行う必要はありません。

一方、スタンドアロンタスクの場合、AWSは指定された日付以降にタスクを停止しますが、自動的な代替タスクの起動は行われません。そのため、タスクを継続して実行する必要がある場合は、通知された時間の前に実行中のタスクを停止し、代替タスクを起動する必要があります。タスクが停止した際、describe-tasksを実行すると、stoppedReasonには「ECS is performing maintenance on the underlying infrastructure hosting the task」という理由が返されます。

この記事のポイント

  • AWS Fargateでは、基盤の更新や依存関係のアップデートに伴い、プラットフォームバージョンのリビジョン廃止(タスクリタイアメント)が実施される。
  • サービスタスクはAmazon ECSスケジューラーによって自動的に新しいタスクに置き換えられるため、ユーザーによる手動の対応は不要である。
  • スタンドアロンタスクの場合、自動で代替タスクは起動されないため、必要に応じてユーザー側で監視や代替タスクの起動ロジックを実装することが推奨される。
  • タスクが停止した際のレスポンスに含まれるstoppedReasonには、インフラストラクチャのメンテナンスが理由として記載される。

考察(筆者の見解)

サービスタスクとスタンドアロンタスクでメンテナンス時の挙動が異なる点は、システム設計や運用の面において重要な事実です。特にスタンドアロンタスクを運用している環境では、自動復旧の仕組みがないため、通知のモニタリングや代替処理の実装を怠ると可用性に影響が出る可能性があります。

筆者は、AWS Fargateを利用するシステムにおいて、バッチ処理や非同期処理などのスタンドアロンタスクを導入している場合、タスク廃止通知に対する監視アラートや自動再起動の仕組みをあらかじめ構築しておくことが不可欠であると考えます。インフラの裏側で実施されるメンテナンスの仕様を正確に把握し、適切な運用設計を行うことが重要です。

出典・参考リンク

コメント

タイトルとURLをコピーしました