Azure portal で仮想マシン スケール セットを自動的にスケーリングする

スケール セットを作成するときに、実行する VM インスタンスの数を定義します。 アプリケーションの需要の変化に応じて、VM インスタンスの数を自動的に増減することができます。 自動スケールにより、顧客のニーズに対応したり、アプリのライフサイクル全体でアプリケーション パフォーマンスの変化に対応したりできます。

この記事では、Azure Portal を使用して、スケール セット内の VM インスタンスのパフォーマンスを監視する自動スケール ルールを作成する方法を示します。 これらの自動スケール ルールは、これらのパフォーマンス メトリックに応じて VM インスタンスの数を増減します。 これらの手順は、Azure PowerShell または Azure CLI を使用して実行することもできます。

前提条件

自動スケール ルールを作成するには、既存の仮想マシン スケール セットが必要です。 スケール セットは、Azure portalAzure PowerShell、または Azure CLI を使用して作成できます。

自動的にスケールアウトするルールの作成

アプリケーションの需要が増加すると、スケール セット内の VM インスタンスに対する負荷が増加します。 この増加した負荷が短期的な需要ではなく持続したものである場合は、スケール セット内の VM インスタンスの数を増やす自動スケール ルールを構成できます。 これらの VM インスタンスが作成され、アプリケーションがデプロイされると、スケール セットはロード バランサーを通じてそれらへのトラフィックの分散を開始します。 監視するメトリック (CPU やディスクなど)、指定されたしきい値をアプリケーションの負荷が満たす必要がある期間、およびスケール セットに追加する VM インスタンスの数を制御します。

  1. Azure Portal を開き、ダッシュボードの左側のメニューから [リソース グループ] を選択します。

  2. スケール セットが含まれるリソース グループを選択し、リソースの一覧からスケール セットを選択します。

  3. スケール セット ウィンドウの左側のメニューから [スケーリング] を選択します。 [カスタム自動スケーリング]ボタンを選択します。

    Azure Portal で自動スケールを有効にする

  4. [ルールの追加]オプションを選択します。 Azure portal で自動スケール ルールを追加する

  5. CPU に対する負荷の平均が 10 分間に 70% を上回った場合にスケール セット内の VM インスタンスの数を増やすルールを作成してみましょう。 ルールがトリガーされると、VM インスタンスの数が 20% 増加します。 VM インスタンスの数が少ないスケール セットでは、 [操作][カウントを増やす量] に設定し、 [インスタンス数]1 または 2 を指定します。 VM インスタンス数が多いスケール セットでは、VM インスタンスを 10% または 20% 増やすとより適切になる場合があります。

    ルールの次の設定を指定します。

    パラメーター 説明
    時間の集計 分析のために収集したメトリックの集計方法を定義します。 Average
    メトリック名 スケール セット アクションを監視して適用するパフォーマンス メトリック。 Percentage CPU
    時間グレインの統計 各時間グレインで収集したメトリックを分析のために集計する方法を定義します。 Average
    [オペレーター] しきい値に対してメトリック データを比較するために使用する演算子。 より大きい
    しきい値 自動スケール ルールがアクションをトリガーするパーセンテージ。 70
    Duration メトリックとしきい値を比較する前に監視する時間。 クール ダウン期間は含まれません。 10 分
    操作 ルールが適用されたときにスケール セットのスケールアップまたはスケールダウンを実行するどうか、およびその増分値を定義します。 パーセントを増やす量
    インスタンス数 ルールがトリガーされたときに VM インスタンスのパーセンテージを変更する必要があります。 20
    クール ダウン (分) 自動スケール アクションを有効にする時間を稼ぐため、ルールを再度適用する前に待機する時間。 5 分

    次の例は、これらの設定に一致する、Azure Portal で作成したルールを示しています。

    VM インスタンスの数を増やす自動スケール ルールを作成する

    Note

    インスタンス内で実行されているタスクは突然停止し、インスタンスはクーリング期間が完了するとスケールダウンされます。

  6. ルールを作成するには、 [追加] を選択します。

自動的にスケールインするルールの作成

夜間や週末は、アプリケーションの需要が低下する可能性があります。 この低下した負荷が一定期間持続する場合、スケール セット内の VM インスタンスの数を減らす自動スケール ルールを構成できます。 このスケールイン アクションによって、現在の需要を満たすのに必要な数のインスタンスのみが実行されるようになるため、スケール セットの実行コストが削減されます。

  1. もう一度ルールを追加するオプションを選択します。

  2. CPU に対する負荷の平均が 10 分間に 30% を下回った場合にスケール セット内の VM インスタンスの数を減らすルールを作成します。 ルールがトリガーされると、VM インスタンスの数が 20% 減ります。

    前のルールと同じ方法を使用します。 ルールの次の設定を調整します。

    パラメーター 説明
    [オペレーター] しきい値に対してメトリック データを比較するために使用する演算子。 より小さい
    しきい値 自動スケール ルールがアクションをトリガーするパーセンテージ。 30
    操作 ルールが適用されたときにスケール セットをスケールアップするかスケールダウンするかと、その差分を定義します パーセントを減らす量
    インスタンス数 ルールがトリガーされたときに VM インスタンスのパーセンテージを変更する必要があります。 20
  3. ルールを作成するには、 [追加] を選択します。

自動スケールのインスタンス制限の定義

自動スケール プロファイルでは、VM インスタンスの最小数、最大数、既定の数を定義する必要があります。 これらのインスタンス制限を設定することで、自動スケール ルールが適用されたときにインスタンスの最大数を超えるスケールアウトやインスタンスの最小数を超えるスケールインが行われないようにします。

  1. 次のインスタンス制限を設定します。

    最小値 最大値 Default
    2 10 2
  2. 自動スケール ルールとインスタンス制限を適用するために、 [保存] を選択します。

スケール セット内のインスタンスの数の監視

VM インスタンスの数と状態を確認するには、スケール セット ウィンドウの左側のメニューから [インスタンス] を選択します。 スケール セットが自動的にスケールアウトされているときは VM インスタンスの状態が [Creating](作成中) と示され、スケール セットが自動的にスケールインされているときは [Deleting](削除中) と示されます。

スケール セットの VM インスタンスの一覧を表示する

スケジュールに基づいた自動スケール

前の例では、CPU 使用率などの基本的なホスト メトリックを使用して、スケール セットを自動的にスケールインまたはスケールアウトしました。 スケジュールに基づく自動スケール ルールを作成することもできます。 これらのスケジュール ベースのルールを使用すると、アプリケーションの需要の増加が予想されるコアタイムなどの前に VM インスタンスの数を自動的にスケールアウトしたり、週末などの需要の低下が見込まれる時間にインスタンスの数を自動的にスケールインしたりできます。

  1. スケール セット ウィンドウの左側のメニューから [スケーリング] を選択します。

  2. [Add a scale condition](スケール条件の追加) を選択します。 ルール名の横にある鉛筆アイコンを選択し、Scale out during each work day などの名前を付けます。

    既定の自動スケール ルールの名前を変更する

  3. [特定のインスタンス数にスケーリングする] ラジオ ボタンを選択します。

  4. インスタンス数をスケールアップするために、インスタンス数として 10 を入力します。

  5. [スケジュール] のタイプとして、 [特定の日数を繰り返す] を選択します。

  6. 月曜日から金曜日までのすべての平日を選択します。

  7. 適切なタイムゾーンを選択し、 [開始時刻] として [09:00] を指定します。

  8. もう一度 [Add a scale condition](スケール条件の追加) を選択します。 このプロセスを繰り返して、Scale in during the evening という名前のスケジュールを作成します。このスケジュールは、3 インスタンスにスケーリングし、すべての平日に繰り返され、18:00 に開始されるように設定します。

  9. スケジュール ベースの自動スケール ルールを適用するために、 [保存] を選択します。

    スケジュールに基づいてスケーリングする自動スケール ルールを作成する

自動スケール ルールがどのように適用されているかを確認するには、 [スケーリング] ウィンドウの上部の [実行履歴] を選択します。 グラフおよびイベントの一覧に、自動スケール ルールがトリガーされたタイミングと、スケール セット内で増減された VM インスタンスの数が表示されます。

次のステップ

この記事では、自動スケール ルールを使用して、水平方向にスケーリングし、スケール セット内の VM インスタンスの "" を増減する方法について説明しました。 VM インスタンスの管理方法については、「Azure PowerShell を使用して仮想マシン スケール セットを管理する」を参照してください。

自動スケール ルールをトリガーするときにアラートを生成する方法について詳しくは、「Azure Monitor で自動スケール操作を使用して電子メールと webhook アラート通知を送信する」をご覧ください。 Azure Monitor で監査ログを使用して電子メールと webhook アラート通知を送信することもできます。