東日本リージョン (Japan East) で Azure 可用性ゾーン (Azure Availability Zones) が GA したことをアナウンスいたします!
何が GA したか?
東日本リージョン (Japan East) で待望の Azure Availability Zones / 可用性ゾーンが利用可能になりました。可用性ゾーンは可用性セットとは異なる新たな可用性構成オプションです。Central US や East US 等のリージョンでは先行して利用可能になっていましたが、東日本リージョンでも利用可能となったことが今回のアナウンス事項となります。なお、西日本リージョンへの可用性ゾーンの展開は現時点で予定しておりません。
Azure 可用性ゾーンによって可能になることとは?
Azure 可用性ゾーンは、同一リージョン内の複数データセンターにより、データセンター単位の障害に対する冗長性を担保するものです。Azure 可用性ゾーンを利用した構成にすることで、SLA で 99.99% の稼働率が保証されるようになります。これは、単一仮想マシンの SLA 99.9% (月当たりのダウンタイム 43.2 分相当)、可用性セットを構成した場合の SLA 99.95% (月当たりのダウンタイム 21.6 分相当) と比較し、可用性ゾーン SLA 99.99% (月当たりのダウンタイム 4.3 分相当) となり、よりビジネス継続性要件の高いワークロードを Azure 上で稼働することが可能になったと言えます。
※ ダウンタイムは 1 か月を 30 日とした場合の試算。
Azure 可用性ゾーンの価格
可用性ゾーンの利用に関する追加のコストは発生しません。 2 つ以上の VM が 1 つの Azure リージョン内の 2 つ以上のゾーンにデプロイされている場合、99.99% の SLA が保証されます。 ただし、各可用性ゾーンに展開した仮想マシンの利用料金に加えて、可用性ゾーン VM 間データ転送の追加料金がかかります。データ転送料金に関しては、詳しくは「帯域幅の料金詳細」をご覧ください。
AWS の可用性ゾーンでは、ゾーンを横断した VPC (Virtual Private Cloud、Azure の仮想ネットワークに相当) は展開可能であるものの、サブネットはそれぞれのゾーンで別のものを作成する必要があります。一方で、Azure の可用性ゾーンについては仮想ネットワークだけでなく、サブネットもゾーン横断で利用することが可能です。また、可用性セットに相当する機能は AWS に存在しないため、上述の通り、可用性セットと可用性ゾーンとを併せて利用することで、より柔軟な構成を取ることが可能です。単純な同等機能が後追いで追加した、というわけではなく、より幅広い選択肢を、より高い機能を持って提供している、とご理解ください。
以下、補足情報になります。
Azure の可用性構成の補足
Azure の可用性構成には大きく以下の 3 つがあります。
- 可用性セット
- 可用性ゾーン
- ペアリージョン
可用性セットはラック単位の冗長性を担保するものです。例えば、同一可用性セットに配置した複数の仮想マシンには更新ドメインと障害ドメインが割り当てられ、それぞれのドメインを分散してリソースが配置されます。これにより、計画メンテナンスが生じた場合でも、いずれかのリソースがオンラインであることが担保されるようになり、また、潜在的な物理ハードウェア障害、ネットワーク障害に対してラック単位の冗長性が担保されます。
可用性ゾーンは同一リージョン内に存在する、それぞれ独立した電源・冷却手段・ネットワークを備えた複数のデータセンターにより実現しています。東日本リージョンでは 3 つの可用性ゾーンが利用可能になりました。この 3 つのデータセンターに分散してリソースを配置することで、データセンターレベルの障害が発生した場合でも、他のデータセンター上のリソースによりサービスの稼働を継続するような構成とすることが可能になります。なお、可用性セットと可用性ゾーンは併用することはできません。
ペアリージョンは日本では東日本リージョンと西日本リージョンが相当します。ペアリージョンは上述の可用性セット・可用性ゾーンのような可用性担保を目的としておらず、ペアとなるリージョン間での Disaster Recovery (DR) あるいはバックアップを構成することによってビジネス継続性を向上することを目的としています。
可用性セットから可用性ゾーンへの切り替え
既に可用性セットを構築しているリソースについて、可用性ゾーンへ切り替える機能はサポートされていません。そのため、基本的には展開済のリソースについては一旦、削除した上で、可用性ゾーンを利用する構成で再展開する必要がある点にご注意ください。
Azure 可用性ゾーンのサポート対象
現時点で Azure 可用性ゾーンをサポートするリソースは以下です。
- Linux Virtual Machines
- Windows Virtual Machines
- Virtual Machine Scale Sets
- Managed Disks
- Load Balancer
- Public IP address
- Zone-redundant storage
- SQL Database
- Event Hubs
- Service Bus (Premium Tier Only)
- VPN Gateway
- ExpressRoute
- Application Gateway (preview)
IaaS VM に関して対応しているものを確認する際には以下の PowerShell コマンドレットで確認可能です。
Get-AzComputeResourceSku | Where-Object {$_.Locations.Contains("japaneast") -and $_.LocationInfo[0].Zones -ne $null}
Azure 可用性ゾーンを利用した構成の設計について
可用性ゾーン間の通信における Latency はオフィシャルには 2ms 以下、という扱いになります。
参考: https://blogs.msdn.microsoft.com/igorpag/2018/05/03/azure-availability-zones-quick-tour-and-guide/ (英語)
しかしながら、実際にはデータセンター間の通信になるため、同一データセンター内の通信と比較して Latency が大きくなる、つまりは応答に時間を要する傾向にあります。そのため、すべてのワークロード・構成で可用性ゾーンを利用することが必ずしも正しいわけではなく、例えば同期処理を行うような複数環境については同一データセンター内に配置するため、可用性ゾーンではなく可用性セットを使うことが望ましい場合があり得ます。可用性ゾーンは必ずしも万能ではなく、可用性セット・可用性ゾーン・ペアリージョンを組み合わせ、最適な構成とすることが重要です。
参考: https://docs.microsoft.com/ja-jp/azure/virtual-machines/workloads/sap/sap-ha-availability-zones
Azure の可用性ゾーンにおいては可用性ゾーン毎に仮想ネットワークのサブネットを分ける必要はありません。ネットワーク設計については柔軟な設計が可能であるため、可用性セット・可用性ゾーンをうまく使い分けていただき、また、必要に応じてペアリージョンを利用した冗長性構成も含めた構成とすることで、柔軟かつビジネス継続性の高い構成としていただくことが可能です。