AWS AZ(アベイラビリティゾーン)とは?マルチAZ構成を導入するメリットとリージョンとの違いを解説
目次
AWS AZ(アベイラビリティゾーン)とは?独立した可用性単位の役割
AWS AZ(アベイラビリティゾーン)は、AWSクラウドインフラストラクチャの中核を成す冗長性の仕組みです。システムの可用性を高めるには、まずAZの本質を正しく理解することが重要になります。
AWSリージョンとAZのスコープの違い
AWSのインフラストラクチャは、リージョンとアベイラビリティゾーンという二層の構造で設計されています。リージョンは地理的なエリア全体(例:東京)を指し、AZはそのリージョン内にある独立したデータセンター群を意味します。たとえば「東京リージョン」という大きな括りの中に、ap-northeast-1a、ap-northeast-1b、ap-northeast-1cといった複数のAZが存在する構造です。
各AWSリージョンは最低3つ以上のAZで構成されており、それぞれのAZは物理的に分離された場所に設置されています。
東京リージョン(ap-northeast-1)の場合、現在4つのAZが利用可能です。ただし具体的なデータセンターの所在地はセキュリティ上の理由から非公開となっています。
この構造により、1つのAZに問題が発生しても、他のAZでシステムを継続稼働させる「マルチAZ構成」が可能になります。災害対策やデータ主権の観点で「リージョン」を選び、可用性を担保する単位として「AZ」を活用するのが基本となります。
| 項目 | 定義・特徴 | 役割・構造 |
|---|---|---|
| リージョン |
|
|
| アベイラビリティゾーン(AZ) |
|
|
AWS AZの冗長性の提供
アベイラビリティゾーンの最も重要な特徴は、電源・空調・ネットワークなどのインフラが完全に独立していることです。各AZは1つ以上の個別データセンターで構成され、他のAZとは物理的に離れた場所に配置されているため、障害の影響が他のAZに波及しない設計になっています。
物理的には離れていますが、AZ間は高速かつ低遅延な専用ファイバーネットワークで相互接続されています。通信遅延は数ミリ秒程度に抑えられているため、データベースの同期やリアルタイム処理を行うアプリケーションでも、AZを跨いだ構成を問題なく組むことができます。
この「障害分離」の考え方が、AWSの高い耐障害性を支える根幹です。地震などの自然災害リスクに対しても、物理的な距離を持って分散配置することで被害を局所化し、システムの全停止を防ぐ役割を果たしています。
AWS AZのアカウントごとの確認
AWS環境でシステムを設計する際に注意すべきなのが、AWSアカウントによって利用可能なAZが異なる場合があるという点です。
あるアカウントではap-northeast-1aが利用できても、別のアカウントでは異なるAZのセットになっている可能性があります。これはAWS側がリソースの偏りを防ぐために、アカウントごとにAZの割り当て(マッピング)をランダムに行っているためです。
また、AZの命名(ap-northeast-1aなど)は論理的な識別子であり、実際の物理的なデータセンターとの対応関係はアカウントごとに異なります。複数のAWSアカウントを運用している場合、同じAZ名でも異なる物理的な場所を指している可能性があるため、AZ IDという物理的な識別子を使って確認することが推奨されます。
さらに、AWSは継続的にインフラを拡張しているため、新しいAZが追加されることもあります。東京リージョンでも過去に段階的にAZが増設されてきました。システム設計時には、最新の利用可能AZ情報をAWSマネジメントコンソールやCLIで確認し、将来的な拡張性も考慮した構成を検討することが重要です。
AWS AZの構成パターン|シングルAZとマルチAZの選び方を徹底解説
AWSでシステムを構築する際、シングルAZ構成とマルチAZ構成のどちらを選ぶかは、コストと可用性のトレードオフを理解した上で判断する必要があります。それぞれの特性を正しく把握し、システムの要件に合わせて選択しましょう。
AWS AZを単独で利用する「シングルAZ」のメリットとリスク
シングルAZ構成は、すべてのリソースを1つのアベイラビリティゾーン内に配置する最もシンプルな構成です。構成が単純であるため設計や管理が容易で、AZ間のデータ転送コストが発生しないため運用コストを抑えられるというメリットがあります。
開発環境やテスト環境、短期的なプロジェクト、可用性要件が厳しくない社内システムなどに適しています。
ただし、シングルAZ構成には明確なリスクが存在します。そのAZで障害が発生した場合、システム全体が停止する可能性があるのです。
AWSのAZは高い信頼性を持つように設計されていますが、過去には電源障害やネットワーク障害によってAZ全体のサービスに影響が出た事例も報告されています。
シングルAZ構成を選択する場合は、システムが停止した際のビジネスへの影響を事前に評価しておくことが重要です。サービス停止が許容できる時間(RTO: Recovery Time Objective)や、失われても許容できるデータ量(RPO: Recovery Point Objective)を明確にし、それらがビジネス要件を満たすかを確認してください。
複数のAWS AZを活用する「マルチAZ」のメリットとリスク
マルチAZ構成は、物理的に独立した複数のAWS AZにリソースを分散配置し、システムの可用性を最大化する設計です。万が一、片方のAZがダウンしても、もう一方のAZで即座にサービスを継続できるため、24時間365日の稼働が求められる本番環境では標準的な選択肢となります。
マルチAZ構成では、ロードバランサーで複数AZに配置されたサーバに負荷を分散し、データベースも別AZにスタンバイレプリカを配置します。
AWSのマネージドサービスの多くはマルチAZ機能を標準で提供しており、RDSのマルチAZ配置やELBの複数AZ対応などが代表例です。これらを活用することで、比較的容易に高可用性を実現できます。
一方で、マルチAZ構成にはトレードオフも存在します。複数AZにリソースを配置するため、インスタンス数の増加やAZ間データ転送による追加コストが発生します。また、設計の複雑さも増すため、初期構築や運用の手間が大きくなります。
データの整合性を保つための同期処理も必要となり、アプリケーションの設計にも配慮が求められます。
主要サービス別の推奨AWS AZ構成と選び方
AWSの主要サービスにおけるAZ構成の選択は、サービスの特性と可用性要件によって異なります。EC2インスタンスは複数AZに分散配置し、ELBで負荷分散することが高可用性の基本パターンです。最低でも2つ、理想的には3つのAZに配置することで、1つのAZ障害でもサービスを継続できます。
データベースサービスであるRDSでは、マルチAZ配置オプションを有効にすることで、自動的に別AZにスタンバイレプリカが作成され、障害時の自動フェイルオーバーが実現されます。本番データベースではこの機能の利用が強く推奨されます。一方、開発環境などではコスト削減のためシングルAZ構成を選択することも現実的な判断です。
注意が必要なのは、Amazon EBSのような「AZ固有のサービス」です。EBSは作成されたAWS AZ内でのみ利用可能で、他のAZからは直接アクセスできません。データを冗長化したい場合は、定期的にスナップショットを取得するか、S3のようなリージョン全体で耐久性を持つストレージを併用するなどの対策が必要です。
AWS AZ障害に強いシステムへ|マルチAZ設計と運用の自動化
マルチAZ構成だけでは不十分で、障害対策と運用体制の整備が欠かせません。AZ障害時にシステムを継続稼働させるには、フェイルオーバー、監視体制、実践的な訓練の3点が必要になります。
AWS AZ間の自動フェイルオーバーとデータ同期
マルチAZ構成における障害対策の核心は、自動フェイルオーバーとデータレプリケーションの仕組みです。ELBを使用することで、障害が発生したAZのインスタンスへのトラフィックを自動的に停止し、正常なAZのインスタンスにのみリクエストを振り分けることができます。ヘルスチェック機能により、異常を検知したインスタンスは自動的に切り離され、システム全体への影響を最小限に抑えられます。
データベースのフェイルオーバーでは、RDSのマルチAZ機能を活用すると、プライマリインスタンスに障害が発生した際に自動的にスタンバイレプリカがプライマリに昇格します。
このフェイルオーバーは通常1〜2分程度で完了し、アプリケーション側でエンドポイントを変更する必要はありません。データの同期は同期レプリケーションで行われるため、データ損失のリスクも最小化されます。
アプリケーション層でも、セッション情報を特定のサーバに依存させない設計が重要です。ElastiCacheやDynamoDBなどの外部ストレージにセッション情報を保存することで、特定のAZのサーバが停止してもユーザーのセッションを維持できます。
ステートレスな設計は、スケーラビリティの観点からも推奨されるアーキテクチャパターンです。
CloudWatchで特定のAWS AZ異常を早期検知する監視体制
復旧時間を短縮するためには、どのAWS AZで問題が起きているかを早期に特定する監視体制が不可欠です。Amazon CloudWatchを活用して、AZごとのCPU使用率やエラーレートを個別に監視し、特定のAZだけで異常値が出ていないかを確認できるダッシュボードを構築しましょう。
監視の精度を高めるため、ELBのヘルスチェックは「深さ」を意識して設定します。単なるポート応答だけでなく、データベースへの接続確認を含めたアプリケーションの動作確認用エンドポイントを監視させることで、表面化しにくい障害も検知可能になります。
異常を検知した際は、Amazon SNSと連携して運用チームへ即座に通知を飛ばす仕組みも整備します。Slackやメールへ自動通知する際に「どのAWS AZで障害が起きているか」という情報を含めることで、初動対応のスピードが格段に向上します。
AWS AZ障害を想定した運用手順書と避難訓練
技術的な対策と同様に重要なのが、障害発生時の運用手順の整備と定期的な訓練です。AZ障害を想定したランブックを作成し、誰が何をすべきかを明確に定義しておくことで、実際の障害時にも冷静に対応できます。手順書には、障害の確認方法、エスカレーション基準、復旧手順、関係者への連絡方法などを具体的に記載します。
定期的な復旧訓練では、実際にAZを意図的に停止させてシステムの動作を確認します。この訓練により、設計段階では見落としていた問題点や、手順書の不備を発見できます。訓練は本番環境に影響を与えないよう、ステージング環境で実施するか、メンテナンス時間帯を利用して慎重に行いましょう。
復旧後のポストモーテム(振り返り)も重要なプロセスです。障害の原因分析、対応の適切性評価、改善点の洗い出しを行い、次回に活かします。
特にAWS側の障害の場合、AWSから公開される障害報告書を参考に、自社システムの脆弱性を見直す機会として活用できます。継続的な改善サイクルを回すことで、システムの耐障害性は着実に向上していきます。
実際のAZ障害事例から学ぶ:2019年・2021年の東京リージョン障害
マルチAZ構成の重要性を理解するには、実際に発生した過去の大規模障害を知ることが最も効果的です。特に日本のユーザーに大きな影響を与えたのが、2019年8月と2021年9月に東京リージョン(ap-northeast-1)で発生したAZ障害です。
2019年の事例では、特定の単一AZにおいてデータセンターの冷却装置が故障し、サーバーのオーバーヒートが発生しました。これにより、多くのWebサービスやゲームアプリが数時間にわたってアクセス不能となりました。
しかし、マルチAZ構成で適切にフェイルオーバーを設定していたシステムは、正常な他のAZへ自動的に切り替わり、サービスの切断による被害を回避または最小限に抑えることができました。
2021年のネットワーク機器障害の際も同様に、単一AZに依存していたシステムは大きな打撃を受けましたが、複数AZに分散していたシステムは影響を最小限にすることができました。これらの事例は、「AZ障害は現実に起こるもの」という前提に立ち、特定のAZが全滅してもサービスを継続できる設計がいかに重要かを物語っています。
まとめ
この記事では、AWS AZ(アベイラビリティゾーン)の基本概念から、リージョンとの違い、シングルAZとマルチAZの使い分け、そして実践的な障害対策まで解説してきました。
AZはリージョン内の独立したデータセンター群であり、物理的な分離と冗長化されたネットワークによって高い可用性を実現します。適切なAZ構成の選択は、システムの可用性要件とコストのバランスを考慮して判断する必要があります。
実際の使用では基本的にマルチAZ構成を採用し、ELBによる負荷分散、RDSのマルチAZ配置、CloudWatchによる監視体制を整備することで、堅牢なシステムを構築できます。さらに、定期的な復旧訓練と運用手順の整備により、実際の障害時にも迅速に対応できる体制を作ることが重要です。
AWSインフラの設計は、DX推進における重要な基盤となります。もしAWS環境の構築や最適なAZ構成の選択にお悩みでしたら、専門的な知見を持つパートナーに相談することをお勧めします。国内エンジニアによる高品質な設計と、コストを抑えた開発体制を両立できるパートナーを選ぶことで、安心してDXを推進できるでしょう。
dx