みなさん、こんにちは!依田です。
Azure は日々進化しており、毎週新しいサービスや機能が提供されています。
先日、既存の仮想マシンスケール セット (VMSS) をゾーン拡張することができる機能が追加されました。
本記事では、その方法を紹介します。
仮想マシンスケール セット (以下VMSS) とは、アプリケーションの使用量に応じて仮想マシンをスケール アウトし可用性を向上させることができ、複数の仮想マシンを一元管理することができるサービスです。
今回、既存のVMSSをゾーン拡張することができる機能が追加されました。
該当の更新情報の記事は以下になります。
Public preview: Azure VMSS Zonal Expansion
リージョン構成されている既存のVMSS (リージョン可用性 SLA (99.95%) )から、さらに高い可用性の構成に変更したい場合、
この機能を利用しVMSSをゾーン拡張することにより、選択されたゾーン間にインスタンスが均等に分散され、 ゾーン可用性 SLA (99.99%) の構成に変更することができます。
従来はリージョン構成されている既存VMSSをゾーン拡張させるためにはVMSSとアプリケーションを再作成する必要がありましたが、この機能を利用することにより、その必要無くアプリケーションのダウンタイム無しでVMSSをゾーン拡張することができます。
この機能は、既にゾーンが定義されているVMSSから複数のゾーンに定義する際も利用可能です。
※この機能は、ステートフル ワークロードを含むスケール セットはサポートされていません。
※Service Fabric または Azure Kubernetes Service を実行しているスケール セットはサポートされていません。
※VMSSの構成時に定義したゾーンや、この機能で追加したゾーンを削除することはできません。
※障害ドメインが 2 または 3 による固定拡散のスケール セットはサポートされていません。障害ドメインは 1 または 5 に設定する必要があります。
検証に必要なリソースのパラメータは以下になります。
No. | リソース | 設定項目 | パラメータ | 備考 |
---|---|---|---|---|
1 | Virtual Machine Scale Sets (vmss1) |
|
|
-- |
2 | Virtual Machine Scale Sets (vmss2) |
|
|
-- |
2 | Virtual Machine Scale Sets (vmss3) |
|
|
-- |
ケース 1 では、可用性ゾーンなしで構成した VMSS1 をゾーン拡張してみます。
Azure CLI を利用し、ゾーン パラメーターを 1, 2, 3 に変更します。
実行後、「最新の情報に更新」を選択したところ、ダウンタイム無くゾーン 1, 2, 3 が追加されました。
ケース 2 では、可用性ゾーンを 1 で構成した vmss2 を複数のゾーンに拡張してみます。
Azure CLI を利用し、ゾーン パラメーターを 1, 2, 3 に変更します。
実行後、「最新の情報に更新」を選択したところ、ダウンタイム無くゾーン 1, 2, 3 が追加されました。
ケース 3 では、可用性ゾーンを 1, 2, 3 で構成した vmss3 をゾーン 1 に縮小してみます。
Azure CLI を利用し、ゾーン パラメーターを 1 に変更します。
実行できませんでした。
ゾーンを縮小することは、仕様としてできないようです。
同一ゾーンに展開したVMSS内の仮想マシン同士のレイテンシと、別のゾーンに展開したVMSS内の仮想マシン同士のレイテンシをPingで比較した結果、平均的な速度の差は見られませんでした。
※ 本記事ではPingでの簡易的な確認となりますが、実際の構成はデータセンターをまたいだ通信となり、レイテンシに影響を及ぼす可能性があるため、シビアな通信要件が求められる構成の場合は注意が必要です。
この機能を利用することにより、ダウンタイム無くスケール セットの可用性と回復性を高めることができます。具体的には、リージョンの可用性 SLA (99.95%) よりも高いゾーン可用性 SLA (99.99%) の利用や、
ゾーン (1 つのゾーンを定義) から複数のゾーンを定義することが可能になります。
また、可用性ゾーンがサポートされていない時期に作成したリージョン スケール セットをダウンタイムなくゾーン冗長構成に変更できることや、
スケール セットを拡張して、スケール セットの作成時に使用できなかった新しい可用性ゾーンを利用することもできます。
VMSSを利用する上で、可用性とそれに伴う信頼性を高く保つことを目標とした際、この機能は有用だと感じました。