はじめに

くどうです。

最近、よく聞かれることがあります。「AWSではEC2を冗長化する場合、Availability ZoneだけどAzureだとどうやるの?」って。
では、おさらいを含めて少しだけ解説していきたいと思います。

AWSでの冗長化

AWSではAvailability Zoneを利用します。読んで字のごとく可用性のゾーンを示します。

af01

まず、リージョン。これは物理的に完全に離れた個所を示します。つまり、大災害が起こっても問題ないレベルの距離が保たれています。
例えば、東京とシンガポールなど国をまたがることが多いです。アメリカは広いのでリージョンが複数あります。

更に、リージョン内で分割されるのがAvailability Zoneになります。Availability Zoneを分けることで、同時に障害が発生することは基本的にありません。
ただし、リージョン障害の場合にはこの範囲内ではありません。

http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-available-regions

また、EC2の99.95%SLAは「同一地域(Region)内で、サービス利用者がインスタンスを実行している複数のAvailability Zoneが、サービス利用者にとって「使用不能」となることをいう。」と書いてあります。つまりマルチAZで構築し2台以上の場合のみ適用されるということです。

https://aws.amazon.com/jp/ec2/sla/

Azureでの冗長化

Azureでも仮想マシンを物理的に冗長化することは可能です。可用性セットを利用します。
注意しなければならないのがEC2同様、仮想マシンのSLA99.95%保証は可用性セットで2台以上を利用することを前提としています。

https://azure.microsoft.com/ja-jp/support/legal/sla/virtual-machines/v1_2/

af02

可用性セットはリージョン内に作成されるものでAWSのAvailability Zoneを同等の機能をはたします。障害ドメインと更新ドメインをさらに分かれているのも特徴的です。
以下は更新ドメイン=2、障害ドメイン=2で構成した場合になります。

af03

更新ドメインとは、アップデートなどで同時に更新される範囲になります。
障害ドメインとは、物理的に異なるハードウェアの範囲になります。Availability Zoneはこちらに近いです。
更新ドメインと障害ドメインを確認することで、どの仮想マシンが同時に障害発生するか、アップデートにより再起動されるかが一目瞭然となり、設計しやすいかと思います。

https://azure.microsoft.com/ja-jp/documentation/articles/virtual-machines-windows-manage-availability/

実際に2台の仮想マシンを可用性セットに登録した場合は動的に割り当てられます。

af04

また、ロードバランサーと可用性セットを組み合わせることで負荷分散ができ、AWSのELBと同じことができます。
要は、AWSで出来ることはAzureでも簡単にできます。

まとめ

Azureでも、AWSでいうはAvailability Zoneを可用性セットを利用し実現することができます。仮想マシンを立てる場合は、とりあえず可用性セットを追加することをお勧めします。
可用性セットは使いどころは多いです。慣れておくことをお勧めします。

ではでは

元記事はこちら

AzureとAWSにおけるIaaS可用性の違いを少しだけおさらい。