演習 - 自動スケーリング ルール
この演習では、サンプル アプリケーションの自動スケーリングを設定してトリガーする演習について説明します。
ルールの演習
サンプルの Azure Spring Apps アプリケーションでは、アプリケーションを作成したときに、顧客サービス マイクロサービスでスケールアウト アクションがトリガーされています。
tomcat 要求 数が 1 分あたり平均で 10 セッションを超えると、カスタマー サービス アプリはスケールアウトします。 自動スケールがトリガーされた後、要求数が 1 分あたり平均で 10 セッション以下 の場合に スケールインします。
Azure portal で自動スケーリング設定を表示する
- 新しい Web ブラウザー タブで、Azure portal を開きます。
- 上部の検索ボックスから、 Azure Spring Apps を検索します。
- Azure Spring Apps の [概要] ページで、ご自分の Azure Spring Apps インスタンスを結果から選択します。
- 左側のナビゲーション ウィンドウのメニューの [設定] の下にある [アプリ] タブを選択します。
- 顧客サービス アプリケーションを選択します。 その後、アプリケーションの [概要] ページが表示されます。
- ページの左側にあるメニューの [設定] の下にある [ スケールアウト ] タブに移動します。
自動スケーリングの要求管理には、次の 2 つのオプションがあります。
- 手動スケーリング: 固定のインスタンス数を維持します。 Standard レベルでは、最大 500 インスタンスにスケールアウトできます。 この値は、マイクロサービス アプリケーションの個別の実行インスタンスの数を変更します。
- カスタム自動スケーリング: 任意のメトリックに基づき、任意のスケジュールでスケーリングします。
Azure portal で、アプリケーションの事前設定構成を表示します。 次の図は、Tomcat 要求数に合わせてスケーリングするように構成された カスタム 自動スケールを示しています。
完了した自動スケーリング イベントの表示
[スケールアウト設定] 画面で、[ 実行履歴 ] タブに移動して、最新のスケール アクションを表示します。 このタブには、観測容量の時間の経過に伴う変化を示すグラフと、すべての自動スケーリング アクションのログが表示されます。
スクリプトを使用してスケールアウト アクションをトリガーする
自動スケーリングは、Web ブラウザーまたはシェル スクリプトを使用して手動でトリガーすることもできます。
自動スケーリング ルールをテストするために、インスタンスに負荷を生成します。 このシミュレートされた負荷により、自動スケーリング ルールでスケールアウトされ、インスタンスの数が増加します。 次にシミュレートされた負荷が停止すると、自動スケーリング ルールでスケールインされ、インスタンスの数が減少します。
自動スケーリングをトリガーできるように、Azure Spring Apps アプリケーションの作成に使用したのと同じ Git リポジトリにシェル スクリプトを用意しています。
https://shell.azure.com bash ウィンドウで次のコマンドを実行して、Spring Apps サービスのインスタンス名を設定します。 前の演習で使用したのと同じ Azure Spring Apps サービス名を使用します。
export SPRING_APPS_SERVICE=<spring-apps-instance-name>
次に、bash ウィンドウで次のコマンドを実行して、Spring Apps の顧客サービス マイクロサービスに対してトランザクションを実行します。
cd mslearn-autoscale-java sh loadTest.sh
インスタンスに 100 件の要求を送信する "顧客サービス" ロード テストの出力が表示されます。
Web ブラウザーを使用して手動でスケールアウト アクションをトリガーする (省略可能)
作成された自動スケール設定でスケールアウト条件を手動でトリガーするには、 顧客サービス マイクロサービスに 1 分未満で 10 を超える要求が必要です。
新しいブラウザー ウィンドウを開き、 顧客サービス マイクロサービス に移動します。
https://<your-spring-apps-service>-api-gateway.azuremicroservices.io/api/customer/owners
立て続けにページを 11 回以上再読み込みします。
スケールアウト アクションの表示
元のブラウザー ウィンドウに戻り、自動スケール設定で [ 実行履歴 ] タブを選択します。
インスタンス数を反映したグラフが表示されます。
数分後に、インスタンス数が 1 から 2 に増加します。
グラフの下に、この自動スケーリング設定によって実行された各スケール アクションのアクティビティ ログ エントリが表示されます。
スケールイン アクション
自動スケール設定のスケールイン条件は、1 分間に 顧客サービス マイクロサービスに対する要求が 10 件以下の場合にトリガーされます。
"顧客サービス" マイクロサービスに要求が送信されておらず、アプリとサービスのブラウザー ウィンドウが閉じているようにします。
インスタンス数を確認します。 数分後に、インスタンス数が 2 から 1 に減る "可能性があります" (以下の重要ポイントを参照)。
重要
自動スケーリングではスケーリング後の最終状態を推定しようとするため、Azure Spring Apps がスケーリングされない可能性があります。 つまり、平均の tomcat 要求数が同じままであるか、わずかに減少しただけでも、自動スケーリングによって即座に再スケーリングされる必要があるということです。