あるデータエンジニアリングチームは、Amazon Athenaを使って複数の分析チームがAmazon S3データレイクに対してアドホッククエリを実行できる環境を提供しています。以下の課題が発生しています。 ・特定チームが数テラバイトをスキャンするクエリを頻繁に実行し、全体のコストが増大している ・チームごとに1クエリあたりのスキャン量に上限を設けて上限超過時は自動キャンセルしたい ・チームごとのスキャン量をAWSコンソール上で継続的に可視化したい これらの要件を満たす最も適切なアプローチはどれですか?
Amazon Athenaのワークグループ機能を使うと、チームごとに独立したクエリ実行環境を作成できます。各ワークグループには「クエリごとのスキャンデータ量上限(per-query data usage control)」を設定でき、上限を超えたクエリは自動的にキャンセルされます。またワークグループ単位でCloudWatchメトリクスが発行されるため、スキャン量の継続的な可視化も実現できます。3つの要件をAthenaのネイティブ機能のみで満たせる点が最適です。 選択肢BのS3バケットポリシーによるプレフィックス制限はアクセス制御であり、スキャン量の上限設定やクエリの自動キャンセルには対応していません。 選択肢CのAWS Budgetsは月次・日次コストの集計ベースのアラームであり、1クエリあたりのスキャン量をリアルタイムで制限して即時キャンセルする用途には遅延が生じます。 選択肢DのIAMポリシーのタグ条件ではクエリ実行の可否を制御できますが、スキャンデータ量に基づく動的な制限や自動キャンセルには対応していません。