Azure 可用性ゾーンは Azure リージョン内の障害から分離された場所であり、予備電源、冷却機能、ネットワーク機能が用意されています。 これらにより、データ センターの障害に対して高い可用性とフォールト トレランスを備えた環境でアプリケーションを実行できます。 可用性ゾーンをサポートする Azure リージョンには、少なくとも 3 つの個別のゾーンがあります。 各可用性ゾーンは、独立したインフラストラクチャ電源、ネットワーク、冷却設備を備えた 1 つ以上のデータ センターで構成されます。 可用性ゾーンは、ラウンドトリップ待ち時間が 2 ミリ秒未満のハイパフォーマンス ネットワークによって接続されます。 詳細については、「 可用性ゾーンの概要」を参照してください。
データセンター レベルの障害から仮想マシン スケール セットを保護するには、可用性ゾーン間でスケール セットを作成します。 可用性ゾーンを使用するには、サポートされている Azure リージョンにスケール セットを作成する必要があります。
可用性ゾーンの障害やその他の種類の障害に対するスケール セットの回復性の詳細については、「Azure Virtual Machine Scale Setsの信頼性」を参照してください。
可用性ゾーンのデプロイ オプションを選択する
Virtual Machine Scale Setsでは、3 つの可用性ゾーンのデプロイ オプションがサポートされています。 ゾーンを自分で選択したり、自動ゾーン配置を使用してAzure選択したり、ゾーン固定インスタンスを使用せずにリージョンデプロイを使用したりできます。
| 配置オプション | 構成 | ゾーン トポロジ | 誰がゾーンを選択しますか? | 次の場合に使用します。 |
|---|---|---|---|---|
| 顧客が選択したゾーン |
zonesなどの"zones": ["1", "2", "3"]を設定します。 |
1 つのゾーンを指定する場合はゾーン型、複数のゾーンを指定する場合はゾーン スパン。 | スケール セットで使用できるゾーンを選択します。 | ワークロードでは、特定の可用性ゾーンを使用する必要があります。 |
| ゾーンの自動配置 (プレビュー) |
placement.zonePlacementPolicy を "auto" に設定します。 |
既定では、Azureは、3 つのゾーンをターゲットとし、少なくとも 2 つのゾーンを必要とするゾーンスパン スケール セットを作成します。 単一ゾーン スケール セットを作成するには、 maxZoneCount を 1 に設定します。 |
Azureは、構成する制約内のゾーンを選択します。 | Azure で、容量と SKU の利用可能性に基づいてゾーンの選択が最適化されるようにしたい。 |
| 地域 (非ゾーン) |
zonesまたはゾーン配置ポリシーを指定しないでください。 |
リージョナル インスタンスは可用性ゾーンに固定されていません。 | 適用されません。 | ワークロードでは、ゾーン レベルの分離やゾーンのピン留めは必要ありません。 |
重要
同じスケール セットで、 zones プロパティと自動ゾーン配置の両方を構成することはできません。
お客様が選択したゾーンと自動ゾーン配置によって、単一ゾーンのスケール セットまたは複数ゾーンにまたがるスケール セットになる場合があります。 以降のセクションでは、これらのトポロジとリージョンデプロイについて詳しく説明します。
ゾーンの範囲拡張
ゾーンにまたがるスケール セットは、インスタンスを 2 つ以上の可用性ゾーンに分散させます。 この方法は、他のAzure サービスでのゾーン冗長デプロイに似ています。
既定では、選択したゾーン間でインスタンスが均等に拡散されるように、スケール セットはベスト エフォート アプローチで実行します。 ただし、デプロイで "zoneBalance": "true" を設定することにより、厳密なゾーン バランスを指定することができます。 各 VM とそのディスクはゾーン単位があるため、特定のゾーンに固定されます。 ゾーン間のインスタンスは、低遅延のハイパフォーマンス ネットワークで接続されます。 ゾーンの停止または接続の問題が発生した場合、影響を受けるゾーン内のインスタンスへの接続が侵害される可能性があります。一方、他の可用性ゾーン内のインスタンスは影響を受けません。 ゾーンの停止中にスケール セットに容量を追加し、スケール セットによって影響を受けないゾーンにインスタンスが追加される場合があります。 ゾーンが復元されると、スケール セットを元の容量までスケールダウンする必要が生じることがあります。 CPU またはメモリの使用量に基づいて自動スケーリング ルールを構成するのがベスト プラクティスです。 自動スケール ルールを作成すると、スケール セットは、その 1 つのゾーンでの VM インスタンスの喪失に、残りの動作しているゾーンに新しいインスタンスをスケールアウトすることによって、対応できるようになります。
インスタンスを可用性ゾーン全体に拡散させることで、可用性ゾーン全体に拡散されたインスタンスに対して 99.99% SLA が満たされるため、Azure のほとんどのワークロードに推奨されます。
ゾーン スパニング スケール セットは、自分で複数のゾーンを選択するか、自動ゾーン配置を使用して構成できます。 既定では、自動ゾーン配置は 3 つの可用性ゾーンを対象としており、少なくとも 2 つのゾーンが必要です。
ゾーン単位またはゾーン アライン (単一ゾーン)
ゾーンまたはゾーンに合わせたスケール セットでは、インスタンスが 1 つの可用性ゾーンに配置されます。 各 VM とそのディスクはゾーン単位があるため、特定のゾーンに固定されます。 この構成が主に使用されるのは、インスタンス間に低遅延が必要な場合です。
単一ゾーン スケール セットを構成するには、1 つのゾーンを自分で選択するか、 maxZoneCount を自動ゾーン配置で 1 に設定します。
地域 (非ゾーン)
リージョン (非ゾーン) 仮想マシン スケール セットは、ゾーン割り当てが明示的に設定されていない場合 ("zones"=[] または "zones"=null)。 この構成では、スケール セットはリージョン (ゾーン固定ではなく非ゾーン) インスタンスを作成し、リージョン全体にインスタンスを暗黙的に配置します。 ゾーン間のバランスや拡散、またはインスタンスが同じ可用性ゾーンに配置されることは保証されません。 ディスクのコロケーションは、Ultra および Premium v2 ディスクでは保証され、Premium V1 ディスクではベスト エフォートで提供されますが、Standard SKU (SSD または HDD) ディスクでは保証されません。
まれに、ゾーン全体が停止した場合、スケール セット内の任意またはすべてのインスタンスが影響を受ける可能性があります。
障害ドメインと可用性ゾーン
障害ドメインは可用性ゾーンまたはデータセンター内の障害分離グループであり、同じ電源、ネットワーク、冷却設備、プラットフォーム メンテナンス スケジュールを共有するハードウェア ノードで構成されます。 異なる障害ドメイン上にある VM インスタンスは、同じ計画的または計画外の停止の影響を受ける可能性が低くなります。 リージョンまたはゾーン内の障害ドメイン全体にインスタンスを拡散させる方法を指定できます。
- 最大拡散 (platformFaultDomainCount = 1)
- 固定拡散 (platformFaultDomainCount = 5)
- 記憶域ディスク障害ドメインに合わせた拡散を修正しました (platformFaultDomainCount = 2 または 3、リージョン (非ゾーン) デプロイの場合のみ)
最大拡散を選ぶと、スケール セットは各ゾーン内の可能な限り多くの障害ドメインに VM を拡散します。 この拡散では、ゾーンごとの障害ドメインが 5 個より多く、または少なくなる可能性があります。 静的固定拡散の場合、スケール セットにより、指定した数の障害ドメイン全体に VM が拡散されます。 割り当て要求を満たすために、スケール セットで指定した数以上の障害ドメイン数に割り当てることができない場合、要求は失敗します。
この方法ではほとんどの場合に最善の拡散を提供するので、ほとんどのワークロードでは最大拡散を使って展開することをお勧めします。 異なるハードウェア分離ユニットにレプリカを分散させる必要がある場合は、可用性ゾーン間で分散し、各ゾーン内の最大拡散を利用することをお勧めします。
Note
最大拡散では、VM が拡散される障害ドメインの数に関係なく、スケール セット VM インスタンス ビューおよびインスタンス メタデータには、既定の 1 つのドメインだけが表示されることに注意してください。 各ゾーン内の拡散は暗黙で行われます。
配置グループ
重要
配置グループは、均一オーケストレーション モードで実行されている仮想マシン スケール セットにのみ適用されます。
スケール セットをデプロイする場合は、可用性ゾーンごとに 1 つの 配置グループ を使用するか、ゾーンごとに複数の配置グループを使用してデプロイできます。 リージョン (非ゾーン) スケール セットの場合は、リージョンに 1 つの配置グループを含めるか、リージョンに複数の配置グループを含めるかを選択します。
singlePlacementGroup というスケール セット プロパティが false に設定されている場合、そのスケール セットは、複数の配置グループで構成することができ、0 から 1,000 個の VM が含まれます。 既定値の true に設定されている場合、スケール セットは 1 つの配置グループで構成され、0 から 100 個の VM が含まれます。 ほとんどのワークロードでは、より大きいスケールに対応できるので、複数の配置グループをお勧めします。 API バージョン 2017-12-01 では、スケール セットは、単一ゾーンスケール セットとクロスゾーン スケール セットでは既定で複数の配置グループに設定されますが、既定ではリージョン (非ゾーン) スケール セットの場合は 1 つの配置グループになります。
Note
最大拡散を使う場合は、複数の配置グループを使う必要があります。
ゾーン バランス
ゾーンの配置によって、スケール セットが新しいインスタンスを配置するときに使用できる可用性ゾーンが決まります。 ゾーン分散では、対象となるゾーンを選択した後に、それらのゾーン間でインスタンスを均等に分散する方法を制御します。
複数のゾーンにまたがるスケール セットの場合は、ベスト エフォートと厳密なゾーン分散のどちらかを選択します。 ゾーンの分散は、ゾーンを選択するか、自動ゾーン配置を使用するかに関係なく適用されます。 詳細については、「Virtual Machine Scale Setsでのゾーン分散」を参照してください。
ゾーンバランスは、 自動ゾーンバランスとは異なります。 ゾーン分散は、スケーリング操作中のインスタンスの分散を制御します。 自動ゾーン バランスでは、既存の不均衡を事前に検出し、プロビジョニング不足のゾーンに代替 VM を作成し、過剰にプロビジョニングされたゾーンから VM を削除することで修正します。
次のステップ
- 顧客が選択した可用性ゾーンを構成します。
- ゾーンの自動配置を構成します。
- Virtual Machine Scale Setsでのゾーン分散について説明します。
- 自動ゾーン バランスについて説明します。