Azure App Service 自動スケーリングを構成する

完了

自動スケーリング プロセスでは、適切な量のリソースを実行して、アプリケーションに対する負荷を処理することができます。 リソースを追加して負荷の増加をサポートし、アイドル状態のリソースを削除することでコストを節約できます。

自動スケーリングについて知っておくべきこと

Azure App Service プランとアプリケーションに自動スケーリングを使用する方法を詳しく見ていきましょう。

  • 自動スケーリングを使用するには、一連のルールと条件を使用して実行するインスタンスの最小数と最大数を指定します。

  • アプリケーションが自動スケーリング条件で実行されると、仮想マシン インスタンスの数はルールに基づいて自動的に調整されます。 ルール条件が満たされると、1 つまたは複数の自動スケール アクションがトリガーされます。

  • 自動スケール設定は自動スケール エンジンによって読み取られ、スケールアウトまたはスケールインするかどうかが判断されます。 自動スケーリング設定はプロファイルにグループ化されます。

  • 自動スケーリング ルールには、トリガーとスケール操作 (インまたはアウト) が含まれます。 トリガーは、メトリックベースまたは時間ベースにすることができます。

    Screenshot that shows how to create an autoscale condition in the Azure portal, including settings for the scale mode and instance count.

    • メトリックベースのルールでは、アプリケーションの負荷が測定され、その負荷に基づいて仮想マシンが追加または削除されます。たとえば、"CPU 使用率が 50% を超える場合にこの操作を実行する" などです。メトリックの例には、CPU 時間、平均応答時間、要求が含まれます。

    • 時間ベースのルール (スケジュール ベース) では、負荷の時間パターンを確認し、考えられる負荷の増減が発生する前にスケーリングしたい場合に、スケーリングを行うことができます。 たとえば、"特定のタイム ゾーンで毎週土曜の午前 8 時に Webhook をトリガーする" などです。

  • 自動スケーリング エンジンでは通知設定が使用されます。

    通知設定では、自動スケーリング設定プロファイルの基準が満たされていることに基づいて、自動スケーリング イベントの発生時にどの通知を実行すべきかが定義されます。 自動スケールでは、1 つまたは複数の電子メール アドレスに通知したり、1 つまたは複数の Webhook の呼び出しを実行できます。

自動スケーリングを構成するときに考慮すべきこと

Azure App Service プランとアプリケーションの自動スケーリングを構成するときに留意すべき考慮事項がいくつかあります。

  • 最小インスタンス数。 最小インスタンス数を設定し、負荷がない場合でも確実にアプリケーションが常に実行されるようにします。

  • 最大インスタンス数。 最大インスタンス数を設定し、時間単位の可能な合計コストを制限します。

  • 十分なスケール マージン。 必ず、インスタンス数の最大値と最小値が異なり、2 つの値の間に十分なマージンを設定するようにします。 作成したルールを使用して、最小値と最大値の間で自動的にスケーリングできます。

  • スケール ルールの組み合わせ。 増減を実行するスケールアウトとスケールインのルールの組み合わせを常に使用します。 スケールアウト ルールを設定しないと、アプリケーションが失敗したり、負荷が増加した場合にパフォーマンスが低下したりする可能性があります。 スケールイン ルールを設定しないと、負荷が減少したときに不要で広範なコストが発生する場合があります。

  • メトリック統計。 平均、最小、最大、合計など、診断メトリックに適した統計を慎重に選びます。

  • 既定のインスタンス数。 常に安全な既定のインスタンス数を選択します。 既定のインスタンス数は重要です。自動スケーリングでは、メトリックを使用できないときに指定した数にサービスがスケーリングされるからです。

  • 通知。 常に自動スケーリング通知を構成します。 負荷の変化に伴うアプリケーションのパフォーマンスに対する認識を維持することが重要です。