カスタム メトリックを使って Web アプリを自動スケーリングする

この記事では、Azure portal でカスタム メトリックを使って Web アプリの自動スケーリングを設定する方法を順を追って説明します。

負荷の増減に対応するために、自動スケーリングを使ってリソースを追加および削除することができます。 この記事では、Application Insights メトリックのいずれかを使って Web アプリの自動スケーリングを設定し、Web アプリのスケールインとスケールアウトを行うする方法について説明します。

Note

Application Insights のカスタム メトリックの自動スケールは、Standard および Azure.ApplicationInsights 名前空間に公開されたメトリックにのみサポートされています。 Application Insights のカスタム メトリックに他の名前空間が使用されている場合、Unsupported Metric エラーが返されます。

Azure Monitor の自動スケーリングは、次の対象に適用されます。

前提条件

アクティブなサブスクリプションを含む Azure アカウントが必要です。 無料でアカウントを作成できます。

概要

自動スケーリングされた Web アプリを作成するには:

  1. まだお持ちでない場合は、App Service プランを作成します。 Free または Basic レベルでは自動スケーリングを設定できません。
  2. まだお持ちでない場合は、サービス プランを使って Web アプリを作成します
  3. サービス プランの自動スケーリングを構成します

App Service プランを作成する

App Service プランでは、Web アプリで実行するための一連のコンピューティング リソースを定義します。

  1. Azure Portalを開きます。

  2. [App Service プラン] を検索して選びます。

    App Service プランの検索を示すスクリーンショット。

  3. [App Service プラン] ページで [作成] を選択します。

  4. [リソース グループ] を選ぶか、新しく作成します。

  5. プランの [名前] を入力します。

  6. [オペレーティング システム][リージョン] を選びます。

  7. [SKU]サイズを選びます。

    注意

    Free または Basic レベルでは自動スケーリングを使用できません。

  8. [確認と作成]>[作成] の順に選択します。

    [App Service プランの作成] 画面の [基本] タブを示すスクリーンショット。ここで App Service プランを構成します。

Web アプリを作成する

  1. [App Services] を検索して選びます。

    App Services の検索を示すスクリーンショット。

  2. [App Services] ページで、[作成] を選択します。

  3. [基本] タブで [名前] を入力し、[ランタイム スタック] を選びます。

  4. App Service プランを定義したときに選んだ [オペレーティング システム][リージョン] を選びます。

  5. 先ほど作成した App Service プランを選びます。

  6. [監視] タブを選択します。

    [Web アプリの作成] ページの [基本] タブを示すスクリーンショット。ここで Web アプリを設定します。

  7. [監視] タブで [はい] を選び、Application Insights を有効にします。

  8. [確認と作成]>[作成] の順に選択します。

    [Web アプリの作成] ページの [監視] タブを示すスクリーンショット。ここで Application Insights を有効にします。

自動スケールを構成する

App Service プランの自動スケーリングの設定を構成します。

  1. 検索バーで自動スケーリングを検索して選ぶか、左側のメニュー バーで [監視] の下にある [自動スケーリング] を選びます。

  2. App Service プランを選びます。 構成できるのは運用プランのみです。

    [自動スケーリング] ページを示すスクリーンショット。ここで自動スケーリングを設定するリソースを選びます。

スケールアウト ルールを設定する

Web アプリが処理するセッション数がインスタンスあたり 70 を超える場合、Azure で別インスタンスの Web アプリをスピンアップするようにスケールアウト ルールを設定します。

  1. [カスタム自動スケーリング] を選択します。

  2. 既定のスケール条件の [ルール] セクションで、[規則を追加する] を選びます。

    [自動スケーリングの設定] ページを示すスクリーンショット。ここで基本的な自動スケーリングの設定を指定します。

  3. [メトリック ソース] ドロップダウンから [その他のリソース] を選びます。

  4. [リソースの種類] から [Application Insights] を選びます。

  5. [リソース] ドロップダウンから Web アプリを選びます。

  6. スケーリングの基準となる [メトリック名] を選びます。 たとえば、[セッション] を使います。

  7. インスタンスあたりのセッション数が測定されるように、[インスタンス数によるメトリックの除算を有効にする] チェックボックスをオンにします。

  8. [オペレーター] ドロップダウンから、[次の値より大きい] を選びます。

  9. [スケール操作をトリガーするメトリックのしきい値] を入力します。 たとえば、70 を使います。

  10. [アクション] の下にある [操作][カウントを増やす量] に設定します。 [インスタンス数]1 に設定します。

  11. [追加] を選択します。

    [スケール ルール] ページを示すスクリーンショット。ここでスケールアウト ルールを構成します。

スケールイン ルールを設定する

Web アプリが処理するセッション数がインスタンスあたり 60 未満になったときに、Azure がインスタンスのいずれかをスピンダウンするようにスケールイン ルールを設定します。 このルールが実行されるたびに、最小インスタンス数に達するまで、Azure によってインスタンス数が減らされます。

  1. 既定のスケール条件の [ルール] セクションで、[規則を追加する] を選びます。

  2. [メトリック ソース] ドロップダウンから [その他のリソース] を選びます。

  3. [リソースの種類] から [Application Insights] を選びます。

  4. [リソース] ドロップダウンから Web アプリを選びます。

  5. スケーリングの基準となる [メトリック名] を選びます。 たとえば、[セッション] を使います。

  6. インスタンスあたりのセッション数が測定されるように、[インスタンス数によるメトリックの除算を有効にする] チェックボックスをオンにします。

  7. [オペレーター] ドロップダウンから、[次の値未満] を選びます。

  8. [スケール操作をトリガーするメトリックのしきい値] を入力します。 たとえば、60 を使います。

  9. [アクション] の下にある [操作][カウントを減らす量] に設定し、[インスタンス数]1 に設定します。

  10. [追加] を選択します。

    [スケール ルール] ページを示すスクリーンショット。ここでスケールイン ルールを構成します。

インスタンス数を制限する

  1. [インスタンスの制限] セクションの [最大値] フィールドで、スピンアップできるインスタンスの最大数を設定します。 たとえば、4 を使います。

  2. [保存] を選択します。

    [自動スケーリングの設定] ページを示すスクリーンショット。ここでインスタンス制限を設定します。

リソースをクリーンアップする

このアプリケーションを引き続き使用しない場合は、リソースを削除します。

  1. App Service の概要ページで [削除] を選びます。

    [App Service] ページを示すスクリーンショット。ここで Web アプリを削除できます。

  2. [自動スケーリング設定] ページの [JSON] タブで、[自動スケーリング設定の名前] の横にあるごみ箱アイコンを選択します。 リソース グループを自分で削除しない限り、自動スケーリング設定が App Service プランと共に削除されることはありません。 自動スケーリング設定を削除せずに、App Service プランを同じ名前で再作成すると、元の自動スケーリング設定が継承されます。

  3. [App Service プラン] ページで [削除] を選びます。

    [App Service プラン] ページを示すスクリーンショット。ここで App Service プランを削除できます。

次のステップ

自動スケーリングの詳細については、次の記事を参照してください。