カスタム メトリックを使って Web アプリを自動スケーリングする
この記事では、Azure portal でカスタム メトリックを使って Web アプリの自動スケーリングを設定する方法を順を追って説明します。
負荷の増減に対応するために、自動スケーリングを使ってリソースを追加および削除することができます。 この記事では、Application Insights メトリックのいずれかを使って Web アプリの自動スケーリングを設定し、Web アプリのスケールインとスケールアウトを行うする方法について説明します。
Note
Application Insights のカスタム メトリックの自動スケールは、Standard および Azure.ApplicationInsights 名前空間に公開されたメトリックにのみサポートされています。 Application Insights のカスタム メトリックに他の名前空間が使用されている場合、Unsupported Metric エラーが返されます。
Azure Monitor の自動スケーリングは、次の対象に適用されます。
- Azure Virtual Machine Scale Sets
- Azure Cloud Services
- 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 プラン] ページで [削除] を選びます。
次のステップ
自動スケーリングの詳細については、次の記事を参照してください。