SAA データレイク設計の頻出パターン|貯める・取り込む・カタログ・クエリ・統制を要件で即断する

AWS SAA-C03 で問われるデータレイク設計は「S3 に貯めれば完成」ではない。ストレージ(S3 ゾーン設計)・取り込み(Firehose/DataSync/Glue)・カタログ(Glue Data Catalog)・クエリ(Athena/Redshift Spectrum)・統制(Lake Formation)の5層を、要件文のキーワードから1つずつ埋める設計問題だ。本記事は無数に見えるデータレイク構成をこの5評価軸に畳み、頻出パターンを分解する。最頻出の罠——データレイク=S3 だけと思い込む・パーティションと列指向を忘れて Athena のスキャン料金が爆発する・Lake Formation と IAM/バケットポリシーの役割を取り違える・Redshift 未導入なのに Spectrum を選ぶ——を反射で回避できる型に落とし込む。結論は「まず S3 のゾーンと形式で土台を決め、取り込み・カタログ・クエリ・統制を用途で足す」こと。読み終えれば、分析ワークロードの設問で選択肢を迷わず絞れるようになる。

「多様なデータを S3 に集めて、SQL で分析できるようにしたい」——SAA-C03 でこの手の設問を読んだとき、S3・Glue・Athena・Lake Formation・Redshift Spectrum・Kinesis が選択肢に散らばって手が止まるなら、それはデータレイクを「S3 にファイルを置くこと」だと捉えているサインだ。 データレイクはコスト最適化(ドメイン4)高パフォーマンス(ドメイン3)セキュア設計(ドメイン1)を横断する頻出テーマで、単体サービスより「組み合わせ」で問われる。攻略の鍵はシンプルで、構成を「①貯める(S3 ゾーン設計)②取り込む(ingestion)③カタログ化(Glue)④クエリ(Athena / Redshift Spectrum)⑤統制(Lake Formation)」の5層に分けて読むことだ。とくにストレージ層は、データ形式・パーティション・ゾーンという3要素がコストとパフォーマンスの選択肢を一意に決める。本記事では、この5評価軸で頻出パターンを分解し、要件文のキーワードから正解を反射で引ける型に落とし込む。読み終えれば、分析ワークロードが絡むどの設問でも選択肢を迷わず絞れるようになる。

※ 本記事はアフィリエイト広告(Amazon アソシエイト等)を含みます


📑 目次

  1. 結論:データレイクは「貯める → 取り込む・カタログ・クエリ・統制」を足す
  2. 評価軸1:貯める(S3 ゾーン設計と列指向・パーティション)
  3. 評価軸2:取り込む(Firehose・DataSync・Glue の切り分け)
  4. 評価軸3:カタログ化(Glue Data Catalog と Crawler)
  5. 評価軸4:クエリ(Athena と Redshift Spectrum の使い分け)
  6. 評価軸5:統制(Lake Formation と IAM の役割分担)
  7. 要件キーワード → 正解サービス 早見表
  8. 次のアクション チェックリスト
  9. 関連記事
  10. 関連サイト

1. 結論:データレイクは「貯める → 取り込む・カタログ・クエリ・統制」を足す

データレイク設計の設問は、1つの正解サービスを選ぶのではなく、5層それぞれに正解を1つずつ割り当てる構造で解く。土台は必ず S3 で、その上に取り込み・カタログ・クエリ・統制を要件で積み上げる。

最大の誤解は「データレイク= S3 バケットを作ること」だ。S3 は貯める土台にすぎず、カタログ(何がどこにあるか)と統制(誰が何を見られるか)がなければ「使えるデータレイク」にはならない。SAA はこの「S3 だけでは足りない」を突く設問を好む。


2. 評価軸1:貯める(S3 ゾーン設計と列指向・パーティション)

データレイクのストレージは、単一バケットにファイルを放り込むのではなく、データの成熟度で「ゾーン」に分けるのが定石だ。典型は3層。

  • Raw(生データ)ゾーン:アプリ・ログ・CDC・パートナー連携から届いた無加工データ。原本として保持する。
  • Cleansed(整形)ゾーン:重複除去・型変換・欠損処理を施した中間データ。
  • Curated(分析用)ゾーン:分析・BI が直接読む、Parquet などの列指向にした最終データ。

このゾーン設計の上で、SAA が繰り返し問う2つのコスト・パフォーマンス最適化がある。

データレイクのファイル形式:コストとパフォーマンスの違い
評価項目
CSV / JSON
Parquet / ORC(列指向) 推奨
クエリ時のスキャン量 全カラム読む(多い) 必要カラムだけ(少ない)
圧縮効率 低い 高い
Athena のコスト 高い 低い
取り込み直後の可読性 ◎ そのまま読める △ 変換が必要
分析用途(推奨) ×
Raw ゾーンは元形式のまま、Curated ゾーンは Parquet/ORC + パーティションが定石。

ストレージクラスの最適化も頻出だ。Raw ゾーンの原本はアクセス頻度が下がるため、S3 のライフサイクルポリシーで Glacier 系へ自動移行するとコストが下がる。S3 設計問題の頻出パターンと合わせて押さえておきたい。


3. 評価軸2:取り込む(Firehose・DataSync・Glue の切り分け)

データを S3 に「どう入れるか」は、**データの性質(ストリームか、バッチか、移行か)**で一意に決まる。

  • リアルタイムのストリーミングAmazon Kinesis Data Firehose。バッファリングして S3 へ自動配信し、途中で Parquet へ変換もできる。「ニアリアルタイムで S3 に配信」「フルマネージドで運用不要」なら Firehose。細かい制御やコンシューマー分岐が要れば Kinesis Data Streams
  • オンプレミスからの大量バッチ・継続同期 → AWS DataSync(ファイル/オブジェクトの転送)。DB そのものの移行は DMS。詳細は オンプレ → AWS 移行のサービス選定
  • 取り込みと同時に整形・変換したいAWS Glue の ETL ジョブ。サーバーレスで Raw → Cleansed → Curated の変換パイプラインを組める。大規模な Spark 処理が要れば Amazon EMR

4. 評価軸3:カタログ化(Glue Data Catalog と Crawler)

S3 に貯めただけのデータは「どんなテーブルで、どんなスキーマか」を機械が知らない。これを解決するのが AWS Glue Data Catalog で、データレイクの中央メタストア(テーブル定義・スキーマ・パーティション情報の一元管理)として機能する。

  • Glue Crawler が S3 を走査してスキーマとパーティションを自動検出し、Data Catalog にテーブルを登録する。
  • Athena・Redshift Spectrum・EMR は、この Data Catalog を「唯一の真実の源(source of truth)」として参照する。つまり カタログを1つ作れば、複数のクエリエンジンが同じスキーマを共有できる

5. 評価軸4:クエリ(Athena と Redshift Spectrum の使い分け)

S3 のデータに SQL を投げる方法は主に2つ。既存の Redshift があるか、ワークロードがアドホックかで切り分ける。

Athena vs Redshift Spectrum:どちらで S3 をクエリするか
評価項目
Amazon Athena 推奨
Redshift Spectrum
サービス形態 独立したサーバーレス Redshift の拡張機能
クラスター管理 不要(完全サーバーレス) Redshift クラスターが必要
得意なワークロード アドホック・探索的な軽いクエリ ウェアハウスと S3 の結合・重い分析
前提 なし(すぐ使える) 既存 Redshift 利用者
課金 スキャン量 約$5/TB スキャン量 約$5/TB+Redshift 費用
Redshift を使っていない/アドホックなら Athena、既存ウェアハウスと結合するなら Spectrum。

判断は要件文のキーワードで速い。「サーバーレスで、インフラ管理なしに S3 を SQL 分析」なら Athena。「既存の Redshift データウェアハウスと S3 のデータを JOIN したい」「すでに Redshift を運用している」なら Redshift SpectrumRedshift を導入していないのに Spectrum を選ぶのは典型的な誤答で、クラスター費用が無駄に乗る。BI 可視化まで問われれば Amazon QuickSight が続く。


6. 評価軸5:統制(Lake Formation と IAM の役割分担)

データレイクのアクセス制御で SAA が最も突くのが、Lake Formation と IAM/バケットポリシーの役割の違いだ。

  • IAM / S3 バケットポリシー:バケットやプレフィックス単位の「粗い」アクセス制御。「このバケットを読めるか」までしか表現できない。
  • AWS Lake Formation:Glue Data Catalog を通じて、データベース・テーブル・列・行・セル単位のきめ細かなアクセス制御を提供する。IAM の権限モデルを補強する、データレイク専用の許可プレーンだ。

セキュリティは多層防御(defence in depth)が基本で、IAM・Lake Formation のきめ細かな制御・S3 バケットポリシーの最終防壁・保存/転送時の暗号化を重ねる。監査は Lake Formation の CloudTrail ログで担保する。セキュア設計ドメインの考え方がそのまま効く領域だ。


7. 要件キーワード → 正解サービス 早見表

要件文のキーワードから引くデータレイク早見表
評価項目
要件キーワード
正解サービス / 判断
ストリーミングをニアリアルタイムで S3 へ Kinesis Data Firehose
取り込み時に整形・変換したい AWS Glue ETL
スキーマを自動検出しカタログ化 Glue Crawler + Data Catalog
サーバーレスで S3 を SQL 分析 Amazon Athena
既存 Redshift と S3 を結合 Redshift Spectrum
クエリコスト/スキャン量を下げたい Parquet 化+パーティション
列・行・タグ単位のアクセス制御 AWS Lake Formation(LF-Tags)
オンプレの大量データを移行 AWS DataSync / DMS
左のキーワードを要件文から拾い、右を反射で引けるようにするのがゴール。

8. 次のアクション チェックリスト

  • データレイク設問を「貯める・取り込む・カタログ・クエリ・統制」の5層に分解して読む癖をつける
  • 「クエリコスト低減= Parquet/ORC 化+パーティション」を反射で出せるようにする
  • 「ストリーミング= Firehose」「変換= Glue」「移行= DataSync/DMS」を取り込み層で区別する
  • Athena(アドホック・サーバーレス)と Redshift Spectrum(既存 Redshift 結合)を前提条件で切り分ける
  • 「列・行・タグ単位の制御= Lake Formation」、IAM/バケットポリシーは粗い制御、と役割を固定する
  • コスト最適化高パフォーマンスドメインと横断で復習する

9. 関連記事


10. 関連サイト

AWS 公式

参考(設計・比較の解説)