この記事では、Azure portal でカスタム メトリックを使って Web アプリの自動スケーリングを設定する方法を順を追って説明します。
負荷の増減に対応するために、自動スケーリングを使ってリソースを追加および削除することができます。 この記事では、Application Insights メトリックのいずれかを使って Web アプリの自動スケーリングを設定し、Web アプリのスケールインとスケールアウトを行うする方法について説明します。
注
Application Insights のカスタム メトリックの自動スケールは、Standard および Azure.ApplicationInsights 名前空間に公開されたメトリックにのみサポートされています。 Application Insights のカスタム メトリックに他の名前空間が使用されている場合、Unsupported Metric エラーが返されます。
Azure Monitor の自動スケーリングは、次の対象に適用されます。
- Azure 仮想マシンのスケールセット
- Azure クラウド サービス
- Azure App Service - Web Apps
- Azure Data Explorer クラスター
- Azure API Management
前提条件
アクティブなサブスクリプションを含む Azure アカウントが必要です。 無料でアカウントを作成できます。
概要
自動スケーリングされた Web アプリを作成するには:
- まだお持ちでない場合は、App Service プランを作成します。 Free または Basic レベルでは自動スケーリングを設定できません。
- まだお持ちでない場合は、サービス プランを使って Web アプリを作成します。
- サービス プランの自動スケーリングを構成します。
App Service プランを作成する
App Service プランでは、Web アプリで実行するための一連のコンピューティング リソースを定義します。
Azure Portalを開きます。
[App Service プラン] を検索して選びます。
[App Service プラン] ページで [作成] を選択します。
[リソース グループ] を選ぶか、新しく作成します。
プランの [名前] を入力します。
[オペレーティング システム] と [リージョン] を選びます。
[SKU] とサイズを選びます。
注
Free または Basic レベルでは自動スケーリングを使用できません。
[確認と作成]>[作成] の順に選択します。
Web アプリを作成する
[App Services] を検索して選びます。
[App Services] ページで、[作成] を選択します。
[基本] タブで [名前] を入力し、[ランタイム スタック] を選びます。
App Service プランを定義したときに選んだ [オペレーティング システム] と [リージョン] を選びます。
先ほど作成した App Service プランを選びます。
[監視] タブを選択します。
[監視] タブで [はい] を選び、Application Insights を有効にします。
[確認と作成]>[作成] の順に選択します。
自動スケールを構成する
App Service プランの自動スケーリングの設定を構成します。
検索バーで自動スケーリングを検索して選ぶか、左側のメニュー バーで [監視] の下にある [自動スケーリング] を選びます。
App Service プランを選びます。 構成できるのは運用プランのみです。
スケールアウト ルールを設定する
Web アプリが処理するセッション数がインスタンスあたり 70 を超える場合、Azure で別インスタンスの Web アプリをスピンアップするようにスケールアウト ルールを設定します。
[カスタム自動スケーリング] を選択します。
既定のスケール条件の [ルール] セクションで、[規則を追加する] を選びます。
[メトリック ソース] ドロップダウンから [その他のリソース] を選びます。
[リソースの種類] から [Application Insights] を選びます。
[リソース] ドロップダウンから Web アプリを選びます。
スケーリングの基準となる [メトリック名] を選びます。 たとえば、[セッション] を使います。
インスタンスあたりのセッション数が測定されるように、[インスタンス数によるメトリックの除算を有効にする] チェックボックスをオンにします。
[オペレーター] ドロップダウンから、[次の値より大きい] を選びます。
[スケール操作をトリガーするメトリックのしきい値] を入力します。 たとえば、70 を使います。
[アクション] の下にある [操作] を [カウントを増やす量] に設定します。 [インスタンス数] を 1 に設定します。
[追加] を選択します。
スケールイン ルールを設定する
Web アプリが処理するセッション数がインスタンスあたり 60 未満になったときに、Azure がインスタンスのいずれかをスピンダウンするようにスケールイン ルールを設定します。 このルールが実行されるたびに、最小インスタンス数に達するまで、Azure によってインスタンス数が減らされます。
既定のスケール条件の [ルール] セクションで、[規則を追加する] を選びます。
[メトリック ソース] ドロップダウンから [その他のリソース] を選びます。
[リソースの種類] から [Application Insights] を選びます。
[リソース] ドロップダウンから Web アプリを選びます。
スケーリングの基準となる [メトリック名] を選びます。 たとえば、[セッション] を使います。
インスタンスあたりのセッション数が測定されるように、[インスタンス数によるメトリックの除算を有効にする] チェックボックスをオンにします。
[オペレーター] ドロップダウンから、[次の値未満] を選びます。
[スケール操作をトリガーするメトリックのしきい値] を入力します。 たとえば、60 を使います。
[アクション] の下にある [操作] を [カウントを減らす量] に設定し、[インスタンス数] を 1 に設定します。
[追加] を選択します。
インスタンス数を制限する
リソースをクリーンアップする
このアプリケーションを引き続き使用しない場合は、リソースを削除します。
App Service の概要ページで [削除] を選びます。
[自動スケーリング設定] ページの [JSON] タブで、[自動スケーリング設定の名前] の横にあるごみ箱アイコンを選択します。 リソース グループを自分で削除しない限り、自動スケーリング設定が App Service プランと共に削除されることはありません。 自動スケーリング設定を削除せずに、App Service プランを同じ名前で再作成すると、元の自動スケーリング設定が継承されます。
[App Service プラン] ページで [削除] を選びます。
次のステップ
自動スケーリングの詳細については、次の記事を参照してください。