Azure Virtual Machine Scale Sets のしくみ

完了

Azure Virtual Machine Scale Sets では、負荷分散が行われる VM のグループを作成して管理することができます。 仮想マシン (VM) インスタンスの容量または数は、構成したスケジュールに応じて、または定義したパフォーマンス メトリックに達したときに自動的に増減させることができます。 仮想マシン スケール セット内の VM インスタンスの構成は、同じでも、異なっていてもかまいません。

Virtual Machine Scale Sets により、アプリケーションに高可用性とスケーリングが提供されます。 Virtual Machine Scale Sets を使うと、多数の VM を一元的に管理、構成、更新できます。 Virtual Machine Scale Sets を使用すると、コンピューティング、ビッグ データ、コンテナー ワークロードなどの分野で大規模なサービスを構築できます。

スケール セットは、コスト効率性、スケーラビリティ、信頼性を向上させるように設計されています。 新しい VM インスタンスは、必要な場合にのみ作成され、不要になったときに削除されます。 新しいインスタンスが必要になると、それらのインスタンスは、インスタンスとアプリケーションを構成するためのテンプレート イメージから生成されます。 Azure Virtual Machine Scale Sets では、1 つのスケール セットで最大 1,000 個の VM を実行できます。

スケール セットのスケーリング

Virtual Machine Scale Sets は、ワークロードの変動に対してすばやく仮想マシンを作成して管理する必要性に対応します。 スケール セットには、次の 2 種類のスケーリングを構成することができます。

  • スケジュール スケーリング: 1 個または N 個の追加インスタンスをデプロイしてトラフィックの急増に対応し、急増が終わったらスケールダウンして戻すように、スケール セットを事前にスケジュールできます。

  • 自動スケーリング: ワークロードが変化し、常にスケジュールできるとは限らない場合は、メトリック ベースのしきい値のスケーリングを使用することができます。 自動スケーリングでは、ノードの使用量に基づいてスケールアウトされます。 その後、リソースがベースラインに戻ったらスケールバックします。

自動スケールは、一連のスケール条件、ルール、および制限に基づいています。 スケーリング条件は、時刻と一連のスケール ルールを組み合わせたものです。 現在の時刻がスケーリング条件で定義されている期間内にある場合、条件のスケール ルールが評価されます。 この評価の結果で、スケール セット内のインスタンスを追加するか削除するかが判断されます。

スケーリング条件では、インスタンスの最大数と最小数に対するスケーリングの制限も定義します。 メトリックの最大数を制限することで、計画されていないトラフィックの急増で予期しないサブスクリプション料金が自動的に請求されないように、作成される VM の数を制限できます。

以下を基にして自動スケーリングを行うことができます。

  • スケジュール: 特定の日付または期間にワークロードが増加することがわかっている場合は、この方法を使用します。 スケジュール ベースのスケーリングでは、開始時刻と終了時刻、およびスケール セットに追加するインスタンスの数を指定します。

  • メトリック: スケール セットに関連付けられているパフォーマンス メトリックを監視することによって、スケーリングを調整します。 これらのメトリックが指定したしきい値を超えたら、スケール セットで新しい仮想マシン インスタンスを自動的に開始できます。 追加リソースが不要になったことがメトリックで示されたら、スケール セットの余分なインスタンスを停止できます。

仮想マシン スケール セットの監視によく使用されるメトリックは次のとおりです。

  • CPU 使用率: このメトリックでは、すべてのインスタンスの CPU 使用率が示されます。 この値が高い場合、インスタンスが CPU バインドになっていることを示し、クライアント要求の処理が遅れる可能性があります。

  • 受信フローと送信フロー: これらのメトリックでは、スケール セット内の仮想マシンに出入りするネットワーク トラフィックの速度が示されます。

  • 1 秒あたりのディスク読み取り操作数と 1 秒あたりのディスク書き込み操作数:これらのメトリックでは、スケール セット全体のディスク I/O の量が示されます。

  • データ ディスク キューの深さ – このメトリックは、仮想マシン上のデータ ディスクのみに対する I/O 要求のうち、処理待機中の数を示します。

仮想マシン スケール セットには、多くのスケーリング条件を含めることができます。 一致する各スケーリング条件が処理されます。 スケール セットには、現在の時刻とパフォーマンス メトリックに一致する他のスケーリング条件がない場合に使用される、既定のスケーリング条件を含めることもできます。

既定のスケーリング条件は、常にアクティブです。 スケール ルールは含まれず、スケールインもスケールアウトもしない無効なスケール条件のように動作しますが、既定のスケール条件を変更して既定のインスタンス数を設定したり、スケールアウト後に再びスケールインして元に戻すスケール ルールのペアを追加したりできます。

Azure スポット インスタンスを使用したスケール セット

Azure スポット インスタンス VM で構成される仮想マシン スケール セットを使うと、Azure のコンピューティング リソースを最大 80% 少ないコストで使用できます。 グローバル Azure インフラストラクチャでは、使用率の低いコンピューティング リソースが利用可能になることが頻繫にあります。 スポット インスタンスを使用したスケール セットでは、このように使用されていないコンピューティング機能を使用してコストを削減できます。

注意

これらの VM を使用するときは、一時的なものであることに注意してください。 利用できるかどうかは、サイズ、リージョン、時刻などによって異なります。 これらの VM には SLA はありません。

Azure でそのコンピューティング能力が再び必要になると、その VM がスケール セットから削除されたという通知が届きます。 スポット インスタンスをスケール セットで使用すると、実行中に中断のあるワークロードや、非常に低いコストでより大きな VM を使用する必要がある場合に便利です。 VM が削除されるタイミングを制御できないことにだけは注意してください。

Virtual Machine Scale Sets と手動 VM プールの違い

スケール セットは、仮想マシンをベースに構築されます。 スケール セットには、アプリケーションの実行とスケーリングを行うための管理レイヤーと自動化レイヤーがあります。 Virtual Machine Scale Sets が利用できるようになるまでは、組織は頻繫に個々の VM を手動で作成して管理したり、既存のツールを統合して同様のレベルの自動化を構築したりしていました。

この表では、複数の VM インスタンスを手動で管理する場合と比較した、スケール セットの利点をまとめています。

シナリオ 手動の VM グループ Virtual Machine Scale Sets
追加の VM インスタンスを追加する 作成、構成、コンプライアンスの遵守が手動プロセス 一元化された構成から自動で作成
トラフィックのバランス調整と分散 Azure Load Balancer または Application Gateway の作成と構成が手動プロセス Azure Load Balancer または Application Gateway の作成と統合を自動で実行可能
高可用性と冗長性 可用性セットの作成、または可用性ゾーンでの VM の分散および追跡が手動 可用性ゾーンまたは可用性セットでの VM インスタンスの自動分散
VM のスケーリング 手動による監視と Azure Automation ホスト メトリック、ゲスト内メトリック、Application Insights、またはスケジュールに基づいた自動スケーリング