SJ blog
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 MySQLRDS 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
グローバルな低レプリカラグDRAurora Global Database
可変トラフィックでコスト最適化Aurora Serverless v2
RDSとAuroraのストレージの違いRDSは独自、Auroraは共有クラスターボリューム

まとめ

Auroraは共有ストレージアーキテクチャによりRDSより高速なフェイルオーバーと低レプリカラグを実現する。高可用性・高パフォーマンスが必要な本番環境ではAuroraが第一選択肢だ。コストはRDSより高いが、性能と機能の差で多くの場合に見合う。