可用性セットと可用性ゾーン
VM を可用性セットにデプロイするか、可用性ゾーンに分散してデプロイし、同時障害を防ぐ障害ドメインと更新ドメインのモデルを理解します。
「可用性セットと可用性ゾーン」はCoddyKit上の無料Cloud & IT Cert Prepレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCloud & IT Cert Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
VM に冗長性が重要な理由
単一の Azure Virtual Machine は、ハードウェア障害、OS の更新、計画メンテナンス イベントの影響を受けやすくなります。Azure には、こうした中断から VM ワークロードを保護する 2 つの仕組みとして、Availability SetsとAvailability Zonesがあります。両者の違いと使い分けを理解することは、信頼性の高い Azure VM アーキテクチャを設計するうえで不可欠です。
可用性セットとは
Availability Setは、1 つの Azure データセンター内にある VM を論理的にグループ化したものです。VM を可用性セットに配置すると、Azure は VM を複数の障害ドメイン(電源とネットワークのラックを分離した単位)と更新ドメイン(メンテナンス中に一度に再起動されるグループ)に分散します。これにより、ハードウェア障害と計画的な再起動の両方から保護できます。
# Create an availability set:
az vm availability-set create \
--resource-group myRG \
--name myAvailabilitySet \
--platform-fault-domain-count 2 \
--platform-update-domain-count 5障害ドメインと更新ドメイン
障害ドメインは、同じ物理ハードウェア(電源とネットワーク スイッチ)を共有する VM のグループを表します。Azure は VM を最大 3 つの障害ドメインに分散し、電源やラックの障害ですべての VM が同時に停止しないようにします。更新ドメインは、Azure プラットフォームのメンテナンス中にまとめて再起動される VM のグループを表します。Azure では最大 20 個の更新ドメインがサポートされ、一度に再起動されるのは 1 つのドメインだけです。
# Example: 4 VMs in an availability set with 2 fault domains and 5 update domains:
# VM1: Fault Domain 0, Update Domain 0
# VM2: Fault Domain 1, Update Domain 1
# VM3: Fault Domain 0, Update Domain 2
# VM4: Fault Domain 1, Update Domain 3
# At most 2 VMs can be affected by a single fault or update event可用性セットの SLA
2 台以上の VM を可用性セットに配置すると、Microsoft の99.95% SLAの対象になります。これは、単一 VM の 99.9% SLA と比べて大幅な向上です。可用性セットは無料で、支払うのは VM 自体の料金だけです。データセンターが同じであっても許容できるワークロードに適していますが、データセンター全体の停止からは保護できません。
可用性ゾーンとは
Availability Zonesは、同じ Azure リージョン内にある物理的に分離されたデータセンターです。各ゾーンには独立した電源、冷却設備、ネットワークがあります。可用性ゾーンをサポートする Azure リージョンには、少なくとも 3 つのゾーンがあります。VM を可用性ゾーンにまたがってデプロイすると、データセンター全体の障害から保護でき、可用性セットよりもはるかに強固な保証を得られます。
# Deploy a VM to availability zone 1:
az vm create \
--resource-group myRG \
--name webVM1 \
--image Ubuntu2204LTS \
--zone 1
# Deploy a second VM to availability zone 2:
az vm create \
--resource-group myRG \
--name webVM2 \
--image Ubuntu2204LTS \
--zone 2可用性ゾーンのSLA
異なる可用性ゾーンに2台以上のVMをデプロイすると、Azure VMで利用できる最高水準の99.99%のSLAが適用されます。これは、ゾーン全体が停止した場合(データセンターの障害や電力網の障害など)でも、他のゾーンのVMは稼働を続けられるためです。ただし、ゾーン間のデータ転送には少額のコストがかかり、ゾーンは同じリージョン内にあります。
可用性セットと可用性ゾーンの比較
要件に応じて、次の2つの選択肢から選びます。
- 可用性セット — 同じデータセンター内で、ハードウェア障害や計画メンテナンスから保護します。SLAは99.95%です。ゾーンがリージョンで利用できない場合や、レガシーシステムのリフトアンドシフト移行で使用します。
- 可用性ゾーン — 同じリージョン内の異なるデータセンターに配置し、データセンター障害から保護します。SLAは99.99%です。ゾーンがサポートされている場合は、すべての新しい本番ワークロードで使用します。
ゾーン冗長サービス
多くのAzure PaaSサービスは、リソースをゾーン間に手動で分散しなくてもゾーン冗長デプロイをサポートします。例として、Azure SQL Database Business Critical層、Azure Cache for Redis Premium、Azure Kubernetes Service、Azure Load Balancer Standardなどがあります。ゾーン冗長性を有効にすると、サービスがレプリカをゾーン間に自動的に分散します。
# Create a zone-redundant Azure SQL Database:
az sql db create \
--resource-group myRG \
--server mySqlServer \
--name myDatabase \
--service-objective 'BusinessCritical' \
--zone-redundant trueゾーン間の負荷分散
VMを可用性ゾーン間に分散する場合は、任意のゾーンにあるVMへトラフィックを振り分けられるロードバランサーが必要です。Azure Load Balancer Standard(既定でゾーン冗長)またはAzure Application Gateway v2を使用して、ゾーンに分散されたVMへトラフィックを振り分けます。これらのサービスは正常性プローブをサポートしており、応答しなくなったVMへのトラフィック送信を自動的に停止します。
# Create a Standard Load Balancer (zone-redundant):
az network lb create \
--resource-group myRG \
--name myLoadBalancer \
--sku Standard \
--public-ip-address myPublicIPリージョンのゾーンサポートの確認
すべてのAzureリージョンが可用性ゾーンをサポートしているわけではありません。少なくとも3つのゾーンが保証されているのは、推奨リージョンに指定されたリージョンだけです。ゾーンに依存するアーキテクチャを設計する前に、Azure CLIまたはポータルを使用して、対象リージョンでゾーンが利用可能か確認してください。ゾーンを利用できない場合は、可用性セットが代替手段になります。
# Check which zones are available in a region:
az vm list-skus \
--location eastus \
--size Standard_D2s_v3 \
--output table
# The output shows which availability zones support the chosen VM sizeゾーンによるコストへの影響
可用性ゾーン自体は無料で使用でき、料金が発生するのはゾーンにデプロイしたリソースに対してのみです。ただし、同じリージョン内のゾーン間のデータ転送には、GB単位の料金がかかります。ほとんどのアプリケーションではこのコストはわずかですが、高帯域幅のワークロード(動画処理など)では、アーキテクチャ設計時にゾーン間の転送コストを考慮する必要があります。
理解度チェック
このレッスンで扱ったMicrosoft Azure Fundamentals(AZ-900)の概念について、理解度を確認します。
レッスンのまとめ
このレッスンでは、次のことを学びました。可用性セットは、障害ドメインと更新ドメインによって、単一のデータセンター内にあるVMを保護します(SLA 99.95%)。可用性ゾーンは、リージョン内の別々のデータセンターにVMを分散します(SLA 99.99%)。また、ゾーン冗長PaaSサービスは、この分散を自動的に処理します。次は、さらに高い可用性を実現するマルチリージョンのアクティブ-アクティブアーキテクチャについて学びます。
よくある質問
「可用性セットと可用性ゾーン」レッスンは無料ですか?
はい。「可用性セットと可用性ゾーン」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cloud & IT Cert Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
「可用性セットと可用性ゾーン」で何を学びますか?
VM を可用性セットにデプロイするか、可用性ゾーンに分散してデプロイし、同時障害を防ぐ障害ドメインと更新ドメインのモデルを理解します。 ブラウザで直接実行するハンズオンコードでCloud & IT Cert Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cloud & IT Cert Prepを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCloud & IT Cert Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「可用性セットと可用性ゾーン」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCloud & IT Cert Prepレッスンでコードを書いて実行できますか?
はい。すべてのCloud & IT Cert Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。