この記事のポイント
- Azureの可用性ゾーンは独立したデータセンター群による高可用性の実現
- リージョン内の複数ゾーンで障害に強いシステムを構築可能
- 可用性セットとは異なる物理的分離による信頼性の確保
- ストレージやデータベースでゾーン冗長構成が可能
- コストと性能のバランスを考慮した最適な構成が重要
監修者プロフィール
坂本 将磨
Microsoft AIパートナー、LinkX Japan代表。東京工業大学大学院で技術経営修士取得、研究領域:自然言語処理、金融工学。NHK放送技術研究所でAI、ブロックチェーン研究に従事。学会発表、国際ジャーナル投稿、経営情報学会全国研究発表大会にて優秀賞受賞。シンガポールでのIT、Web3事業の創業と経営を経て、LinkX Japan株式会社を創業。
Azureの可用性ゾーンは、企業のクラウドシステムに高い信頼性と可用性を実現するMicrosoftの重要なインフラ機能です。独立した電源、冷却設備、ネットワークを持つ物理的に分散したデータセンター群により、障害や災害時でもサービスを継続できます。
フルマネージドで提供される可用性ゾーンは、99.99%以上の高可用性を実現し、Microsoft Azureの強固なセキュリティ基盤により、システムの安定性と信頼性を確保します。
本記事では、可用性ゾーンの基本的な仕組みから具体的な活用方法、導入手順、コストと性能の最適化まで包括的に解説します。
ストレージやデータベースのゾーン冗長化、マルチゾーン構成によるシステム設計など、実践的な活用例を交えながら説明いたしますので、高可用性クラウドインフラの構築をお考えの方は、ぜひご覧ください。
目次
Azureの可用性ゾーンとは
Azureの可用性ゾーンとは、1つの地域にある複数のデータセンターが、互いに物理的に離れている仕組みのことです。
各ゾーンは独自の電源、冷却設備、ネットワークを持っており、他のゾーンと独立して運営されているため、1つのゾーンに障害が発生しても、他のゾーンが正常に動作することでサービスを継続できる仕組みになっています。
可用性ゾーンイメージ
たとえば
日本東リージョンは東京周辺にデータセンターがありますが、
可用性ゾーンは異なるエリア(例: 千葉、神奈川、埼玉など)に物理的に分かれてデータセンターが配置されているようなイメージです。
こうすることで、1つの場所(たとえば千葉)のデータセンターに障害が発生しても、別の場所(たとえば神奈川)のデータセンターが引き継いで動作することで、サービスの停止を防げる仕組みになっています。
可用性ゾーンの重要性
可用性ゾーンは、次のような理由から、クラウドサービスをいつでも安定して使えるようにするために重要なものとなっています。
- 単一障害点の排除
リソースを複数のゾーンに分散することで、1つのデータセンターが障害を起こしても、他のゾーンが影響を受けないようにします。
- 高可用性の実現
アプリケーションを複数のゾーンに配置することで、99.99%以上の高いサービス継続性を確保します。
- ディザスターリカバリの強化
異なるゾーンにデータをコピーすることで、災害時にもデータの復旧が容易になります。
- パフォーマンスの向上
ユーザーに近いゾーンにリソースを配置することで、遅延を最小限に抑えることができます。
- コンプライアンス要件への対応
多くの法規制では、データを複数の場所に分散保存したり、特定の地域内で保管することが求められます。Azureの可用性ゾーンを使うと、これを満たしつつ、安全なデータ管理が可能です。
こうした特徴により、可用性ゾーンは信頼性の高いクラウドインフラを構築するための重要な要素となっています。
Azureリージョンとの関係
可用性ゾーンと関連のある用語として、Azureリージョンがあります。
Azureリージョンは、Azureのデータセンターが集まっている特定の地理的エリアのことです。たとえば、日本東やアメリカ西部など
、世界中に複数のリージョンがあります。
Azureの可用性ゾーンは、Azureリージョン内に存在しています。両者の関係について、以下のポイントでご説明します。
- ゾーンの数
可用性ゾーンを持つリージョンには、通常3つのゾーンがあり、2つのゾーンに障害が発生しても、残りのゾーンでサービスを継続できるように設計されています。ただし、すべてのリージョンが必ずしも可用性ゾーンを持っているわけではありません。
- リージョン内での低レイテンシ
同じリージョン内のゾーン同士は、非常に速い通信回線でつながっていて、遅延がほとんどない状態で通信できます。そのため、可用性ゾーン間でのデータのやり取りや、サーバー間の負荷分散が非常に速く行われ、システム全体がスムーズに動作しています。
- グローバル展開戦略
複数のリージョンと可用性ゾーンを組み合わせて、より広い範囲で高い可用性を持つシステムを作ることが可能です。
- リソースの配置
Azureで提供されているサービスには、リージョン単位で利用されるもの(例:Azure StorageやSQL Databaseなど)と、ゾーン単位で利用されるもの(例:仮想マシン(VM))があります。
そのため、サービスがリージョン全体で動くのか、ゾーンごとに動くのかを理解し、その特性に合わせて適切にリソースを配置することが、安定したシステム運用にとって重要になっています。
可用性ゾーンの仕組みと特徴
では、次に可用性ゾーンの仕組みと特徴についてご紹介します。
物理的な分離と独立性
可用性ゾーンの最も重要な特徴は、以下のような物理的な分離と独立性にあります。
- 地理的分散
同じリージョン内でも、各ゾーンは物理的に離れて配置されているので、自然災害や停電の影響を最小限に抑えられます。
- 独立したインフラ
各ゾーンは、独自の電源、冷却システム、ネットワークを持っているため、1つのゾーンでの障害が他のゾーンに波及することを防いでいます。
- スケーラビリティ
各ゾーンは独立しているので、システムのリソース(例えばコンピューティングパワーやストレージ容量など)を個別に増減することができます。
- セキュリティ強化
物理的に離れていることで、セキュリティリスクが分散され、より安全な運用が可能です。
つまりこうした物理的な分離と独立性によって、可用性ゾーンは障害やセキュリティリスクに強い設計になっているのです。
低遅延ネットワーク接続
可用性ゾーン間は、次のような特徴を持つネットワークでつながっています。
- ゾーン同士はMicrosoftが管理する専用の高速ネットワークでの接続
- ゾーン間の通信遅延は通常2ミリ秒以下でのデータやり取り
- 大量のデータをスムーズに送ることができる高帯域幅の確保
- データの自動暗号化によるセキュリティ保護
- 複数の経路による障害時の安定した通信
電源、冷却、ネットワークの冗長性
Azureの可用性ゾーンは、障害やトラブルに備えて、次のような対策を取っています。
-
電源システム
- 複数の電源供給ラインがあり、1つがダウンしても他のラインで電力を供給します。
- 大容量のバッテリーと非常用発電機で、長時間の停電にも対応できます。
-
冷却システム
- 独立した冷却ユニットで効率的にシステムを冷却し、最適な空気の流れを保ちます。
- 冷却装置が壊れた場合は、バックアップの冷却メカニズムが作動します。
-
ネットワークインフラ
- 複数のネットワーク経路を使い、障害時には他の経路に自動で切り替えるフェイルオーバー機能があります。
- 複数のネットワーク経路を使い、障害時には他の経路に自動で切り替えるフェイルオーバー機能があります。
-
データストレージ
- RAID構成でデータを複数箇所にバックアップし、障害時にもデータを保護します。
- データはリアルタイムで複製され、定期的なバックアップと迅速な復旧が可能です。
-
モニタリングと自動化
- 24時間体制でシステムを監視し、異常があれば自動で修正し、予防的なメンテナンスも行われます。
こうした仕組みにより、可用性ゾーンは高い信頼性と可用性を提供し、システム停止のリスクを大幅に減らしています。
可用性ゾーンを活用したサービス
では、主要なAzureサービスで可用性ゾーンはどのように活用されているでしょうか。具体的に見ていきましょう。
ゾーン冗長ストレージ(ZRS)
ゾーン冗長ストレージ(ZRS)は、Azureの可用性ゾーンを利用してデータをより安全に保つ仕組みです。
データはAzureによって3つの異なる可用性ゾーンに自動的にコピーされ、各ゾーンに少なくとも1つのバックアップが保存されます。
a. 適用サービス
- Azure Blob Storage
- Azure Files
- Azure Queue Storage
b. 設定方法
Azureでストレージアカウントを作成し、ゾーン冗長ストレージ(ZRS)を設定する手順は以下の通りです。
-
Azureポータルで「ストレージアカウント」をクリック
ストレージアカウント選択画面
-
ストレージアカウント作成画面を開き、「作成」をクリック
作成ボタン
-
冗長性の設定で「ゾーン冗長ストレージ(ZRS)」を選択し、「確認と作成」をクリック
入力画面
-
「作成」をクリック
ストレージアカウント作成画面
つまり、ストレージアカウント作成時にZRSを選択するだけで、データの保護が強化されます。すでにLRS(ローカル冗長ストレージ)を使っている場合でも、ZRSに切り替えることが可能です。
仮想マシンの可用性ゾーン配置
仮想マシン(VM)は、複数の可用性ゾーンに分けて配置することで、システムが安定して動くようにします。また、VMが使うOSディスクやデータディスクは、ゾーン冗長ストレージ(ZRS)を使うことで、データが常に守られ、高い可用性を確保します。
a. 設定方法
Azure仮想マシン(VM)の設定時に、可用性ゾーンとゾーン冗長ストレージを選択する手順を説明します。
-
基本設定
仮想マシンの可用性オプションとして「可用性ゾーン」を選択します。
可用性ゾーン選択画面
こうすることでVMを複数の可用性ゾーンに分散させて配置でき、障害時の冗長性を確保できます。 -
ディスク設定
OSディスクの冗長性として「ゾーン冗長ストレージ」を選択します。
ディスク設定画面
こうすることでVMのOSディスクも可用性ゾーンに分散され、障害発生時にも他のゾーンでデータが保持され、システムをすぐに復元できます。
Azure SQL Databaseの可用性ゾーン構成
Azure SQL Databaseでは、メインデータ(プライマリ)を1つのゾーンに保存し、バックアップデータ(セカンダリ)を別のゾーンに保存します。データはリアルタイムでレプリケーションされるため、データの一貫性が常に保たれます。万が一プライマリに障害が発生しても、セカンダリが自動で代わりに機能し、データの損失を防ぎます。
設定方法
データベース作成時や後からゾーン冗長性を有効にできますが、BasicやStandardのサービスレベルでは、ゾーン冗長性はサポートされていません。
詳細は、こちらをご覧ください。
可用性ゾーンと可用性セットの違い
次に、可用性ゾーンと似た名前の可用性セットについてその違いをご説明します。
可用性セットの概要
可用性セットとは、同じデータセンター内での障害やメンテナンスに備えるために、VMを物理的に異なるホストやラックに分散させる仕組みのことです。
コストを抑えながらVMの冗長性を確保でき、同じデータセンター内で高速な通信が可能なので、レイテンシ(遅延)も少ないですが、データセンター全体が障害を受けた場合や、リージョン全体の障害には対応できません。
そのため可用性セットは、システムを止めないための重要な対策ではあるものの、大規模な障害には別の対策が必要です。
障害ドメインと更新ドメイン
可用性セットは、「障害ドメイン(Fault Domain: FD)」と「更新ドメイン(Update Domain: UD)」という2つの概念に基づいて、仮想マシン(VM)を分散配置しています。
可用性セットイメージ(参考:マイクロソフト)
-
障害ドメイン(Fault Domain: FD)
同じ電源やネットワークを共有するサーバーのグループです。もし1つの障害ドメインで問題が発生しても、他のドメインに影響を与えないように設計されています。通常、1つの可用性セットには2〜3つの障害ドメインがあります。 -
更新ドメイン(Update Domain: UD)
同時にメンテナンスや再起動が行われるVMのグループです。更新ドメインを分けることで、計画的なメンテナンスが行われても、すべてのVMが一度に停止しないようにしています。通常、1つの可用性セットには5つの更新ドメインがあります。
Azureは自動的にVMを異なる障害ドメインと更新ドメインに分散させ、単一の障害やメンテナンスがすべてのVMに影響しないようにしています。
可用性ゾーンと可用性セットの使い分け
可用性ゾーンと可用性セットのどちらを使うべきかは、アプリケーションの重要度やパフォーマンス、コストなどの要素によって変わってきます。
以下の表を参考にしてみてください。
可用性ゾーン | 可用性セット | |
---|---|---|
可用性 | 非常に高い可用性(99.99%のSLA)が必要な場合 | 少し低めの可用性(99.95%のSLA)で十分な場合 |
冗長性 | 複数のデータセンターにまたがってシステムを守りたい場合 | 同じデータセンター内で冗長化すれば十分な場合 |
レイテンシ | 多少の遅延が許容できる場合 | 極力遅延を減らしたい場合 |
コスト | 多少コストがかかっても構わない場合 | コストを重視する場合 |
アプリの種類 | マイクロサービスやクラウド向けの新しいアプリ | 古いモノリシックなアプリに適している |
規制・コンプライアンス | データの冗長性が法的に必要な場合 | 単一のデータセンター内で問題ない場合 |
インフラの統合 | 新しいプロジェクトや大規模な移行に適している | 既存のAzure環境に合わせたい場合 |
可用性セットについてはこちらの記事もご覧ください。
【関連記事】
➡️Azureの可用性セットとは?仕組みや可用性ゾーンとの違い、使い方を解説
可用性ゾーンを活用した高可用性設計
ここまで可用性ゾーンについてご説明してきましたが、ただただ可用性ゾーンを利用するだけでは、すべてのリスクや要件に対応できないこともあります。そのため、以下の3つの追加の対策をするのがさらに望ましいでしょう。
・マルチゾーン構成でゾーン単位の障害に備える。
・ゾーン間負荷分散で、システムの安定性と可用性を維持する。
・ディザスターリカバリ戦略で、広域な障害や災害に対してもサービスを継続できるようにする。
マルチゾーン構成の基本
マルチゾーン構成とは、可用性ゾーンを利用してシステムを複数のゾーンに分散配置し、障害に強いシステムを設計する方法です。
例えば:
アプリケーションサーバーをゾーン1とゾーン2に分散させ、どちらか一方に障害が発生しても、もう一方が稼働するようにシステムを設計する。
ということが考えられるでしょう。
ゾーン間負荷分散の実装
可用性ゾーンはリソースを分散するだけではトラフィックの再配分や負荷管理が十分ではありません。そこでゾーン間負荷分散を組み合わせることで、高可用性、パフォーマンス、スケーラビリティが向上し、システムがより安定してスムーズに動作するようになります。
次のようなツールを使って、ゾーン間でのトラフィック分散や障害時の自動切り替えを実現し、常にシステムが稼働し続けるようにしましょう。
- Azure Load BalancerやApplication Gateway: 異なる可用性ゾーンにトラフィックを分散し、障害が発生した場合も他のゾーンに自動でトラフィックを切り替え、システムの可用性を向上させます。
【関連記事】
➡️Azure Load Balancerとは?その概要や料金、設定方法を徹底解説!
- Traffic Manager: 地域(リージョン)間の負荷分散やフェイルオーバーを実現し、複数リージョンにまたがるシステムの安定性を向上させます。
ディザスターリカバリ戦略
可用性ゾーンは障害に強いですが、データの同期やバックアップがないとデータ消失のリスクがあります。ディザスターリカバリ戦略(DR戦略)では、ゾーン間でリアルタイムにデータを複製・同期し、どちらかのゾーンがダウンしてもデータを失わないようにします。
以下のツールを利用すると効果的です。
-
- 仮想マシンやアプリのデータを他のゾーンやリージョンにリアルタイムで同期。
- 障害が発生した場合、自動で他のゾーンに切り替えて復旧。
- 定期的にバックアップを取り、データの復元も可能。
-
- データを複数のゾーンやリージョンに複製して保護。
- 障害時には自動で他のゾーンやリージョンから復旧。
可用性ゾーンのコストと性能への影響
さて、ここでは可用性ゾーンを利用することによるコスト増とパフォーマンス低下についてご説明します。
ゾーン冗長構成のコスト
可用性ゾーンを利用してシステムを強化すると、信頼性が向上する一方で、次のような追加コストが発生します。
コストの種類 | 説明 |
---|---|
リソースコスト | 3つのゾーンにシステムを分散する場合、少なくとも3倍のサーバーやストレージが必要になるため、コストが増加。 |
データ転送コスト | ゾーン間でのデータやり取りには追加料金がかかり、同じリージョン内でもデータ転送に費用が発生。 |
ストレージコスト | 「ゾーン冗長ストレージ(ZRS)」は、「ローカル冗長ストレージ(LRS)」よりも高額。 |
ネットワークコスト | 複数ゾーンにまたがるロードバランサーやアプリケーションゲートウェイ、複数のIPアドレスが必要になりコスト増加。 |
管理コスト | 可用性ゾーンの構成は複雑化し、管理や運用の手間が増え、監視やトラブルシューティングの時間も増加。 |
ゾーン間通信のレイテンシ
可用性ゾーン間の通信は通常2ミリ秒未満ですが、ネットワーク状況や距離によって遅延が発生し、アプリケーションのパフォーマンスに影響を与えることがあります。
コスト最適化の戦略
そこで以下のような戦略を使うことで、コストと可用性のバランスを取りながら、システムを定期的に最適化することが重要です。
-
リソースのサイズ調整と自動スケーリング
必要なリソースだけを使用し、負荷に応じて自動で調整します。 -
リザーブドインスタンスとスポットインスタンスの活用
長期利用にはリザーブドインスタンス、短期や中断可能な作業にはスポットインスタンスを使ってコストを抑えます。 -
データ転送とストレージの最適化
不要なゾーン間のデータ転送を減らし、あまり使わないデータは安価なストレージに移します。 -
コストモニタリング
Azureのツールを使ってコストを定期的にチェックし、リソースの最適化を継続します。
まとめ
本記事では、Azureの可用性ゾーンについて、その定義から具体的な活用方法、導入ステップ、そして運用上の考慮事項まで、幅広く解説しました。
可用性ゾーンは、クラウドインフラストラクチャの信頼性と可用性を大幅に向上させる重要な要素であり、現代のミッションクリティカルなアプリケーションにとって不可欠な存在となっています。今後も、クラウドの進化に伴い、可用性ゾーンの概念と実装はさらに発展していくでしょう。
ぜひこれらの変化に柔軟に対応し、常に最適な可用性とパフォーマンスを追求するために可用性ゾーンを取り入れてみてください。Azureの可用性ゾーンは、このような進化する環境において、安定性と革新性を両立させるための強力な基盤となり続けるでしょう。
本記事が皆様のお役に立てたら幸いです。