ある企業が AWS 上でデータレイクを構築しています。様々なソース(オンプレミス DB、SaaS アプリ、IoT センサー、ストリームデータ)から毎日テラバイト規模のデータを取り込み、データサイエンティストと SQL アナリストが独立してアクセスできる環境を提供する必要があります。データカタログ管理と列レベルのアクセス制御が必要で、コストを最小化したいと考えています。最も適切なアーキテクチャはどれですか?
- A. Amazon Redshift クラスターをデータウェアハウスとして構築し、すべてのソースデータを Redshift に ETL で取り込む。Redshift の列レベルセキュリティでアクセス制御を行う
- B. Oracle データベースをオンプレミスに維持し、S3 に Parquet 形式でエクスポートしたデータを Athena でクエリする。アクセス制御は S3 バケットポリシーで管理する
- C. Amazon S3 をデータレイクのストレージとして使用し、AWS Glue でデータカタログを管理する。Lake Formation で列レベルのきめ細かいアクセス制御を設定し、データサイエンティストは SageMaker Studio から、SQL アナリストは Amazon Athena からアクセスする。データ取り込みは Glue ETL ジョブ、Kinesis Data Firehose(ストリーム)、AWS DMS(DB)で自動化する
- D. Amazon EMR クラスターに Hive メタストアを構築し、HDFS にデータを保存する。Hive と Spark で分析を行い、列レベルのアクセス制御は Apache Ranger で実装する
解答と解説を見る
正解: C
S3 + Glue Data Catalog + Lake Formation は AWS が推奨するサーバーレスデータレイクの標準パターンです。Lake Formation の列レベル・行レベルのきめ細かいアクセス制御(Cell-level security)により要件を満たし、SageMaker Studio と Athena からのアクセスも一元管理できます。Glue ETL、Kinesis Firehose、DMS を組み合わせることで多様なソースからの取り込みを自動化できます。S3 のストレージコストは Redshift より大幅に安く、クエリ従量課金の Athena は使わない時間のコストが発生しません。 A: Redshift への全データ取り込みは柔軟性が低く、テラバイル規模のデータのストレージコストと ETL 処理コストが高くなります。また Redshift はデータウェアハウスで構造化データ向けであり、IoT センサーや非構造化データには不向きです。 D: EMR + Hive + Apache Ranger は機能的ですが、クラスターの管理運用負荷が高く、24/7 稼働させるとコストが増加します。サーバーレスの S3 + Athena より運用コストが高くなります。 B: Oracle をオンプレミスで維持することはクラウド移行の恩恵を得られず、列レベルアクセス制御も S3 バケットポリシーでは実現できません。