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

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

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

サブスクリプションの自動スケーリング設定を検出する

Azure Monitor で自動スケーリングを適用できるすべてのリソースを検出するには、次の手順に従います。

  1. Azure portal を開きます。

  2. ページの上部にある [Azure Monitor] アイコンを選択します。

    Azure Monitor を開く方法を示すスクリーンショット。

  3. [自動スケーリング] を選択して、自動スケーリングが適用できるすべてのリソースを、現在の自動スケールの状態とともに表示します。

    Azure Monitor の自動スケーリングを示すスクリーンショット。

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

    リソースの状態の表示を示すスクリーンショット。

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

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

    ホーム ページで [すべてのリソース] を選択してスケーリング ページにアクセスし、フィルターをかけてスケーリング対象のリソースに絞り込むことができます。

    すべてのリソースを示すスクリーンショット。

  5. 目的のリソースを選択したら、[スケーリング] タブを選択して自動スケーリング ルールを構成します。

    [スケーリング] ボタンを示すスクリーンショット。

最初の自動スケーリング設定を作成する

段階的な手順に従って、最初の自動スケーリング設定を作成しましょう。

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

  2. 現在のインスタンス数は 1 です。 [カスタム自動スケーリング] を選択します。

    新しい Web アプリのスケーリング設定を示すスクリーンショット。

  3. スケーリング設定の名前を入力します。 右側のコンテキスト ペインを開くには、[規則の追加] を選択します。 既定では、このアクションにより、リソースの CPU 使用率が 70% を超えた場合にインスタンス数を 1 つずつ増やしてスケーリングするようにオプションが設定されます。 これを既定値のままにして、[追加] を選択します。

    Web アプリのスケーリング設定の作成を示すスクリーンショット。

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

    1. [ルールの追加] を選択します。
    2. [演算子][より小さい] を設定します。
    3. [しきい値]20 に設定します。
    4. [操作][Decrease count by](カウント数減少幅) を設定します。

    これで、CPU 使用率に基づいてスケールアウトおよびスケールインするスケーリング設定ができました。

    CPU に基づくスケーリングを示すスクリーンショット。

  5. [保存] を選択します。

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

Note

Virtual Machine Scale Sets またはクラウド サービス ロールでの作業の開始にも同じ手順を適用できます。

その他の考慮事項

以降のセクションでは、自動スケーリングに関するその他の考慮事項について説明します。

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

特定の曜日に異なる方法のスケーリングを設定することもできます。

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

スケジュールに基づくスケーリング条件を示すスクリーンショット。

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

特定の日付に異なる方法のスケーリングを設定することもできます。

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

日付に基づくスケーリング条件を示すスクリーンショット。

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

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

[実行履歴] 画面を示すスクリーンショット。

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

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

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

スケーリング定義を示すスクリーンショット。

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

クールダウン期間の効果

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

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

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

自動スケーリングを別のリージョンに移動する

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

前提条件

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

詳細ビュー

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

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

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

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

次のステップ