Skip to content

AWS Service Comparison Matrix (Database)

データベースサービスの選定判断材料。RDS、DynamoDB、ElastiCache、DWH/分析基盤等を比較する。

History

日付 内容
2026-05-28 初版作成
2026-10-10 初版から更新なし。AWS公式ドキュメント・サービス仕様との整合を再確認する必要あり(要レビュー、#911)

RDB: RDS vs Aurora vs Aurora Serverless v2

比較項目 RDS Aurora Aurora Serverless v2
ドキュメント RDS Aurora Aurora Serverless v2
課金モデル インスタンス時間 + ストレージ (料金) インスタンス時間 + I/O + ストレージ (料金) ACU 秒 + I/O + ストレージ (料金)
主用途 標準的な RDB ワークロード 高性能・高可用性が必要な RDB 可変負荷の RDB ワークロード
SLA 99.95% (Multi-AZ) 99.99% 99.99%
学習コスト 低い 低い (RDS 互換) 低い (Aurora 互換)
スケーリング 手動インスタンス変更 リードレプリカ Auto Scaling ACU 自動スケール (0.5〜128)
主要サービス制限 ストレージ 64TB、インスタンス 40/リージョン (Quotas) ストレージ 128TB、レプリカ 15、接続数はインスタンスクラス依存 (Quotas) ストレージ 128TB、ACU 0.5-128、接続数は ACU 依存 (Quotas)
コスト (常時高負荷) 安い (RI 適用) 中程度 (RI 適用) 高い
コスト (バースト) 高い (ピークに合わせたサイジング) 高い 安い (使った分だけ)
対応エンジン MySQL, PostgreSQL, MariaDB, Oracle, SQL Server MySQL 互換, PostgreSQL 互換 MySQL 互換, PostgreSQL 互換
ストレージ上限 64 TB (gp3) 128 TB (自動拡張) 128 TB (自動拡張)
レプリカ 最大 15 (リードレプリカ) 最大 15 (同一ストレージ共有) 最大 15 (同一ストレージ共有)
フェイルオーバー時間 60-120 秒 30 秒以下 30 秒以下
マルチ AZ ✅ (スタンバイレプリカ) ✅ (3 AZ に 6 コピー自動) ✅ (3 AZ に 6 コピー自動)
ゼロスケール ❌ ❌ ✅ (最小 0.5 ACU)
Global Database ❌ ✅ ✅
Terraform 対応 ✅ ✅ ✅

Guidelines

→ Aurora を標準採用する。 ストレージの自動拡張、高速フェイルオーバー、リードレプリカの容易な追加で運用負荷が低い。

  • 開発環境や負荷が不定期なワークロードは Aurora Serverless v2 を検討 (コスト最適化)
  • Oracle / SQL Server が必須の場合は RDS を採用
  • 小規模で Aurora のコストが過剰な場合は RDS (db.t4g クラス) を検討
  • I/O 課金が高額になるワークロード (大量書き込み) は Aurora I/O-Optimized を検討

NoSQL: DynamoDB vs DocumentDB vs ElastiCache

比較項目 DynamoDB DocumentDB ElastiCache (Redis)
ドキュメント DynamoDB DocumentDB ElastiCache
課金モデル RCU/WCU or リクエスト従量 (料金) インスタンス時間 + I/O (料金) ノード時間 (料金)
主用途 高スループット KV アクセス、シンプルなクエリ MongoDB 互換が必要なドキュメント DB キャッシュ、セッション、リアルタイム処理
SLA 99.999% (Global Tables) / 99.99% (Standard) 99.99% 99.99%
学習コスト 中程度 (データモデリング独特) 低い (MongoDB 経験者) 低い (Redis 経験者)
スケーリング 自動 (オンデマンド) / 手動 (プロビジョン) インスタンス追加 ノード追加 / シャーディング
主要サービス制限 アイテム 400KB、トランザクション 25 アイテム/100 アイテム、パーティション 3000 RCU/1000 WCU (Quotas) ドキュメント 16MB、インスタンス数 16/クラスター (Quotas) ノードメモリ依存、シャード数 500 (Quotas)
コスト (常時高負荷) 中程度 (プロビジョンモード) 中程度 中程度
コスト (バースト) 安い (オンデマンドモード) 高い (インスタンス常時課金) 高い (ノード常時課金)
データモデル Key-Value + ドキュメント JSON ドキュメント Key-Value + データ構造
クエリ柔軟性 低い (PK/SK + GSI/LSI) 高い (MongoDB クエリ構文) 低い (キーベース)
レイテンシ 1 桁 ms 1 桁 ms サブ ms
ストレージ上限 実質無制限 128 TB ノードメモリ依存
トランザクション ✅ (25 アイテムまで) ✅ ✅ (Redis 7.0+)
TTL ✅ ✅ ✅
Global 展開 ✅ Global Tables ✅ Global Clusters ✅ Global Datastore
VPC 内配置 ⚠️ (VPC Endpoint 経由) ✅ (VPC 内のみ) ✅ (VPC 内のみ)
Terraform 対応 ✅ ✅ ✅

Guidelines

→ DynamoDB をデフォルト NoSQL として採用する。 サーバーレス運用でスケーリング管理が不要、オンデマンドモードで小規模から大規模まで対応できる。

  • MongoDB 互換 API が必須 (既存アプリ移行) の場合は DocumentDB を検討
  • サブ ms レイテンシが必要なキャッシュ・セッション管理は ElastiCache を採用
  • DynamoDB のクエリ制約 (複雑な検索、集計) が問題になる場合は Aurora を検討
  • DynamoDB + ElastiCache の併用パターン: 読み取り頻度が極めて高いホットキーがある場合

Cache: ElastiCache Redis vs ElastiCache Memcached vs DAX

比較項目 ElastiCache Redis ElastiCache Memcached DAX
ドキュメント Redis Memcached DAX
課金モデル ノード時間 (料金) ノード時間 (料金) ノード時間 (料金)
主用途 汎用キャッシュ、セッション、Pub/Sub、ランキング シンプルなキャッシュ DynamoDB 読み取りキャッシュ
SLA 99.99% 99.99% 99.99%
学習コスト 低い (Redis 経験者) 非常に低い 非常に低い (SDK 差し替えのみ)
スケーリング シャーディング + レプリカ追加 ノード追加 ノード追加 (最大 10)
主要サービス制限 シャード 500、レプリカ 5/シャード、接続数ノードタイプ依存 (Quotas) ノード 300/クラスター (Quotas) ノード 10、アイテムキャッシュ 10 分 TTL (Quotas)
コスト (常時高負荷) 中程度 安い 中程度
コスト (バースト) 高い (ノード常時課金) 高い (ノード常時課金) 高い (ノード常時課金)
データ構造 String, Hash, List, Set, Sorted Set, Stream String のみ DynamoDB 互換
永続化 ✅ (RDB/AOF) ❌ ❌ (キャッシュのみ)
レプリケーション ✅ (最大 5 レプリカ/シャード) ❌ ✅ (最大 10 レプリカ)
フェイルオーバー ✅ 自動 ❌ (クライアント側で対応) ✅ 自動
マルチ AZ ✅ ⚠️ (AZ 分散配置のみ) ✅
Pub/Sub ✅ ❌ ❌
Lua スクリプト ✅ ❌ ❌
API 互換性 Redis API Memcached API DynamoDB API (透過的)

Guidelines

→ ElastiCache Redis を汎用キャッシュとして採用する。 データ構造の豊富さ、永続化、レプリケーション、Pub/Sub を備え、キャッシュ以外の用途にも対応できる。

  • DynamoDB の読み取りレイテンシ改善が目的で、アプリケーション変更を最小化したい場合は DAX を検討
  • 単純な KV キャッシュのみで永続化・レプリケーション不要な場合は Memcached を検討 (コスト面で有利な場合がある)
  • Redis のメモリコストが問題になる場合は ElastiCache Serverless (Redis) を検討

DWH / Analytics: Redshift vs Athena vs S3 + Glue

比較項目 Redshift Athena S3 + Glue (データレイク)
ドキュメント Redshift Athena Glue
課金モデル ノード時間 or RPU 秒 (Serverless) (料金) スキャンデータ量 \$5/TB (料金) Glue ETL: DPU 時間 + S3 ストレージ (料金)
主用途 大規模 DWH、複雑な分析クエリ、BI 連携 アドホッククエリ、ログ分析、S3 データ探索 ETL パイプライン、データカタログ、データレイク構築
SLA 99.99% 99.99% 99.99% (S3) / 99.9% (Glue)
学習コスト 中程度 (PostgreSQL 互換 SQL) 低い (標準 SQL / Presto) 高い (Spark/Python + カタログ設計)
スケーリング ノード追加 or Serverless 自動スケール 自動 (クエリ単位) DPU 自動スケール (Glue 4.0+)
主要サービス制限 ノード 128/クラスター、同時クエリ 50 (WLM 依存) (Quotas) クエリ結果 2GB、同時クエリ 25-150 (DML)、スキャンデータ無制限 (Quotas) DPU 最大 100 (デフォルト)、ジョブ同時実行数制限あり (Quotas)
コスト (常時高負荷) 安い (RI 適用、大量データ常時クエリ) 高い (スキャン量課金) 中程度 (DPU 時間)
コスト (バースト) 高い (クラスター常時課金) ※Serverless なら中程度 安い (使った分だけ) 安い (ジョブ実行時のみ)
クエリエンジン 独自 (PostgreSQL 互換、列指向) Trino (Presto 後継) Apache Spark
データ格納先 独自マネージドストレージ + S3 (Spectrum) S3 (直接クエリ) S3
データ形式 独自形式 (COPY でロード) Parquet, ORC, CSV, JSON, Avro 等 任意 (ETL で変換)
同時実行性 高い (WLM / Concurrency Scaling) 中程度 (アカウント上限あり) ジョブ単位 (並列実行可)
レイテンシ 秒〜分 (事前ロード済みデータ) 秒〜分 (スキャン量依存) 分〜時間 (バッチ ETL)
リアルタイム取り込み ✅ (Streaming Ingestion from Kinesis/MSK) ❌ (S3 に書き込み後クエリ) ⚠️ (Glue Streaming ETL)
BI ツール連携 ✅ (QuickSight, Tableau, JDBC/ODBC) ✅ (QuickSight, JDBC/ODBC) ❌ (ETL 専用、クエリは Athena/Redshift 経由)
データカタログ ⚠️ (Glue Data Catalog 連携) ✅ (Glue Data Catalog 必須) ✅ (Glue Data Catalog 中心)
ML 統合 ✅ (Redshift ML → SageMaker) ⚠️ (結果を S3 経由で SageMaker へ) ✅ (Glue + SageMaker パイプライン)
Terraform 対応 ✅ ✅ ✅

Guidelines

→ データ量・クエリ頻度・レイテンシ要件に応じて使い分ける。

  • アドホッククエリ、ログ分析、低頻度の S3 データ探索 → Athena (初期コストゼロ、スキャン従量)
  • 大量データの定常的な分析、BI ダッシュボード、複雑な JOIN → Redshift (Provisioned or Serverless)
  • ETL パイプライン構築、データカタログ管理、データレイク基盤 → S3 + Glue
  • Redshift Serverless は小〜中規模で RI コミットなしに始められるため、Provisioned の前に検討する
  • Athena + Parquet (列指向) + パーティション設計でスキャン量を削減すれば、月数百 TB 規模でもコスト効率が高い
  • 典型的な構成: S3 (データレイク) + Glue (ETL/カタログ) + Athena (アドホック) + Redshift (定常 BI) の併用