【あくてぃぶあくてぃぶ】
アクティブ-アクティブ とは?
最終更新:
💡 全員が「現役選手」として稼働する構成
複数のサーバーやデータセンターが同時に稼働してリクエストを処理する冗長構成。高可用性と負荷分散を両立する。
📌 このページのポイント
- 複数拠点が同時にリクエストを処理する構成
- 1か所が止まっても、残りの拠点へ振り分けを寄せれば処理を続けられる(残りで全負荷を支える余裕が必要)
- 複数拠点で書き込むと更新の衝突が起きうるため、データの整合性をどう保つかが大きな課題
- 待機系を遊ばせずに済む一方、データ同期や運用が複雑になりやすく、どちらが適するかは要件次第
アクティブ-パッシブとの違いは?
アクティブ-パッシブは1台が稼働(Active)、もう1台が待機(Passive/Standby)。障害時にパッシブ側に切り替える。アクティブ-アクティブは両方が同時に稼働してリクエストを処理する。パッシブ側はリソースが遊んでいるけど、アクティブ-アクティブなら全リソースを常時活用できるよ
アクティブ-アクティブの方がいいの?
必ずしもそうとは限らないよ。両方の拠点で同じデータを同時に更新すると衝突(コンフリクト)が起きるから、「最後に書いたほうを採用する(Last Writer Wins)」などの解決方法を決める必要があるんだ。書き込みを1拠点に集める、ユーザーごとに書き込む拠点を決める、という設計で衝突を避ける方法もあるよ。整合性の要件が厳しいなら、アクティブ-パッシブのほうが単純で扱いやすいこともあるね
AWSでのアクティブ-アクティブ構成は?
おもしろい!どんなシステムに向いている?
世界中のユーザーに近い場所から応答したいサービス、止まる時間をできるだけ短くしたいサービス、読み取りが多いサービスなどだね。逆に、在庫数や口座残高のように同じデータを複数の場所で同時に更新されると困るシステムでは、書き込み先を1か所に決めるなど慎重な設計が必要だよ。どちらの場合も、1拠点が止まったときに残りで全部の負荷を支えられるかを確認しておこうね
もっと詳しく知りたい人へ
アクティブ-アクティブならフェイルオーバーの手順はいらないの?
AWSの災害対策ホワイトペーパーでは、複数リージョンで同時に動かすマルチサイトのアクティブ-アクティブでは、ワークロードがすでに複数リージョンで動いているため「フェイルオーバーというものはない」と説明されているよ。ただし障害が起きたリージョンへの振り分けを止める操作や、書き込みを1リージョンに集める設計なら書き込み先の切り替えは必要になる。どの部分が自動で、どの部分が手動かを事前に決めて訓練しておこう。
まとめ:ざっくりこれだけ覚えればOK!
「アクティブ-アクティブ」って出てきたら「複数拠点が同時稼働する冗長構成」と思えればだいたいOK!
📖 おまけ:英語の意味
「Active-Active」 = 能動-能動構成
💬 Active(稼働中)な拠点が複数ある構成。全員が戦力として動いているよ