目次

AWSデータ基盤選定マトリクス

周辺資料: 学習インデックス · AWSサービス一覧(2026) · Kinesisストリーム処理 · S3データレイク設計


データ基盤サービスを要件ベースで選定するための決定表。


1. データアーキテクチャの全体像

[データソース]
  業務DB / SaaS / IoT / ログ / API
       │
       ├─── リアルタイム ──────────────────────────────────┐
       │    Kinesis Data Streams / MSK (Kafka)            │
       │         │                                        │
       │    Flink (KDA) / Lambda                          │
       │         │                                        │
       │    OpenSearch / Timestream / DynamoDB ←──────────┘
       │    (リアルタイム可視化・アラート)
       │
       └─── バッチ ───────────────────────────────────────┐
            DMS / Snow Family / S3 Transfer               │
                 │                                        │
            S3 Raw Zone (Parquet/ORC/Iceberg)             │
                 │                                        │
            Glue ETL / EMR Spark                          │
                 │                                        │
            S3 Processed Zone ──────────────────────────  │
                 │                                        │
            ┌───┴────────────────────┐                   │
            Athena (アドホック)      Redshift (DWH)       │
            QuickSight (可視化)      SageMaker (ML)       │
            └───────────────────────────────────────────-─┘

[ガバナンス層]
  Lake Formation(アクセス制御・カタログ)
  Glue Data Catalog(メタデータ)
  DataZone(データメッシュ)
  Macie(PII検出)

2. 取り込み(Ingestion)選定

バッチ取り込み

データソース 推奨サービス 特記事項
RDS / Oracle / SQL Server → S3 AWS DMS(CDC対応) 継続的なCDCにも使用可
オンプレ大量データ(PB級) AWS Snowball / Snowmobile 物理転送
S3 → S3 / 外部HTTP S3 Transfer Acceleration 大陸間転送高速化
SaaS(Salesforce / SAP) AppFlow ノーコード連携
SFTP / FTP ファイル受信 Transfer Family S3 に自動着地

リアルタイム取り込み

要件 推奨 代替
AWSネイティブ、シンプル Kinesis Data Streams
Kafka 互換 / 既存 Kafka 移行 MSK (Managed Kafka) Kinesis
S3/Redshift/OpenSearch への直接配信 Kinesis Data Firehose
IoT デバイス → クラウド IoT Core + Kinesis IoT Core + Firehose

Kinesis vs MSK 詳細比較

比較軸 Kinesis Data Streams MSK
管理コスト 低(フルマネージド) 中(ブローカー管理あり)
Kafka 互換 なし あり
スケール単位 シャード(1シャード = 1MB/s in) ブローカー追加
保持期間 最大365日 設定次第(無制限可)
コンシューマー KCL / Lambda / Flink Consumer Group
コスト(中規模) 低〜中 中〜高

3. 変換・処理(Transform)選定

バッチ ETL

要件 推奨 理由
ノーコード/ローコード ETL Glue Studio ビジュアルETL、Python/Scala生成
Spark カスタム処理 Glue ETL / EMR on EC2 Glue: サーバーレス、EMR: カスタム性高
大規模 Spark(コスト最適化) EMR on EC2 (Spot混在) Spot で最大90%コスト削減
Spark on Kubernetes EMR on EKS 既存EKSクラスターに統合
SQL 変換(DWH内) Redshift Stored Procedure / dbt Redshift で完結

ストリーム処理

要件 推奨
リアルタイム集計・ウィンドウ処理 Managed Service for Apache Flink(KDA)
軽量フィルタリング・ルーティング Kinesis Data Firehose(Lambda変換)
シンプルなトリガー処理 Lambda(Kinesis/MSK トリガー)
複雑なイベントパターンマッチング Flink CEP

Glue vs EMR の使い分け

Glue を選ぶ場合:
  - サーバーレスで運用したい(クラスター管理不要)
  - Glue Data Catalog との連携を重視する
  - ジョブ実行頻度が低い(コールドスタート許容)
  - Python / Scala でシンプルな ETL

EMR を選ぶ場合:
  - 大量データを継続処理(長時間クラスター)
  - Spark のカスタムライブラリが必要
  - Presto / Hive / HBase / Flink を使いたい
  - コスト最適化が最優先(Spot活用)

4. ストレージ選定

データレイク・DWH

比較軸 S3 + Athena Redshift Redshift Spectrum
用途 アドホック分析 定型・高速クエリ S3データをRedshiftから直接クエリ
スケール EB級 EB級(Managed Storage) S3依存
同時クエリ 制限あり 高同時実行 中程度
管理コスト 中(Redshift管理必要)
コスト スキャン課金(安) クラスター固定費 Redshift + S3スキャン

オープンテーブルフォーマット

フォーマット 特徴 AWSでの活用
Apache Iceberg ACID、スキーマ進化、タイムトラベル S3 + Glue / Athena / Spark
Apache Hudi CDC最適化、Upsert 高速 EMR + S3
Delta Lake Databricks出身、ACID EMR + S3(OSS版)

推奨: Iceberg(2024〜2025年時点でAWSネイティブサポートが最も充実)

S3 ストレージクラス最適化

データ特性 推奨ストレージクラス コスト目安
頻繁アクセス(ホットデータ) S3 Standard $0.023/GB/月
不定期アクセス S3 Intelligent-Tiering $0.023→自動最適化
月1回未満アクセス S3 Standard-IA $0.0125/GB/月
年1〜2回アクセス S3 Glacier Instant Retrieval $0.004/GB/月
長期保管(数時間復元許容) S3 Glacier Flexible Retrieval $0.0036/GB/月
7年以上の長期アーカイブ S3 Glacier Deep Archive $0.00099/GB/月

5. 分析・クエリ選定

Athena vs Redshift の使い分け

Athena を選ぶ場合:
  - クエリ頻度が低い(アドホック分析)
  - サーバーレスで運用コストを最小化したい
  - スキャン量が少ないParquet/ORC形式で保管している
  - 既存の S3 Data Lake をすぐにクエリしたい

Redshift を選ぶ場合:
  - 定型レポートを毎日大量に実行する
  - BI ツールから高同時実行アクセスがある
  - 複雑な結合・集計を高速に実行したい
  - Redshift ML(SageMaker統合)を使いたい

Athena コスト最適化

パーティションプルーニング: WHERE year='2024' AND month='01'
  → スキャンデータ量を削減(コスト ∝ スキャン量)

Parquet/ORC 形式:
  → CSV比で5〜10倍のスキャン削減(列指向圧縮)

Athena Federated Query:
  → RDS/DynamoDB/Redshift をまたいだ統合クエリ
  → ETLなしでリアルタイム結合可能

Workgroup + 利用制限:
  → クエリあたりスキャン量上限を設定(コスト暴走防止)

6. ガバナンス・セキュリティ選定

Lake Formation vs 従来のS3 + IAM

比較軸 S3 + IAM のみ Lake Formation
アクセス制御の粒度 バケット/プレフィックス単位 テーブル/列/行レベル
設定の複雑さ 低(慣れている) 中(初期設定に工数)
データカタログ連携 Glue Data Catalog を別途管理 統合管理
細粒度アクセス 不可 可(LF-Tags、列マスク)
推奨ケース 小規模・シンプル エンタープライズ・規制対応

DataZone(データメッシュ)

DataZone が有効な場合:
  - 複数チーム/ドメインが独立してデータを管理・公開したい
  - データプロデューサーとコンシューマーを分離したい
  - データポータル(検索・申請・承認)が必要
  - Redshift / Athena / SageMaker をまたいだデータアクセス統制

7. 可視化選定

要件 推奨 備考
AWSネイティブ BI QuickSight SPICE(インメモリ)で高速
時系列 / インフラ監視 Managed Grafana Prometheus/CloudWatch連携
OpenSearch ダッシュボード OpenSearch Dashboards(Kibana互換) ログ分析・セキュリティ監視
既存 Tableau/Power BI Redshift / Athena JDBC/ODBC 外部BI接続

8. アーキテクチャパターン早見表

パターン A: シンプル Data Lake(小〜中規模)

  • データソース → S3 (Raw) → Glue ETL → S3 (Parquet) → Athena → QuickSight
  • Glue Data Catalog(メタデータ)

向いている規模: TB〜数十TB / 分析クエリ中心 / チーム小規模

パターン B: DWH 中心(BI 高同時実行)

  • データソース → S3 (Staging) → Glue/DMS → Redshift (DWH)
  • → QuickSight / BI Tool
  • → Redshift ML (SageMaker)

向いている規模: 数十TB〜PB / 定型レポート多数 / 高同時実行

パターン C: リアルタイム + バッチ (Lambda Architecture)

[リアルタイム層]
  IoT/App → Kinesis Streams → Flink → OpenSearch/DynamoDB

[バッチ層]
  S3 (Raw) → EMR Spark → S3 (Processed/Iceberg) → Athena/Redshift

[サービング層]
  Athena / Redshift → QuickSight
  OpenSearch → Dashboards

向いている規模: PB級 / リアルタイム + 深い分析の両立

パターン D: データメッシュ(大規模組織)

[ドメイン A]                [ドメイン B]
  S3 + Redshift               S3 + Athena
       │                           │
       └────── DataZone ───────────┘
                    (データカタログ・アクセス制御)
                    │
              分析チーム / ML チーム

9. コスト観点の比較

サービス 主なコストドライバー コスト削減策
S3 ストレージ量 + リクエスト数 Intelligent-Tiering / ライフサイクルポリシー
Glue ETL DPU時間 ジョブのDPU数最適化 / Auto Scaling有効化
Athena スキャンデータ量($5/TB) Parquet化 + パーティション設計
Redshift クラスターサイズ × 時間 RA3 + 自動一時停止 / Serverless
EMR EC2費用 Spot Instance 混在(最大90%削減)
Kinesis Streams シャード時間 + PUT数 オンデマンドモード活用
MSK ブローカーインスタンス × 時間 Provisioned → Serverless 切替検討

10. 選定チェックリスト

□ データ量と増加率を見積もった(TB/月)
□ アクセスパターン(読み取り頻度・クエリ複雑度)を定義した
□ リアルタイム性の要件を確認した(秒 / 分 / 時間 / 日次)
□ 複数チームのデータアクセス制御要件を確認した
□ コンプライアンス要件(PII / GDPR / 業界規制)を確認した
□ 既存技術スタック(Kafka / Spark / dbt等)の継続利用要否を確認した
□ 初年度コストとスケール後コストの両方を見積もった
□ データ品質チェックの実装方針を決めた(Glue DQ / カスタム検査)
□ スキーマ進化・後方互換性の方針を決めた
□ Lake Formation による列/行レベルアクセス制御が必要か判断した