パフォーマンス データまたはスケジュールに基づいて Azure リソースの自動スケール設定を作成する
自動スケール設定を行うと、事前設定した条件に基づいてサービスのインスタンスを追加または削除することができます。 これらの設定は、ポータルで作成できます。 この方法では、ブラウザーベースのユーザー インターフェイスで、自動スケール設定を作成および構成できます。
このチュートリアルでは、次のことについて説明します。
- Web アプリと Azure App Service プランを作成します。
- Web アプリが受信する要求の数に基づくスケールインおよびスケールアウトの自動スケール ルールを構成します。
- スケールアウト アクションをトリガーして、インスタンス数の増加を監視します。
- スケールイン アクションをトリガーして、インスタンス数の減少を監視します。
- リソースをクリーンアップする。
Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。
Azure portal にサインインする
Azure portal にサインインします。
Web アプリと App Service プランを作成する
- 左側のメニューで、[リソースの作成] を選択します。
- [Web アプリ] 項目を検索して選択し、[作成] を選択します。
- MyTestScaleWebApp のようなアプリ名を選択します。 新しいリソース グループ myResourceGroup を作成するか、選択したリソース グループに配置します。
数分以内に、リソースがプロビジョニングされます。 このチュートリアルの残りの部分では、この Web アプリとそれに対応する App Service プランを使用します。
自動スケール設定に移動する
左側のメニューで [モニター] を選択します。 次に、[自動スケーリング] タブを選択します。
自動スケールをサポートする、サブスクリプション内のリソースのリストが、ここに表示されます。 チュートリアルの前半で作成した App Service プランを特定し、選択します。
[自動スケーリング設定] 画面で、[自動スケーリングを有効にする] を選択します。
以下のいくつかの手順を行うと、[自動スケーリング設定] 画面を次のスクリーンショットのように設定できます。
既定のプロファイルを構成する
自動スケール設定に名前を指定します。
既定のプロファイルで [スケール モード] が [特定のインスタンス数にスケーリングする] に設定されていることを確認します。
[インスタンス数] を 1 に設定します。 このように設定すると、他のプロファイルがアクティブでない場合、または有効でない場合、既定のプロファイルのインスタンス数が 1 に戻ります。
定期プロファイルを作成する
既定のプロファイルの下の、[Add a scale condition](スケール条件の追加) リンクを選択します。
このプロファイルの名前を編集して、"月曜日から金曜日までのプロファイル" にします。
[スケール モード] が [メトリックに基づいてスケーリングする] になっていることを確認します。
[インスタンスの制限] で、[最小] を 1、[最大] を 2、[既定] を 1 に設定します。 この設定を行うと、このプロファイルでは、インスタンス数が 1 を下回るまたは 2 を超えるサービス プランの自動スケールは行われなくなります。 プロファイルに、決定に必要なデータが不足している場合、既定のインスタンス数 (この場合は 1) を使用します。
[スケジュール] で、[特定の日数を繰り返す] を選択します。
月曜日から金曜日の 09:00 PST から 18:00 PST まで繰り返すように、プロファイルを設定します。 この設定を行うと、このプロファイルは、月曜日から金曜日の午前 9 時から午後 6 時まで有効になり適用されます。 それ以外の時間は、[既定] プロファイルが自動スケール設定で使用されます。
スケールアウト ルールを作成する
[月曜日から金曜日のプロファイル] セクションで、[ルールの追加] リンクを選択します。
[メトリック ソース] を [その他のリソース] に設定します。 [リソースの種類] を [App Services]、[リソース] を、このチュートリアルの前半で作成した Web アプリに設定します。
[時間の集計] を [合計]、[メトリック名] を [要求]、[時間グレインの統計] を [合計] に設定します。
[演算子] を [より大きい]、[しきい値] を 10、[期間] を 5 分に設定します。
[操作] を [カウントを増やす量]、[インスタンス数] を 1、[クールダウン] を 5 分に設定します。
[追加] を選択します。
このルールでは、Web アプリが 5 分以内に 10 を超える要求を受信した場合に、負荷を管理するために 1 つのインスタンスが App Service プランに追加されます。
スケールイン ルールを作成する
必ずスケールアウト ルールに対応するスケールイン ルールを設定することをお勧めします。 両方のルールを設定すると、リソースのオーバープロビジョニングを防ぐことができます。 オーバープロビジョニングとは、現在の読み込みの処理に必要な数より多くのインスタンスが実行されることを意味します。
[月曜日から金曜日のプロファイル] で、[ルールの追加] リンクを選択します。
[メトリック ソース] を [その他のリソース] に設定します。 [リソースの種類] を [App Services]、[リソース] を、このチュートリアルの前半で作成した Web アプリに設定します。
[時間の集計] を [合計]、[メトリック名] を [要求]、[時間グレインの統計] を [平均] に設定します。
[演算子] を [未満]、[しきい値] を 5、[期間] を 5 分に設定します。
[操作] を [カウントを減らす量]、[インスタンス数] を 1、[クールダウン] を 5 分に設定します。
[追加] を選択します。
自動スケール設定を保存します。
スケール アウト アクションをトリガーする
上記で作成した自動スケール設定でスケールアウト条件をトリガーするには、Web アプリに 5 分以内に 10 件を超える要求が必要となります。
ブラウザー ウィンドウを開き、このチュートリアルの前半で作成した Web アプリに移動します。 Azure portal で Web アプリの URL を見つけるには、Web アプリのリソースに移動し、[概要] タブの [参照] を選択します。
立て続けにページを 11 回以上再読み込みします。
左側のメニューで [モニター] を選択します。 次に、[自動スケーリング] タブを選択します。
リストから、このチュートリアルで使用する App Service プランを選択します。
[自動スケーリング設定] 画面で、[実行履歴] タブを選択します。
時間の経過に伴った App Service プランのインスタンス数を反映したグラフが表示されます。 数分後に、インスタンス数が 1 から 2 に増加します。
グラフの下には、この自動スケール設定によって行われた各スケール アクションのアクティビティ ログ エントリが表示されます。
スケール イン アクションをトリガーする
自動スケール設定のスケールイン条件は、Web アプリへの要求が 10 分間で 5 件未満の場合にトリガーされます。
Web アプリに要求が送信されていないことを確認します。
Azure portal を読み込みます。
左側のメニューで [モニター] を選択します。 次に、[自動スケーリング] タブを選択します。
リストから、このチュートリアルで使用する App Service プランを選択します。
[自動スケーリング設定] 画面で、[実行履歴] タブを選択します。
時間の経過に伴った App Service プランのインスタンス数を反映したグラフが表示されます。 数分後に、インスタンス数が 2 から 1 に減少します。 このプロセスには、少なくとも 100 分はかかります。
グラフの下には、この自動スケール設定によって行われた各スケール アクションのアクティビティ ログ エントリが表示されます。
リソースをクリーンアップする
Azure portal の左側にあるメニューで、[すべてのリソース] を選択します。 次に、このチュートリアルで作成した Web アプリを選択します。
リソース ページで [削除] を選択します。 テキスト ボックスに「yes」と入力して削除を確認し、[削除] を選択します。
App Service プランのリソースを選択し、[削除] を選択します。
テキスト ボックスに「yes」と入力して削除を確認し、[削除] を選択します。
次の手順
自動スケール設定の詳細については、自動スケールの概要に関するページを参照してください。