カスタム メトリックを使って 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 プラン] を検索して選びます。

    Screenshot that shows searching for App Service plans.

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

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

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

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

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

    注意

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

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

    Screenshot that shows the Basics tab of the Create App Service Plan screen on which you configure the App Service plan.

Web アプリを作成する

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

    Screenshot that shows searching for App Services.

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

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

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

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

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

    Screenshot that shows the Basics tab of the Create Web App page where you set up a web app.

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

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

    Screenshot that shows the Monitoring tab of the Create Web App page where you enable Application Insights.

自動スケールを構成する

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

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

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

    Screenshot that shows the Autoscale page where you select the resource to set up autoscale.

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

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

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

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

    Screenshot that shows the Autoscale setting page where you set up the basic autoscale settings.

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

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

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

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

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

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

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

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

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

    Screenshot that shows the Scale rule page where you configure the scale-out rule.

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

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

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

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

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

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

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

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

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

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

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

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

    Screenshot that shows the Scale rule page where you configure the scale-in rule.

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

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

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

    Screenshot that shows the Autoscale setting page where you set up instance limits.

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

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

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

    Screenshot that shows the App Service page where you can delete the web app.

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

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

    Screenshot that shows the App Service plans page where you can delete the App Service plan.

次のステップ

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