無限ノック › DOP 練習問題一覧 › 問題
DOPインシデントとイベントへの対応

Amazon ECS (Fargate) でマイクロサービスを運用している企業の DevOps チームは、ECS タスクが非正常終了(exit code 非ゼロ:プロセス終了コード。0が正常終了、それ以外が異常終了を示す)で停止した際に Lambda 関数を起動してインシデント対応を自動化したいと考えています。ポーリング(定期的な問い合わせ)を使わずにリアルタイムで ECS タスクの障害を検出する最も適切な方法はどれですか?

A
ECS サービスの CloudWatch メトリクス RunningTaskCount の減少を監視する CloudWatch アラームを設定し、しきい値を下回った際のアラーム状態変化を EventBridge ルールで検知して Lambda 関数を起動し、ECS `ListTasks` および `DescribeTasks` API で停止タスクの詳細情報(exit code・終了理由・コンテナログストリーム等)を取得してインシデント内容を特定し、自動対応を実行する仕組みを構築する
RunningTaskCount の減少はスケールイン(正常な縮小)や正常完了でも発生するため、exit code 非ゼロのタスク障害のみを正確に識別できません。CloudWatch アラームには評価期間があり即時性に欠け、誤検出によるLambda起動が増加します。
B
Amazon EventBridge ルールを作成し、ソース `aws.ecs`・detail-type `ECS Task State Change`・`detail.lastStatus` が `STOPPED` かつ `detail.containers[0].exitCode` が 0 以外の条件でフィルタリングし、Lambda 関数をターゲットに設定する
✓ 正解
ECS がタスク状態変化をリアルタイムで EventBridge に自動発行し、lastStatus: STOPPED と exitCode 非ゼロのフィルターで障害のみを精度高く捕捉できる、イベント駆動型の実装です。
C
AWS CloudTrail データイベントで ECS の `StopTask` API コールを記録し、EventBridge ルールで CloudTrail イベントを検知して Lambda 関数を起動する
CloudTrail はコントロールプレーン API(管理操作)を記録します。コンテナ内プロセスが自律的に終了した場合、StopTask API は呼び出されないため検出できません。
D
Amazon EventBridge Scheduler で Lambda 関数を1分ごとに実行し、ECS `DescribeTasks` API を呼び出して各タスクの実行状況を定期的に確認し、停止タスクを検出する
EventBridge Scheduler で定期的に Lambda を起動して ECS API でタスク状態を確認するのは定期問い合わせ型のアーキテクチャであり、タスク障害発生の瞬間を即時検知する要件を満たしません。また1分ごとの Lambda 実行は不要なコストを発生させます。

解説

正解: Amazon EventBridge ルールを作成し、ソース `aws.ecs`・detail-type `ECS Task State Change`・`detail.lastStatus` が `STOPPED` かつ `detail.containers[0].exitCode` が 0 以外の条件でフィルタリングし、Lambda 関数をターゲットに設定する。 Amazon ECS はタスクの状態変化(Pending→Running→Stopped 等)をリアルタイムで EventBridge に自動発行します。`ECS Task State Change` イベントと `lastStatus: STOPPED`・exitCode フィルターを組み合わせることで、タスク障害のみを精度高く捕捉できるイベント駆動型アーキテクチャが実現します。 Aは誤りです。RunningTaskCount の減少はスケールイン(正常な縮小)や正常なタスク完了でも発生するため障害のみを識別できません。また CloudWatch アラームには評価期間があり即時性に欠けます。 Cは誤りです。CloudTrail は ECS のコントロールプレーン API(CreateService・StopTask などの管理操作)を記録します。タスク内のコンテナプロセスが自律的に終了して停止した場合は `StopTask` API は呼び出されないため、CloudTrail では検出できません。 Dは誤りです。EventBridge Scheduler で定期的に Lambda を起動して ECS API でタスク状態を確認する手法は、ポーリング(定期問い合わせ)型のアーキテクチャであり、タスク障害発生の瞬間をリアルタイムで検知する要件を満たしません。また1分ごとの Lambda 実行は不要なコストを発生させます。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDOPを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← DOP の問題一覧に戻る