DEAデータオペレーションとサポート
あるデータエンジニアリングチームは、パートナー企業から毎朝6:00 AMまでにAmazon S3バケットの特定プレフィックスへファイルが配信される日次バッチパイプラインを運用しています。ファイルが8:00 AMまでに到着しない場合、オンコールチームのSlackチャンネルへ自動でアラートを送信する仕組みを実装したいと考えています。現在はファイル未着を検知する監視の仕組みがありません。
この要件を満たす最も適切なソリューションはどれですか?
AS3バケット通知を設定してファイルアップロード時にAmazon SNSで通知し、8:00 AMまでにS3のPUTイベントが記録されない場合はCloudWatchアラームでアラートを発報する
S3バケット通知はプッシュ型のため、ファイル到着時のみ通知を送ります。ファイルが到着しない状態では通知そのものが送られないため、ファイル未着検知に対応できません。
BAmazon EventBridgeのスケジュールルールを毎日8:00 AMにトリガーするよう設定し、AWS Lambda関数でS3内の期待されるファイルの存在を確認し、ファイルが存在しない場合はAmazon SNSを通じてSlack Webhookに通知する
✓ 正解
Amazon EventBridgeのスケジュールルールで毎朝8:00 AMにLambdaを実行し、ListObjectsV2で期待ファイルの存在を確認できます。ファイル未着を検知してSNS通知できるため最適です。
CAWS CloudTrailのS3データイベントを有効化し、CloudWatchメトリクスフィルターを作成してPutObject APIコールが期限までに発生しなかった場合にSNS通知をトリガーする
CloudTrailとCloudWatchメトリクスフィルターは「イベント未発生」というゼロカウント状態の直接検知機能がなく、実装が複雑になります。ファイル未着検知には不向きです。
DAWS Configカスタムルールを作成してS3オブジェクトの作成イベントを評価し、期待されるオブジェクトが期限までに存在しない場合にアラートを送信する
AWS Configはインフラリソースの設定変更追跡サービスで、特定ファイルの存在有無を時刻ベースで監視・通知する設計ではありません。このユースケースには不適切です。
解説
ファイルが「存在しない」ことを検知するには、プッシュ型(ファイル到着時にイベントを発火)ではなく、ポーリング型のアプローチが必要です。EventBridgeのスケジュールルールで毎朝8:00 AMにLambda関数をトリガーし、Lambda内でS3 ListObjectsV2 APIを使って期待されるプレフィックスのファイルの存在を確認します。ファイルが見つからない場合はSNSトピックを経由してSlack Webhookに通知する構成が最も適切です。サーバーレスで運用負荷が低く、スケジュールの変更も容易です。
選択肢AのS3バケット通知はファイルが到着したときのみ発火します。ファイルが到着しない場合には通知が送られないため、ファイル未着の検知には対応できません。
選択肢CのCloudTrailとCloudWatchメトリクスフィルターは、「イベントが発生しなかった」というゼロカウントの状態を直接検知する標準機能がなく、実装が複雑になります。
選択肢DのAWS Configはインフラリソースの設定変更を追跡するサービスであり、特定ファイルの存在有無を時刻ベースで監視・通知する用途には適していません。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDEAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →