複数Availability ZoneのPublic SubnetからPrivate SubnetのEC2へApplication Load Balancerが振り分けるAWS公式図
Cloud Certification

Availability ZoneとLoad Balancerとは?AWSで障害に強い構成を初心者向けに図解

VPCとSubnetの次に理解したいのが、Region(リージョン)、Availability Zone(アベイラビリティゾーン)、そしてLoad Balancer(ロードバランサー)の関係です。

これらは「なぜ同じAPIサーバーを複数置くのか」「片方で障害が起きたとき、なぜサービスを継続できるのか」を理解するための土台になります。

RegionはAWSの大きな地理的エリア

Region = 地理的に分離されたAWSの大きな提供エリアです。たとえば東京リージョンや大阪リージョンなどがあります。

VPCは1つのRegionに作成し、そのRegion内の複数のAvailability ZoneへSubnetを配置できます。

AWS
│
├─ Tokyo Region
│   ├─ Availability Zone A
│   ├─ Availability Zone C
│   └─ ...
│
└─ 別のRegion
    ├─ Availability Zone
    └─ ...

世界展開するシステムでは複数Regionを利用することがありますが、まずは「Regionの中に複数のAZがある」と覚えるところから始めます。

AZはAvailability Zoneの略

AZ = Availability Zoneです。Availabilityは「利用可能性」「可用性」、Zoneは「区域」という意味です。

AWSでは、1つのRegionの中に複数のAZがあり、互いに物理的・インフラ的に分離されています。Subnetは1つのAZに所属します。

Tokyo Region
│
├─ AZ-A
│   └─ Subnet A
│       └─ API Server A
│
└─ AZ-C
    └─ Subnet C
        └─ API Server C

同じAPIサーバーを複数AZへ配置しておくと、片方のAZやサーバーに問題が起きても、もう片方で処理を継続しやすくなります。この考え方が高可用性につながります。

Load Balancerはアクセスの振り分け役

Load Balancerは、その名前の通り「Load(負荷)」を「Balance(均等化・分散)」する仕組みです。AWSではElastic Load Balancingというサービスがあり、その中にApplication Load Balancer(ALB)など複数種類があります。

たとえばAPIサーバーが2台ある場合、利用者が各サーバーの場所を意識するのではなく、Load Balancerを1つの入口として利用します。

利用者
  │
  ▼
Load Balancer
  │
  ├────→ API Server A(AZ-A)
  │
  └────→ API Server C(AZ-C)

アクセスが集中したときに複数サーバーへ振り分けられることに加えて、利用者側には入口を1つに見せられるのも重要なポイントです。

複数Availability ZoneのPublic SubnetからPrivate SubnetのEC2へApplication Load Balancerが振り分けるAWS公式図

出典: AWS Prescriptive Guidance。Application Load Balancerが複数AZにまたがる構成の例です。

Health Checkで「今そのサーバーを使えるか」を確認する

Health Check = 稼働状態の確認です。Load Balancerは登録されたTargetに対して定期的に確認を行い、正常と判断されたTargetへ通信を送ります。

たとえばAPIサーバーAが正常、APIサーバーCが異常なら、正常な側へリクエストを送ることで障害の影響を減らせます。

Load Balancer
│
├─ Health Check → Server A → OK
│                  ↑ 通信を送る
│
└─ Health Check → Server C → NG
                   × 一時的に送らない

この仕組みがあることで、単純な「負荷の分散」だけではなく、障害が起きたサーバーを切り離す役割も持てます。

Load Balancerは1つのAZだけに閉じるものではない

ここは初学者が疑問に感じやすい部分です。Application Load Balancerでは、複数のAvailability Zoneを有効化して、それぞれのAZにあるSubnetと関連付けます。AWS側は有効化したAZにロードバランサーのノードを作成します。

AWS公式では、Application Load Balancerは少なくとも2つ以上のAvailability Zoneを有効化する必要があります。複数AZを使うことで、片方のAZが利用できない場合でも、別AZの正常なTargetへ通信を送れる構成にできます。

複数Availability ZoneにまたがるApplication Load Balancerの往復通信経路を示すAWS公式図

出典: AWS Prescriptive Guidance。複数AZのPublic Subnetにロードバランサーの受け口があり、Private SubnetのEC2へ通信しています。

複数RegionではLoad BalancerもRegionごとに考える

東京と米国など複数Regionへ展開する場合、1つのLoad Balancerが世界中のすべてのAZを直接まとめる、と考えるのは適切ではありません。基本的にはRegionごとにLoad Balancerを用意し、そのRegion内の複数AZへ振り分ける形になります。

利用者
   │
   ▼
世界規模の振り分け
   │
   ├─→ Tokyo Region
   │     └─ Load Balancer
   │         ├─ AZ-A
   │         └─ AZ-C
   │
   └─→ US Region
         └─ Load Balancer
             ├─ AZ-A
             └─ AZ-B

さらに手前でどのRegionへ利用者を送るかを制御する仕組みとして、Amazon Route 53やAWS Global Acceleratorなどがあります。ここは今後の学習範囲として、まずは「Load BalancerはRegion内の複数AZを使える」と覚えれば十分です。

まとめ:Region → AZ → Subnet → Serverの順で見る

用語 意味 今回の役割
Region AWSの大きな地理的エリア 東京などの単位
AZ Availability Zone Region内の分離された場所
Subnet Subnetwork 1つのAZ内に作るネットワーク区画
Load Balancer 負荷分散装置 複数Targetへアクセスを振り分ける
Health Check 稼働状態確認 正常なTargetを判断する

ここまで理解すると、Internet → Public側の入口 → Load Balancer → 複数AZのPrivate側APIサーバーというWebシステムの基本構成がかなり読みやすくなります。

前の記事: CIDRとは?/16・/24・0.0.0.0/0を整理

参考:AWS公式ドキュメント

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です