USER MANUALS


オートスケーリングガイド

このマニュアルでは、 Microsoft Azure 内の自動スケーリング機能 の概要について、実行プレーンに関連付けられている 仮想マシンスケールセット を特定する方法、Solution Manager を構成する方法、および仮想マシンの動的なスケーリングを効果的に管理する方法に的を絞って説明します。

Azure では、 仮想マシンスケールセット (VMSS) を使用することで、負荷分散された自動スケーリング仮想マシンのグループを作成および管理できます。VMSS を定義すると、構成されているルールに基づいて Azure が VM インスタンスの作成と削除を処理します。リソースのスケーリングの動作は、[自動スケーリング設定] で定義および管理します。自動スケーリング設定には以下が含まれます。

  • プロファイル: スケーリングの動作を指定するルールと設定をまとめたもの。さまざまなシナリオ用に複数のプロファイルを使用できます (例: 平日用のプロファイル、週末用のプロファイル、特別なイベント用のプロファイルを 1 つずつ)。

  • ルール: スケールアウト (インスタンスの追加) またはスケールイン (インスタンスの削除) の操作をトリガーする条件。ルールはメトリックまたはスケジュールに基づきます。

  • メトリック: パフォーマンスカウンター (例: CPU 使用率、メモリ使用率、HTTP キューの長さ)、または Azure MonitorApplication Insights によって収集されるカスタムのアプリケーションメトリック。

  • インスタンスの制限: リソースをスケーリング可能なインスタンスの最小数、最大数、および既定の数。

仮想マシンスケールセットを使用してクラスタをデプロイする方法

Solution Manager を使用して Agora 実行プレーンサーバーをデプロイするには、2 つのモードがあります。 定義済みのテンプレートを使用する方法 、または [Manage Environments] オプションを使用して手動でデプロイする方法です。PoC および Production テンプレートを使用してデプロイする場合、Virtual DataPort と Data Marketplace 用の VMSS が Agora によって自動的に作成されます。手動でデプロイする場合は、 [Servers configuration] セクションで [Launch Instances in a Scale Set] チェックボックスを選択することができます。

Agora サーバーインスタンスを VMSS にデプロイすることを選択した場合は、適切なオートスケーリング戦略を選択することができます。

  • Basic: この場合、Solution Manager は、固定数のインスタンスで定義された VMSS を作成して管理します。この戦略では、インスタンスがダウンした場合、新しいインスタンスが自動的に作成され、グループに追加されることが保証されます。

  • Custom Azure Scale Set: デフォルトのオプション。この場合、Solution Manager は基本的なスケールセットを作成します。 Azure portal でこのセットをさらに構成して、特定のユーザー要件を満たすことができます。

Enable Scale Set

スケールセットの名前を特定する方法

Solution Manager の [Overview] セクションinfo ボタンを選択すると、クラスタの概要を確認できます。概要には、以下の例のように、割り当てられたスケールセットの名前を含む、サーバーの詳細を表示する Virtual DataPort (VDP) と Data Marketplace のタブが含まれています。

Azure Cluster Summary

自動スケーリングの構成例

次に 2 つの例を挙げて、以下の目的で自動スケーリング戦略を構成するために必要な手順について説明します。

  1. 週末にすべてのインスタンスを停止する。

  2. ワークロードのピーク時に動的に容量を増加する。Virtual DataPort のスケールセットに属するインスタンスの合計 CPU 使用率が約 70% になるようにします。

仮想マシンスケールセットは Azure portal で構成できます。Virtual DataPort VMSS の名前 (前のセクションで説明した方法で特定します) を使用して、 Azure portal でその詳細を見つけて編集することができます。

自動スケーリングルールの構成については、 Azure のドキュメント でより詳細に説明されています。

A. 週末にすべてのインスタンスを停止する

コストを削減するために、処理を行う必要がない週末にすべてのインスタンスを停止するように構成できます。Virtual Data Port (VDP) のインスタンスを停止して適切な時刻に再開するには、スケジュールベースのスケーリング戦略を使用します。

このプロセスでは、仮想マシンスケールセットの自動スケーリング設定内に、特定の時刻または曜日のスケーリングの動作を指定する プロファイル を定義する必要があります。

構成手順:

  1. Azure portal で、使用する仮想マシンスケールセットに移動します。構成する特定の仮想マシンスケールセットを見つけてクリックします

  2. 左側のメニューの [可用性とスケール] セクションで、[Scaling] をクリックします。

  3. [リソースをスケーリングする方法を選択します] オプションで [カスタム自動スケーリング] が選択されていない場合は、変更します。

  4. すでに存在する 既定 のスケーリング条件が表示されます。この条件は、他のスケジュールされたルールがアクティブではない場合に適用されます。

  5. スケジュールベースのルールを追加するには、[スケール条件の追加] をクリックします。新しいプロファイルが表示されます。

  6. スケジュールのプロファイルを構成します。

    1. 新しい条件に、わかりやすい プロファイル名 を付けます。たとえば、「 Weekend Scale Down 」とします。

    2. スケジュール期間中に固定数の VM インスタンスを使用するために、[スケール モード] で [特定のインスタンス数にスケーリングする] を選択します。

    3. [インスタンス数] に、このスケジュールされた期間中に必要な VM インスタンスの数として、「 0 」を入力します。

    4. [スケジュール] は、スケジュールベースのスケーリングの重要な部分です。[特定の日数を繰り返す] を選択し、このルールをアクティブにする特定の曜日として、[土曜日] と [日曜日] をチェックします。

    5. 適切な タイムゾーン を選択します。これを業務時間に一致させることが重要です。

    6. 選択した曜日/日付にこの条件をアクティブにする 開始時刻終了時刻 を定義します。[開始時刻] を土曜日の 00:00 に設定し、[終了時刻] を日曜日の 23:59 に設定します。

      Schedule Profile
  7. 既定 のスケーリング条件が正しく構成されていることを確認します。この条件は、スケジュールされたどの特定の条件にも一致しない場合にアクティブになります。

  8. スケジュールされたプロファイルが重複しないようにしてくだい。重複していると、予測不可能な動作が発生する可能性があります。Azure では、より具体的なスケジュールが設定された条件が優先されます。

  9. スケーリング条件を構成したら、[スケーリング] ブレードの上部にある [保存] ボタンをクリックします。

B. ワークロードのピーク時に動的に容量を増加する

これは、ワークロードの変動があるアプリケーションで一般的なシナリオであり、ピーク期間中にパフォーマンスを確実に維持します。すべてのインスタンスの平均 CPU 使用率が 5 分間 70% を超えた場合、1 インスタンス分、スケールアウトします。平均 CPU 使用率が 10 分間 30% を下回った場合は、1 インスタンス分、スケールインします。

VM スケールセットの Azure portal での構成手順

  1. Azure portal で、使用する仮想マシンスケールセットに移動します。構成する特定の仮想マシンスケールセットを見つけてクリックします。

  2. 左側のメニューの [可用性とスケール] セクションで、[Scaling] をクリックします。

  3. [リソースをスケーリングする方法を選択します] オプションで [カスタム自動スケーリング] が選択されていない場合は、変更します。

  4. すでに存在する 既定 のスケーリング条件が表示されます。この条件は、他のスケジュールされたルールがアクティブではない場合に適用されます。

  5. [スケール条件の追加] をクリックします。新しいプロファイルが表示されます。この 既定 のプロファイルを変更することもできます。

  6. プロファイルを構成します。

    1. 新しい条件に、わかりやすい プロファイル名 を付けます。

    2. [スケール モード] で、[メトリックに基づいてスケーリングする] を選択します。

    3. [インスタンスの制限] を設定します (例: 最小: 1、最大値: 10、既定: 2)。

    4. 新しい スケールアウトルール を追加します。

      • メトリック ソース: 現在のスケールセット

      • メトリック名: Percentage CPU

      • 演算子: より大きい

      • スケール操作をトリガーするメトリックのしきい値: 70

      • 期間 (分): 5

      • 時間グレインの統計: 平均

      • 時間の集計: 平均

      • 操作: カウントを増やす量

      • クール ダウン (分): 5

      • インスタンス数: 1

      • [追加] ボタンをクリックします。

      Scale out rule
    5. 新しい スケールインルール を追加します。

      • メトリック ソース: 現在のスケールセット

      • メトリック名: Percentage CPU

      • 演算子: より小さい

      • スケール操作をトリガーするメトリックのしきい値: 30

      • 期間 (分): 10

      • 時間グレインの統計: 平均

      • 時間の集計: 平均

      • 操作: カウントを減らす量

      • クール ダウン (分): 10

      • インスタンス数: 1

      • [追加] ボタンをクリックします。

      Scale in rule
  7. [スケーリング] ブレードの上部にある [保存] ボタンをクリックします。

Azure の自動スケーリングのベストプラクティス

  • 明確な最小インスタンス数と最大インスタンス数を定義します。必ず、適切な 最小最大 の制限を設定し、オーバープロビジョニングやアンダープロビジョニングを防ぎます。最小数と最大数の間に十分なマージンを設け、スケーリング操作が確実に発生するようにします。

  • スケールアウトルールとスケールインルールを両方とも実装し、コストを効果的に管理してパフォーマンスを確保できるようにします。必ず、インスタンスを増やすためのルールと減らすためのルールの両方を設定します。

  • スケールアウトとスケールインに同じメトリックを使用して、 フラッピング (急激で不必要なスケーリング) を防ぎます。一般的には、スケールアウトルールとスケールインルールの両方に同じメトリック (例: CPU) を使用することをお勧めします。

  • CPU などのメトリックに適した集計方法を選択します。ほとんどの場合、全体的な負荷に基づいてスケーリング操作をトリガーするのに最も適した集計方法は、[平均] です。

  • 現実的なクールダウン期間を設定します。これにより、新しいインスタンスが開始してから安定するまで、または負荷が低下するまで十分な時間を置いてから、後続のスケーリング操作をトリガーできます。

  • 負荷テストを実施してスケーリングルールをテストします。これにより、さまざまなトラフィックパターンをシミュレートし、自動スケーリングルールが予期したとおりに動作することを確認します。

Add feedback