ある気象コンサルティング会社は、毎晩まとまった量の観測データを解析するワークロードを AWS 上で定期的に実行しています。解析処理は数十分から数時間かかることがあり、正常終了したときだけ、契約先が運用する社外の HTTP API を呼び出して解析結果を公開したいと考えています。この社外 API はユーザー名とパスワードによる基本認証を要求します。認証情報をアプリケーションコードに埋め込まず、イベント駆動で連携を実現したいと考えています。これらの要件を満たす手順の組み合わせはどれですか。2 つ選択してください。
複数選択問題です (正解 2 つ)。選んでから判定してください。
解説を読む(正解: A、B)
AWS Batch は、実行時間の長いバッチ処理をマネージドにスケジューリングして実行するサービスで、ジョブの状態が変わるたびに Job State Change イベントを Amazon EventBridge の既定イベントバスへ送信します。このイベントの detail.status が SUCCEEDED であるものだけをイベントパターンで抽出すれば、「正常終了したときだけ後続処理を動かす」というトリガーを追加のポーリングなしに実現できます。さらに EventBridge の API 送信先は、AWS 外部の HTTP エンドポイントをルールのターゲットにできる機能で、基本認証・API キー・OAuth の認証情報を接続 (connection) として登録すると、その資格情報は AWS Secrets Manager に保管され EventBridge が自動的に付与します。
本シナリオの要件は、長時間実行されるバッチの正常終了を検知して社外 API を呼び出すこと、そして認証情報をコードに埋め込まないことです。したがって A と B の組み合わせが最適です。
C と E が挙げる EventBridge スケジュールは、cron 式やレート式で「決まった時刻」に処理を起動する時間ベースの仕組みであり、イベントパターンでジョブの SUCCEEDED を検知することはできません。ジョブが失敗しても時刻が来れば後続処理が動いてしまうため要件を満たしません。さらに E は解析ワークロード自体を Lambda で実装しますが、Lambda の最大実行時間は 15 分であり、数時間かかる解析には適しません。D は Lambda 内から直接 HTTP リクエストを送る案ですが、認証情報をコードにハードコードすることになり、ローテーションもできず、セキュリティ要件に明確に違反します。