database
A
信頼度ランク
| S | 公式ソース確認済み |
| A | 成功実績多数・失敗例少数 |
| B | 賛否両論 |
| C | 動作未確認・セキュリティリスク高 |
| Z | 個人所感 |
Aurora vs RDS — アーキテクチャの根本的な違いとパフォーマンス特性
Amazon AuroraとRDSの共有ストレージアーキテクチャの違い、フェイルオーバー速度、リードレプリカの仕組み、Aurora Multi-Master、Aurora Global Database、コスト比較を解説。
一言結論
Auroraは3AZ×2コピーの共有クラスターボリュームにより通常RDSより高可用性・高スループットを実現するが、コストも高いため高い可用性要件や大量の読み取りがあるワークロードに限定して選択するのが合理的だ。
アーキテクチャの根本的な違い
通常のRDS(MySQLなど)
プライマリ → バイナリログ転送 → リードレプリカ
↓ ↓
独自ストレージ 独自ストレージ(別コピー)
特徴:
- 各インスタンスが独自のストレージを持つ
- リードレプリカへのレプリケーションは非同期(バイナリログ)
- フェイルオーバーは60〜120秒(スタンバイへのDNS切り替え)
Amazon Aurora
プライマリ ─ログのみ転送─ リードレプリカ1
─ログのみ転送─ リードレプリカ2
↕ ↕
=====================
Auroraクラスターボリューム
(3AZ×2コピー = 6コピー)
=====================
特徴:
- ストレージは共有クラスターボリューム(全インスタンスが同じデータを見る)
- ログ転送のみ(大量データの転送なし)→ レプリカラグが最小
- フェイルオーバー: リードレプリカがあれば30秒以内
Auroraのストレージ
Auroraクラスターボリューム:
3つのAZに各2コピー = 6コピーで自動管理
1つのAZが完全障害でもサービス継続可能
データ書き込みは最低4/6コピーへの確認で完了
自動的に容量拡張: 10GB → 128TB(使った分だけ課金)
縮小は自動では行われない(ただし課金は使用量ベース)
パフォーマンス比較
| 項目 | Aurora MySQL | RDS MySQL |
|---|---|---|
| 書き込み性能 | 通常MySQL比最大5倍 | 通常MySQL |
| リードレプリカ最大数 | 15台 | 5台 |
| フェイルオーバー時間 | 30秒以内 | 60〜120秒 |
| ポイントインタイムリカバリ | 5分前 | 5分前 |
| レプリカラグ | 数ミリ秒 | 数秒〜数分 |
Auroraエンドポイント
クラスターエンドポイント(書き込み):
→ 現在のプライマリインスタンスに接続
→ フェイルオーバー時に自動切り替え
リーダーエンドポイント(読み取り):
→ リードレプリカに負荷分散
→ プライマリが唯一の場合はプライマリに接続
インスタンスエンドポイント(個別):
→ 特定インスタンスに直接接続
→ 特定レプリカをDEBUGする等の特殊用途
カスタムエンドポイント:
→ 指定したインスタンスのサブセットに接続
→ 高メモリインスタンスには分析クエリだけ向ける等
Aurora Global Database
プライマリリージョン(東京): 1クラスター(書き込み可)
セカンダリリージョン(バージニア): 最大5クラスター(読み取りのみ)
レプリケーション:
- ストレージレベルの物理レプリケーション
- 通常1秒以内のレプリカラグ
- RPO(目標復旧時点): 1秒
- RTO(目標復旧時間): 1分以内(セカンダリをプライマリに昇格)
# セカンダリリージョンの追加
aws rds add-region-to-global-cluster \
--global-cluster-identifier my-global-cluster \
--region us-east-1 \
--db-cluster-identifier my-secondary-cluster
Aurora Serverless v2
自動スケーリング:
- 0.5 ACU(Aurora Capacity Unit)から最大128 ACUまで
- 数秒でスケールアップ/ダウン
- アイドル時はほぼ0に近いコスト
Serverless v2はv1と異なる:
v1: ゼロスケール可能(完全停止でコスト0)、起動に30〜60秒
v2: 0.5 ACU が最小(完全停止はしない)、スケールが素早い
コスト比較
Aurora vs RDS:
Aurora: RDS比20%高い料金設定
ただし以下の点でコスト相殺:
- ストレージは使った分だけ(RDSはプロビジョニング)
- 少ないレプリカで高可用性(RDSは多数のリードレプリカが必要な場合も)
- パフォーマンスが高いので同等処理に小さいインスタンスを使える
Aurora Serverless v2:
ACU単価 × 使用量(変動)
低トラフィック時は大幅にコスト削減
ピーク時はProvisioned Auroraより高くなることも
試験頻出ポイント
| シナリオ | 回答 |
|---|---|
| フェイルオーバーを30秒以内に | Aurora(リードレプリカあり)orMulti-AZ Cluster |
| 読み取り重視で15台のレプリカ | Aurora |
| グローバルな低レプリカラグDR | Aurora Global Database |
| 可変トラフィックでコスト最適化 | Aurora Serverless v2 |
| RDSとAuroraのストレージの違い | RDSは独自、Auroraは共有クラスターボリューム |
まとめ
Auroraは共有ストレージアーキテクチャによりRDSより高速なフェイルオーバーと低レプリカラグを実現する。高可用性・高パフォーマンスが必要な本番環境ではAuroraが第一選択肢だ。コストはRDSより高いが、性能と機能の差で多くの場合に見合う。