Azure での自動スケールの使用

この記事では、Microsoft Azure Portal でリソースの自動スケール設定をセットアップする方法について説明します。

Azure Monitor の自動スケーリングは、Virtual Machine Scale SetsCloud ServicesApp Service - Web Apps、および API Management サービスにのみ適用されます。

サブスクリプションの自動スケール設定の表示

Azure Monitor で自動スケールを適用できるすべてのリソースを確認できます。 詳しい手順については、次の手順を参照してください。

  1. Azure portal を開きます。
  2. 左側のウィンドウにある Azure Monitor アイコンをクリックします。 Azure Monitor を開きます。
  3. 自動スケール をクリックすると、現在の自動スケールの状態と共に、自動スケールが適用できるすべてのリソースが表示されます。 Azure Monitor での自動スケールの表示

上部のフィルター ウィンドウを使用すると、特定のリソース グループ、特定のリソースの種類、または特定のリソースに絞り込んでリソースを選択できます。

各リソースについて、現在のインスタンス数と自動スケールの状態を確認できます。 自動スケールの状態は次のいずれかになります。

  • 未構成: このリソースの自動スケール設定はまだ有効になっていません。
  • 有効: このリソースの自動スケール設定は有効になっています。
  • Disabled: このリソースの自動スケール設定は無効になっています。

最初の自動スケール設定を作成する

簡単な手順に従って、最初の自動スケール設定を作成します。

  1. Azure Monitor で [自動スケール] ブレードを開き、スケールするリソースを選択します (以下の手順では、Web アプリに関連付けられている App Service プランを使用します。 初めての ASP.NET Web アプリを Azure に 5 分で作成できます)。

  2. 現在のインスタンス数は 1 です。 [Enable autoscale](自動スケールを有効にする) をクリックします。 新しい Web アプリのスケール設定

  3. スケール設定の名前を指定し、 [ルールの追加] をクリックします。 右側にコンテキスト ペインとして表示されるスケール ルールのオプションに確認してください。 既定では、リソースの CPU 使用率が 70% を超えた場合にインスタンス数を 1 つずつ増やしてスケールするようにオプションが設定されています。 このオプションを既定値のままにし、 [追加] をクリックします。 Web アプリのスケール設定の作成

  4. これで最初のスケール ルールが作成されました。 UX では、ベスト プラクティスとして、ルール内に少なくとも 1 つのスケールを含めることが推奨されています。 そのためには次を行います。

    a. [ルールの追加] をクリックします。

    b. [演算子][より小さい] を設定します。

    c. [しきい値]20 に設定します。

    d. [操作][Decrease count by](カウント数減少幅) を設定します。

    これで、CPU 使用率に基づいてスケールアウト/スケールインするスケール設定が作成されます。 CPU に基づくスケール

  5. [保存] をクリックします。

お疲れさまでした。 これで、CPU 使用率に基づいて Web アプリを自動スケールする最初のスケール設定が作成されました。

注意

仮想マシン スケール セットまたはクラウド サービス ロールを使用する場合も同じ手順が適用されます。

その他の考慮事項

スケジュールに基づくスケール変更

CPU 使用率に基づいてスケールするだけでなく、特定の曜日に異なる方法でスケールを設定することもできます。

  1. [Add a scale condition](スケール条件の追加) をクリックします。
  2. スケール モードとルールの設定は既定の条件と同じです。
  3. スケジュール、 [Repeat specific days](特定の曜日に繰り返す) を選択します。
  4. 曜日、スケール条件を適用する開始時刻と終了時刻を選択します。

スケジュールに基づくスケール条件

特定の日に異なる方法でスケールする

CPU 使用率に基づいてだけでなく、特定の曜日に異なる方法でスケールを設定することもできます。

  1. [Add a scale condition](スケール条件の追加) をクリックします。
  2. スケール モードとルールの設定は既定の条件と同じです。
  3. スケジュールで、 [Specify start/end dates](開始日/終了日を指定する) を選択します。
  4. スケール条件を適用する開始時刻と終了時刻を選択します。

日付に基づくスケール条件

リソースのスケール履歴を表示する

リソースをスケールアップ/スケールダウンするたびに、アクティビティ ログにイベントが記録されます。 [実行履歴] タブに切り替えることで、過去 24 時間のリソースのスケール履歴を表示できます。

実行履歴

すべてのスケール履歴 (最大 90 日間) を表示する場合は、 [Click here to see more details](詳細を表示するには、ここをクリックしてください) をクリックします。 リソースやカテゴリに自動スケールがあらかじめ選択されたアクティビティ ログが表示されます。

リソースのスケール定義を表示する

自動スケールは、Azure Resource Manager のリソースです。 [JSON] タブに切り替えると、JSON でスケール定義を表示できます。

スケール定義

必要に応じて、JSON に直接変更を加えることができます。 これらの変更は保存後反映されます。

自動スケールを無効にしてインスタンスを手動でスケールする

現在のスケール設定を無効にし、リソースを手動でスケールすることが必要な場合があります。

上部にある [自動スケールの無効化] ボタンをクリックします。 自動スケールの無効化

注意

このオプションでは、構成が無効にます。 ただし、自動スケールをもう一度有効にした後元に戻せます。

自動スケールを無効にすると、手動でスケールするインスタンス数を設定できるようになります。

手動スケールの設定

[Enable autoscale](自動スケールを有効にする) をクリックし、 [保存] をクリックすることで、いつでも自動スケールに戻すことができます。

クールダウン期間の効果

自動スケーリングでは、インスタンスの目まぐるしく繰り返されるアップ スケーリングとダウン スケーリングを意味する、"フラッピング" を防ぐためにクールダウン期間を使用します。 詳細については、自動スケーリングの評価手順に関するページを参照してください。 フラッピングに関するその他の重要な情報および自動スケーリング エンジンの監視方法の解釈については、「自動スケールのベスト プラクティス」および自動スケールのトラブルシューティングに関するページを、それぞれ参照してください。

正常なインスタンスにトラフィックをルーティングする (App Service)

Azure Web アプリを複数のインスタンスにスケールアウトする場合、App Service を使用すれば、ご利用のインスタンスに対して正常性チェックを実行して、正常なインスタンスにのみトラフィックをルーティングすることができます。 詳細については、この記事の Azure App Service Health チェックに関する項を参照してください。

自動スケーリングの別のリージョンへの移動

このセクションでは、Azure の自動スケーリングを同じサブスクリプションおよびリソース グループの別のリージョンに移動する方法について説明します。 REST API を使って自動スケーリング設定を移動できます。

前提条件

  1. サブスクリプションとリソース グループが使用可能であり、移動元と移動先のリージョンの両方で詳細が同じであることを確認します。
  2. 移動先の Azure リージョンで Azure の自動スケーリングが使用可能であることを確認します。

詳細ビュー

新しい環境で自動スケーリング設定を作成するには、REST API を使います。 移動先のリージョンで作成される自動スケーリング設定は、移動元リージョンの自動スケーリング設定のコピーになります。

移動元リージョンの自動スケーリング設定と関連付けて作成された診断設定は移動できません。 自動スケーリング設定の作成が完了した後で、移行先リージョンで診断設定を再作成する必要があります。

Azure リージョン間でのリソースの移動に関する詳細情報

リージョン間でのリソースの移動と Azure でのディザスター リカバリーの詳細については、「リソースを新しいリソース グループまたはサブスクリプションに移動する」を参照してください。

次のステップ