RDS — マネージドリレーショナルDB
Amazon RDS(Relational Database Service) は MySQL・PostgreSQL・MariaDB・Oracle・SQL Server を マネージドで提供するサービスです。 OS のパッチ適用・バックアップ・フェイルオーバーを AWS が自動管理するため、 DBA の運用負担を大幅に削減できます。
Aurora — 高可用・高性能 RDB
Amazon Aurora は MySQL/PostgreSQL 互換の AWS 独自 RDB エンジンです。 ストレージを6つのコピーに分散保存(3 AZ × 2 コピー)することで、 標準 MySQL の最大5倍の書き込みスループットを実現します。
| 機能 | 内容 |
|---|---|
| Aurora Serverless v2 | ACU(Aurora Capacity Unit)でキャパシティを自動スケール。アイドル時のコストを最小化できる |
| Global Database | 複数リージョンにまたがるリードレプリカを作成し、DR構成や地理的分散読み取りを実現 |
| フェイルオーバー | 30秒以内のフェイルオーバー(標準 RDS の数分より高速) |
| リードレプリカ | 最大15台のリードレプリカを同一クラスターに追加可能。同期レプリケーション |
| ストレージ | 10GB から最大128TB まで自動拡張。事前プロビジョニング不要 |
✅ RDS vs Aurora の判断
新規構築で MySQL/PostgreSQL 互換 RDB を選ぶなら Aurora が基本推奨です。Oracle / SQL Server など商用 DB ライセンスが必要な場合のみ RDS を選択します。Aurora Serverless v2 で開発環境のコストも抑えられます。
DynamoDB — サーバーレス NoSQL
Amazon DynamoDB はフルマネージドのサーバーレス NoSQL データベースです。 任意のスケールで1ケタ ms のレイテンシーを保証し、 1日に数十兆件のリクエストを処理する実績があります。
⚠️ DynamoDB の設計上の注意
アクセスパターンを事前に決めてから設計する必要があります。後から複雑なクエリを追加すると、テーブル設計を見直す必要が生じます。JOIN が必要なリレーショナルなデータモデルには向きません。
Redshift — データウェアハウス
Amazon Redshift は列指向の分散処理データウェアハウスです。 ペタバイト規模のデータに対する複雑な分析クエリを高速に実行できます。 S3 上のデータを直接クエリする Redshift Spectrum と組み合わせることで、データレイクとDWHを統合した分析基盤を構築できます。
ElastiCache — インメモリキャッシュ
Amazon ElastiCache は Redis または Memcached をマネージドで提供するインメモリキャッシュサービスです。 DB への繰り返しクエリをキャッシュしてレイテンシーを下げ、バックエンド DB の負荷を軽減します。
| 比較項目 | Redis | Memcached |
|---|---|---|
| データ構造 | String / Hash / List / Set / Sorted Set など豊富 | シンプルな Key-Value のみ |
| 永続化 | あり(RDB / AOF) | なし(メモリのみ) |
| レプリケーション | あり(Primary + Replica) | なし |
| 用途 | セッション管理・ランキング・パブサブ・キューなど多用途 | シンプルなオブジェクトキャッシュ |
比較表
| サービス | 種別 | 代表的な用途 | スケーリング |
|---|---|---|---|
| RDS | マネージドRDB | 既存アプリのDB移行・業務トランザクション | 垂直スケール + リードレプリカ |
| Aurora | 高可用RDB | 高可用・高性能が必要なWebアプリDB | Aurora Serverless v2 で自動スケール |
| DynamoDB | サーバーレスNoSQL | サーバーレスAPI・IoT・ゲームスコア | 自動水平スケール |
| Redshift | データウェアハウス | BI・大規模分析クエリ | クラスターノード追加 |
| ElastiCache | インメモリキャッシュ | セッション・DBキャッシュ・ランキング | クラスターシャーディング |
選択フロー
🔀 Step 1 — 分析用途か?(大規模 SELECT クエリ・BIツール連携)
Yes → Redshift。ペタバイト規模の分析に特化したDWH。No → 次へ。
🔀 Step 2 — リレーショナルデータモデルが必要か?(JOIN・ACID トランザクション)
Yes → Aurora(新規)または RDS(商用DB必要時)。No → 次へ。
🔀 Step 3 — 超高スループット / 低レイテンシー / スキーマ柔軟性が必要か?
Yes → DynamoDB。アクセスパターンが決まっており、水平スケールが必要な場合に最適。
🔀 Step 4 — DB クエリの高速化が目的か?
Yes → ElastiCache(Redis) をキャッシュ層として追加。