演習 - Web アプリをスケール アップする

完了

スケール アップでは、Web アプリを実行するためのより強力なリソースが提供されます。 また、スケール アウトに使用できるインスタンスの数が増やされます。

ホテル予約システムでは、Web アプリへの訪問者数の増加に対処するためにスケール アウトする必要があります。 スケール アップすると、さらにスケール アウトできます。 スケール アップは、Web アプリに追加する新しい機能をサポートするためにも必要になる可能性があります。

この演習では、前にデプロイしたホテル予約システムの Web アプリをスケール アップします。 前に使用したのと同じテスト クライアント アプリケーションを実行し、Web アプリのパフォーマンスを監視します。

Web アプリの現在の価格レベルを調べる

重要

この演習を行うには、独自の Azure サブスクリプションが必要です。また、料金が発生することがあります。 Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。

  1. Azure portal にサインインします。

  2. Azure portal のメニューまたは [ホーム] ページから [すべてのリソース] を選択して、App Service プランに移動します。

  3. [設定][スケール アップ (App Service プラン)] を選択します。 App Service プランの価格レベルの詳細が表示されます。 価格レベルは S1 で、A シリーズの仮想マシンで実行される 100 の Azure コンピューティング ユニットと 1.75 GB のメモリが提供されます。

    Screenshot of the pricing tier details for the App Service plan S1.

テスト クライアント アプリを実行する

  1. 画面の右側にある Cloud Shell ウィンドウで、~/mslearn-hotel-reservation-system/src/HotelReservationSystemTestClient フォルダーに移動します。

    cd ~/mslearn-hotel-reservation-system/src/HotelReservationSystemTestClient
    
  2. クライアント アプリを実行します。 システムを数分間実行したままにします。 前の演習の開始時と同様に、応答は低速です。 クライアント要求はすぐに HTTP 408 (タイムアウト) エラーで失敗します。

    dotnet run
    
  3. アプリを実行したままにします。 さらに 5 分間待機します。 その後、Azure portal のダッシュボードで Web アプリのメトリックを示すグラフに移動します。 前の演習と同様に、統計情報により比較的低速の応答時間と多数の HTTP 4xx エラーが示されることがわかります。

Web アプリをスケール アップし、結果を監視する

  1. Azure portal で、App Service プランのページに戻ります。

  2. [設定][スケール アップ (App Service プラン)] を選択します。

  3. [P2V2] 価格レベルを選択し、[適用] を選択します。 この価格レベルでは、Dv2 シリーズの仮想マシンで実行される 420 ACU (S1 価格レベルの 4 倍を超える性能) と 7 GB のメモリが提供されます。 しかし、この仮想マシンは、S1 価格レベルの 4 倍の運用コストがかかります。

  4. さらに 5 分間待機し、Azure portal のダッシュボードでパフォーマンス グラフを確認します。

  5. システムのスケール アップ時点で、いくつか他の HTTP サーバー エラーの発生に気づく可能性があります。 これらのエラーは、システムがハードウェアを切り替えたときに、実行中のクライアント要求が中止されたために発生します。 スケール アップ後は、より多くのプロセッサが使用可能となるため、CPU 時間が急激に増大します。 スケール アウト時のような応答時間の減少は見られないと考えられます。まだ 1 つのインスタンスのみを使用しているためにこの動作が発生します。 要求は、スケールアウトしたときと同じようには負荷分散されていません。ただし、以前よりも多くのインスタンス (20) にわたってスケール アウトする機会が得られます。

    次の図のグラフでは、Web アプリのパフォーマンス メトリックの例を示します。 システムがスケール アップされた時点が示されています。

    Screenshot of the performance chart for the web app, with the point of scale-up noted.

  6. クライアント アプリを実行している Cloud Shell に戻ります。 Enter キーを押してアプリを停止します。