ホーム 高可用性・ディザスタリカバリ

マルチAZ・マルチリージョンアーキテクチャ

マルチAZとマルチリージョンの高可用性アーキテクチャ、フェイルオーバー設計、データレプリケーション、コストとのバランスを SAA 基礎から SAP 高度設計まで解説。

最終更新: 2026-07-27 カテゴリ: 高可用性・ディザスタリカバリ

AWS の高可用性設計は マルチAZ → マルチリージョン の段階で強化されます。 可用性要件とコストのトレードオフを見極め、適切なアーキテクチャを選ぶ必要があります。 本記事ではマルチAZ/マルチリージョンアーキテクチャを SAA / SAP 両面から整理します。

SAA レベル:基礎概念

AZ (Availability Zone) とは

AWS リージョンは複数の Availability Zone (AZ) で構成されます。

  • AZ の定義: 独立した電力・冷却・ネットワークを持つデータセンター群
  • AZ 間の分離: 障害が他 AZ に波及しない設計
  • AZ 間の低レイテンシ通信: 同一リージョン内なので高速
  • AZ 数: リージョンごとに 2〜6 个程度

SAA レベル:基礎概念

AZ の核心は 「独立したデータセンター群で、障害が他 AZ に波及しない」 ことです。 同リージョン内の複数 AZ にリソースを分散させるだけで 単一 AZ 障害に耐える構成 になります。 SAA では「マルチAZ = リージョン内の高可用性」が基本原則です。

リージョンとは

  • 地理的独立性: リージョンは完全に独立(データ主権も分離)
  • リージョン間は遠隔: レイテンシが大きい(数十ミリ秒〜)
  • データ主権: 各リージョンのデータは他リージョンに自動複製されない
  • サービス提供状況: リージョンによって利用可能サービスが異なる

マルチAZ vs マルチリージョン

項目マルチAZマルチリージョン
範囲同一リージョン内複数リージョン
対応障害AZ 障害リージョン障害
レイテンシ低(1〜2ms)高(数十ms〜)
コスト比較的低高(データ転送・リソース倍増)
複雑さ

SAA 試験のポイント

「マルチAZ は高可用性、マルチリージョンはディザスタリカバリ (DR)」 が SAA の基本原則です。 マルチAZ は AZ 障害に対する継続性、マルチリージョンは大規模災害に対する復旧力を提供します。 この階層構造を SAA は必ず問います。

マネージドサービスのマルチAZ サポート

主要なマネージドサービスは デフォルトでマルチAZ を提供します。

サービスマルチAZ設計論点
ELB (ALB/NLB)デフォルトでマルチAZクロスゾーン負荷分散
RDS (Multi-AZ)スタンバイインスタンス同期レプリケーション
Aurora自動マルチAZ + リードレプリカクォーラムベースストレージ
ElastiCache (Redis)リードレプリカ + 自動フェイルオーバークラスタモード
DynamoDB自動マルチAZグローバルテーブルでマルチリージョン

SAA 頻出

RDS Multi-AZ は「プライマリ + スタンバイ」の同期レプリケーション です。 スタンバイは 読み取りに使えない(読み取り負荷分散には Read Replica を別途使用)。 この使い分けが SAA で頻出します。

SAP レベル:高度な設計シナリオ

マルチAZ アーキテクチャの設計

SAP では アプリ全層をマルチAZ 化 します。

SAP レベル:高度な設計シナリオ

SAP のマルチAZ 定石は 「Web / App / DB の全層をマルチAZ に分散」 です。

  • Web 層: ALB でマルチAZ 負荷分散
  • App 層: EC2/ECS を複数 AZ に分散 (Auto Scaling)
  • DB 層: RDS Multi-AZ または Aurora 1 層でも単一 AZ だと、そこが SPOF になるため、全層分散が必須です。
[インターネット]


[ALB (マルチAZ)]
   │            │
   ▼            ▼
[AZ-1]       [AZ-2]
 EC2 群       EC2 群
 (Auto        (Auto
  Scaling)     Scaling)
   │            │
   └─────┬──────┘

   [RDS Multi-AZ]
   Primary (AZ-1) ←→ Standby (AZ-2)

クロスゾーン負荷分散

ALB は クロスゾーン負荷分散 (Cross-Zone Load Balancing) を設定できます。

設定挙動設計論点
有効全 AZ のターゲットに均等分散AZ 間インスタンス数不均一でも均等
無効各 AZ のターゲットにのみ分散AZ 間でインスタンス数が違うと偏る

クロスゾーン負荷分散の注意

クロスゾーン無効 の場合、AZ 間でインスタンス数が違うと 1 インスタンスあたりの負荷が偏る です。 SAP では「AZ 間でインスタンス数を均一に保つか、クロスゾーンを有効にするか」の設計判断が問われます。 NLB はクロスゾーンが 有料 な点にも注意。

Aurora のマルチAZ 設計

Aurora は クォーラムベースのストレージレプリケーション でマルチAZ を実現します。

  • 6 方向コピー: データが 3 AZ に 6 コピー分散
  • クォーラム書き込み: 4/6 で書き込み承認(高パフォーマンス)
  • クォーラム読み取り: 3/6 で読み取り承認
  • フェイルオーバー: プライマリ障害でリードレプリカが自動昇格

Aurora フェイルオーバーの設計

Aurora のフェイルオーバーは 30 秒以内 に完了しますが、 アプリ側のコネクションプールが古いエンドポイントを把持 していると再接続失敗が続きます。 「Aurora のライター ENDPOINT を使う」「コネクションプールの再接続ロジックを設計」が SAP の定石です。

マルチリージョンアーキテクチャの設計

マルチリージョンは リージョン障害に耐える ための設計です。

[プライマリリージョン (東京)]
  ├── ALB → EC2/ECS → Aurora Primary

  │ (非同期レプリケーション)

[セカンダリリージョン (バージニア)]
  ├── ALB → EC2/ECS → Aurora Secondary (スタンバイ)
  • データレプリケーション: 非同期(RPO > 0)
  • Route 53 ヘルスチェック: リージョンレベルの監視
  • フェイルオーバー: Route 53 で DNS 切替(数分)
  • コスト: リソースが倍増、リージョン間データ転送料金

SAP レベル:高度な設計シナリオ

SAP では「アクティブ・アクティブアクティブ・パッシブ の選択」が問われます。

  • アクティブ・アクティブ: 両リージョンでトラフィック処理(コスト有効活用、RTO 最小)
  • アクティブ・パッシブ: 片側は待機(コスト高だが単純、フェイルオーバー明確) 要件(コスト vs 可用性)で選ぶ能力が SAP の核心論点です。

データレプリケーション方式

マルチリージョンでのデータ同期方式:

方式RPO特徴代表サービス
同期レプリケーション0書き込み完了まで待つ(遅い)RDS Multi-AZ(同一リージョン)
非同期レプリケーション秒〜分遅延許容(速い)Aurora Global DB, DynamoDB Global Table
準同期レプリケーションほぼ 0プライマリ + 1 レプリカ確認RDS 異リージョン Read Replica

同期 vs 非同期のトレードオフ

同期レプリケーション は RPO=0 を保証しますが、レイテンシが大きくなります。 非同期レプリケーション はレイテンシ小ですが、障害時にデータロード可能性。 「RPO 0 が必要か、レイテンシ優先か」が SAP の設計判断です。

Route 53 によるマルチリージョンフェイルオーバー

Route 53 の フェイルオーバールーティング でマルチリージョン切替を実現します。

Route 53: example.com
  ├── プライマリ: 東京 ALB (ヘルスチェック Green)
  └── セカンダリ: バージニア ALB (フェイルオーバー時)
  • ヘルスチェック: プライマリ ALB の死活監視
  • フェイルオーバー: プライマリ異常でセカンダリへ DNS 切替
  • TTL: 短く設定(60 秒以下)で切替を高速化

DNS フェイルオーバーの遅延

Route 53 のフェイルオーバーは DNS キャッシュの影響 を受けます。 クライアントが古い IP をキャッシュしていると、TTL が切れるまで古い側にアクセスし続けます。 「TTL を短く」「アプリ側でもリトライ設計」が SAP の定石です。

ステートフルアプリのマルチリージョン課題

ステートフルアプリ(セッションをサーバーで保持)はマルチリージョンが複雑です。

要件解決策設計論点
セッション共有ElastiCache (Redis Global Datastore)セッションのリージョン間同期
ファイル共有S3 (クロスリージョンレプリケーション)静的ファイルの同期
DB 一貫性Aurora Global DB / DynamoDB Global Tableデータベースの非同期同期

ステートレス化の推奨

SAP では 「アプリをステートレス化 → セッションを外部ストレージに分離」 を推奨します。 ステートレスなアプリはマルチAZ / マルチリージョンどちらでもスケールしやすく、 フェイルオーバーも単純です。これが SAP の基本姿勢です。

コストと可用性のバランス

マルチリージョンはコストが高いので、層別で可用性レベルを変える のが SAP の定石です。

可用性レベルアーキテクチャコスト
ミッションクリティカルマルチリージョンアクティブ・アクティブ or パッシブ
業務クリティカルマルチAZ複数 AZ + RDS Multi-AZ
一般業務単一 AZ + バックアップ定期バックアップで DR

層別設計の論点

「全アプリをマルチリージョン」にするとコストが膨張 します。 SAP では ビジネスインパクトに応じて可用性レベルを層別 し、 ミッションクリティカルだけマルチリージョン、他はマルチAZ、という判断が定石です。

制約と考慮事項

項目制約
AZ 数リージョンごとに 2〜6
リージョン間レイテンシ数十ms〜(地理的距離依存)
リージョン間データ転送有料
DynamoDB Global Table数秒のレプリケーション遅延
Aurora Global DB通常 1 秒未満の遅延

まとめ

  • SAA: マルチAZ(リージョン内高可用性)とマルチリージョン(DR)の階層関係、 RDS Multi-AZ は同期レプリケーション、を理解する。
  • SAP: 全層マルチAZ、クロスゾーン負荷分散、マルチリージョンのアクティブ・アクティブ vs パッシブ、レプリケーション方式、層別可用性設計が求められる。

次は ディザスタリカバリ 4 パターン比較 で、DR 戦略の全体像を学びましょう。

スポンサーリンク(広告枠) 728×90