すべてのプロダクト
Search
ドキュメントセンター

Serverless App Engine:自動スケーリングポリシーの設定

最終更新日:Sep 03, 2024

従来のクラスターでO&M操作を実行すると、システムのメンテナンスコストが高く、スケーリングが遅く、容量計画が難しく、リソース使用率が低いという問題が発生する可能性があります。 自動スケーリングは、分散アプリケーション管理にとって重要なO&M機能です。 オートスケーリングが有効になっている場合、インスタンスの数はインスタンスのステータスに基づいて自動的に調整できます。 SAEは、リソース使用量を監視できるアプリケーション監視機能を提供します。 SAEは、複数のタイプの自動スケーリングポリシーも提供します。 メトリックを選択し、ビジネス要件に基づいてしきい値を指定できます。 これにより、リソース使用率を高め、リソースコストを削減できます。

前提条件

アプリケーションがデプロイされます。 詳細については、「SAEへのデモアプリケーションのデプロイ」をご参照ください。

背景情報

SAEは、アプリケーションをスケーリングするための次の方法をサポートします。

  • 手動スケーリング: アプリケーションをすぐにスケーリングする必要がある場合は、手動スケーリング機能を使用することを推奨します。 たとえば、予期しないトラフィックの急増が発生したときにインスタンスを追加できます。 詳細については、「手動スケーリング」をご参照ください。

  • 自動スケーリング: アプリケーションをすぐにスケーリングする必要がない場合は、自動スケーリング機能を使用することを推奨します。 たとえば、自動スケーリングポリシーを設定して、定期的なトラフィックの変更に基づいてインスタンスを自動的に追加または削除できます。 SAEは、スケジュールされた自動スケーリングポリシー、メトリックベースの自動スケーリングポリシー、およびハイブリッド自動スケーリングポリシーのタイプをサポートしています。 詳細については、「SAE自動スケーリングのベストプラクティス」をご参照ください。

次の図は、自動スケーリングポリシーを設定するプロセスを示しています。dg_sae_auto_scaling_rule

シナリオ

SAEは、次の自動スケーリングポリシーをサポートしています。

  • スケジュールされた自動スケーリングポリシーは、アプリケーションが特定の期間内にリソースを使用する必要があるシナリオに適しています。 スケジュールされた自動スケーリングポリシーは、証券、ヘルスケア、行政、教育などの業界で一般的に使用されています。

  • メトリックベースの自動スケーリングポリシーは、アプリケーションがリソースを使用するときにバーストトラフィックと定期的なトラフィックが発生するシナリオに適しています。 メトリックベースの自動スケーリングポリシーは、インターネット、ゲーム、ソーシャルメディアなどの業界で一般的に使用されています。

  • ハイブリッド自動スケーリングポリシーは、アプリケーションが特定の期間内にリソースを使用する必要があり、アプリケーションがリソースを使用するときにバーストトラフィックと定期的なトラフィックが発生するシナリオに適しています。 ハイブリッド自動スケーリングポリシーは、インターネット、教育、ケータリングなどの業界で一般的に使用されています。

使用上の注意

  • 最大5つのスケジュール済み自動スケーリングポリシー、1つのメトリックベース自動スケーリングポリシー、または1つのハイブリッド自動スケーリングポリシーを作成できます。 3種類の自動スケーリングポリシーを同時に使用することはできません。

  • アプリケーションに対して自動スケーリングポリシーが有効になっている場合、アプリケーションのライフサイクルを管理することはできません。 たとえば、アプリケーションのスケーリング、デプロイ (単一バッチリリース、段階的リリース、カナリアリリースを含む) 、停止、再起動、またはインスタンスタイプの変更はできません。 上記の操作を実行する場合は、自動スケーリングポリシーを無効にする必要があります。

  • アプリケーションのライフサイクルを管理する場合、管理プロセスが完了した後にのみ、アプリケーションの自動スケーリングポリシーを作成または有効にできます。

  • 1つのアプリケーションに対して最大50個のインスタンスをデプロイできます。 クォータを増やすには、DingTalkグループ32874633に参加し、ホワイトリストへの追加を申請します。

アプリケーションインスタンスのメトリックの表示 (招待プレビュー)

自動スケーリング機能が無効になっている場合、アプリケーションインスタンスのメトリックを表示し、自動スケーリングポリシーを設定するかどうかを判断できます。 自動スケーリング機能が有効になっている場合、アプリケーションインスタンスのメトリックを表示し、自動スケーリングを有効にする前後のメトリックの値を比較できます。 これにより、オートスケーリングの効果を評価し、それに応じてアラートルールとインスタンスの最大数と最小数を調整できます。

説明

アプリケーションインスタンスのトレンドチャートは招待プレビュー中です。 この機能を使用する場合は、DingTalkグループ32874633に参加し、ホワイトリストへの追加を申請します。

  1. SAEコンソールにログインします。

  2. 左側のナビゲーションウィンドウで、[アプリケーション] をクリックします。 上部のナビゲーションバーで、リージョンを選択します。 次に、アプリケーションの名前をクリックします。

  3. [基本情報] タブの [アプリケーションインスタンスのトレンドチャート] セクションで、ビジネス要件に基づいてディメンションを選択します。sc_pod_trend_indicator_chart

    トレンドチャートの下のタイムラインで選択した時間範囲を変更して、ビジネス要件に基づいてデータを表示できます。 グラフの左下隅にある凡例をクリックして、特定のメトリックのデータを表示することもできます。

    説明

    SAEでは、過去7日間のメトリックデータのみをクエリして、アプリケーションインスタンスを監視できます。

自動スケーリングポリシーの設定

警告

スケーリング操作中のビジネスの中断などの予測できないエラーを防ぐために、ビジネスシナリオに基づいて自動スケーリングポリシーを構成または有効にすることをお勧めします。

  1. SAEコンソールにログインします。

  2. 左側のナビゲーションウィンドウで、[アプリケーション] をクリックします。 上部のナビゲーションバーで、リージョンを選択します。 次に、アプリケーションの名前をクリックします。

  3. [基本情報] ページの右上隅にある [自動スケーリング] をクリックします。 [Auto Scalingポリシーの作成] パネルが表示されます。

  4. では、Auto Scalingポリシーの作成パネル、パラメータを設定します。

    • スケジュールされたスケーリングポリシー

      パラメーター

      説明

      ポリシータイプ

      [スケジュールされたスケーリングポリシー] を選択します。

      ポリシー名

      ポリシーのカスタム名を入力します。

      時間の選択

      • 短期: この設定は、スケジュールされた自動スケーリングポリシーの開始日と終了日を指定する必要があるシナリオに適しています。
      • 長期: この設定は、スケジュールされた自動スケーリングポリシーの終了日を指定する必要がないシナリオに適しています。

      [サイクル]

      スケジュールされた自動スケーリングポリシーが実行される頻度。

      • 毎日: スケジュールされた自動スケーリングポリシーは、毎日特定の期間に実行されます。
      • 毎週: スケジュールされた自動スケーリングポリシーは、指定された週の日数の特定の期間に実行されます。
      • 毎月: スケジュールされた自動スケーリングポリシーは、指定された1か月あたりの特定の期間に実行されます。

      1日のトリガー時間

      スケジュールされた自動スケーリングポリシーがトリガーされた時点と、対応する期間中に保持されているアプリケーションインスタンスの数。 例:

      この例では、CycleパラメーターはDailyに設定され、1つの開始時間は08:00に設定され、対応する保持インスタンス数は10に設定され、別の開始時間は20:00に設定され、対応する保持インスタンス数は3に設定されます。 スケジュール済み自動スケーリングポリシーを有効にすると、SAEは1日の08:00から20:00まで10インスタンスを保持し、スケジュール済み自動スケーリングポリシーで指定されたトリガーポイントに基づいて1日の20:00から翌日の08:00まで3インスタンスを保持します。

      重要
      • スケジュールされた自動スケーリングポリシーの [1日のトリガー時間] セクションで指定されている2つの連続したトリガーポイントの間隔は、5分を超える必要があります。 複数のスケジュールされた自動スケーリングポリシーを設定する場合、SAEは、同じ日付内の2つの連続したトリガーポイント間の間隔が5分を超えるかどうかを確認します。

      • 複数のスケジュールされた自動スケーリングポリシーを設定し、2つのトリガーポイントが重複する場合、システムは新しいトリガーポイントを使用します。 スケジュールされた自動スケーリングポリシーを設定するときは、間隔が5分を超えることを確認する必要があります。

    • メトリックベースのAuto Scalingポリシー

      パラメーター

      説明

      ポリシータイプ

      [メトリックベースのAuto Scaling Policy] を選択します。

      ポリシー名

      ポリシーのカスタム名を入力します。

      トリガー条件

      次のメトリックの1つ以上を選択します。 デフォルトでは、CPU使用率メモリ使用率のメトリクスが表示されます。 [追加] をクリックすると、メトリクスを追加できます。

      • CPU使用率: インスタンスあたりの平均CPU使用率。
      • メモリ使用量: インスタンスあたりの平均メモリ使用量。
      • TCPアクティブ接続: 1インスタンスあたり30秒以内のアクティブなTCP接続の平均数。
      • TCP接続の合計: インスタンスあたり30秒以内のTCP接続の平均総数。
      • アプリケーションQPS: インスタンスあたり1分以内の1秒あたりの平均クエリ数 (QPS) 。
      • アプリケーションRT: アプリケーション内のすべてのAPI操作の1分あたりの平均応答時間 (RT) 。
      • インターネット接続CLB QPS: 1インスタンスあたり15秒以内のインターネット接続Classic Load Balancer (CLB) インスタンスの平均QPS。
      • インターネット接続CLB RT: 15秒以内のインターネット接続CLBインスタンスの平均RT。
      • 内部向きCLB QPS: インスタンスあたり15秒以内の内部向きCLBインスタンスの平均QPS。
      • 内部向きCLB RT: 15秒以内の内部向きCLBインスタンスの平均RT。
      説明
      • 過去30分間のアプリケーションQPSまたはアプリケーションRTメトリックのデータが [アプリケーションモニタリング] ページに表示されている場合にのみ、[アプリケーションQPS] または [アプリケーションRT] メトリックを指定できます。
      • 指定されたメトリックの値のいずれかが指定された制限以上の場合、アプリケーションインスタンスはスケールアウトされます。 スケールアウト操作後のインスタンス数が、[Maximum Application instances] パラメーターの値以下です。 指定されたすべてのメトリックの値が制限未満の場合、アプリケーションインスタンスはスケールインされます。 スケールイン操作後のインスタンス数が、[最小アプリケーションインスタンス] パラメーターの値以上です。
      • CLB関連のメトリックを指定する前に、CLBインスタンスをアプリケーションにバインドし、アクセスログ管理機能を有効にする必要があります。 HTTPまたはHTTPSをリッスンするCLBポートを指定する必要があります。 詳細については、「SLBインスタンスのアプリケーションへのバインド」および「アクセスログ管理機能の有効化」をご参照ください。

      [インスタンス数]

      [最小アプリケーションインスタンス] および [最小アプリケーションインスタンス] パラメーターを設定します。 または、スライダーを使用して、インスタンス数の値の範囲を選択します。

      • 最小アプリケーションインスタンス: 指定されたスケールイン条件が満たされた場合のスケールイン操作後の最小インスタンス数。
      • 最大アプリケーションインスタンス数: 指定されたスケールアウト条件が満たされた場合のスケールアウト操作後のインスタンスの最大数。
      • 最小使用可能インスタンス: 各デプロイで使用可能なインスタンスの最小数。 値は0以上で、現在のアプリケーションのインスタンスの総数以下である必要があります。 このパラメーターは、[最小アプリケーションインスタンス] パラメーターの値が [最小使用可能インスタンス] パラメーターの値より小さい場合にのみ使用できます。 [設定] をクリックします。 [最小使用可能インスタンスの指定] ダイアログボックスで、使用可能なインスタンスの最小数を指定します。
      説明 Manual ScalingCreate Auto Scaling Policyで指定できるインスタンスの最大数が同期されます。 アプリケーションのデプロイおよびロールバック中に、少なくとも1つのインスタンスが使用可能であることを確認します。 これにより、ビジネスの継続性が確保されます。 値を0に設定すると、アプリケーションのアップグレード時に業務の中断が発生します。

      詳細設定

      • スケールアウトステップサイズ: 単位時間あたりに追加できるインスタンスの最大数。
      • スケールインステップサイズ: 単位時間あたりに削除できるインスタンスの最大数。
      • スケールアウト安定化ウィンドウ: システムが安定している期間。 自動スケーリングアルゴリズムは、スケールアウト操作が実行されるときに、指定された間隔内で計算された予想インスタンスの最小数が使用されるようにするために使用されます。
      • スケールイン安定化ウィンドウ: システムが安定している期間。 自動スケーリングアルゴリズムは、スケールイン操作が実行されるときに、指定された間隔内で計算された予想インスタンスの最大数が使用されるようにするために使用されます。
      • スケールインの無効化: このスイッチをオンにすると、アプリケーションインスタンスはスケールインされません。 これにより、ピーク時のビジネスリスクを防ぎます。 デフォルトでは、スイッチはオフになっています。
    • ハイブリッドスケーリングポリシー

      パラメーター

      説明

      ポリシータイプ

      [ハイブリッドスケーリングポリシー] を選択します。

      ポリシー名

      ポリシーのカスタム名を入力します。

      トリガー条件

      次のメトリックの1つ以上を選択します。 デフォルトでは、CPU使用率メモリ使用率のメトリクスが表示されます。 [追加] をクリックすると、メトリクスを追加できます。

      • CPU使用率: インスタンスあたりの平均CPU使用率。
      • メモリ使用量: インスタンスあたりの平均メモリ使用量。
      • TCPアクティブ接続: 1インスタンスあたり30秒以内のアクティブなTCP接続の平均数。
      • TCP接続の合計: インスタンスあたり30秒以内のTCP接続の平均総数。
      • アプリケーションQPS: インスタンスあたり1分以内の1秒あたりの平均クエリ数 (QPS) 。
      • アプリケーションRT: アプリケーション内のすべてのAPI操作の1分あたりの平均応答時間 (RT) 。
      • インターネット接続CLB QPS: 1インスタンスあたり15秒以内のインターネット接続Classic Load Balancer (CLB) インスタンスの平均QPS。
      • インターネット接続CLB RT: 15秒以内のインターネット接続CLBインスタンスの平均RT。
      • 内部向きCLB QPS: インスタンスあたり15秒以内の内部向きCLBインスタンスの平均QPS。
      • 内部向きCLB RT: 15秒以内の内部向きCLBインスタンスの平均RT。
      説明
      • 過去30分間のアプリケーションQPSまたはアプリケーションRTメトリックのデータが [アプリケーションモニタリング] ページに表示されている場合にのみ、[アプリケーションQPS] または [アプリケーションRT] メトリックを指定できます。
      • 指定されたメトリックの値のいずれかが指定された制限以上の場合、アプリケーションインスタンスはスケールアウトされます。 スケールアウト操作後のインスタンス数が、[Maximum Application instances] パラメーターの値以下です。 指定されたすべてのメトリックの値が制限未満の場合、アプリケーションインスタンスはスケールインされます。 スケールイン操作後のインスタンス数が、[最小アプリケーションインスタンス] パラメーターの値以上です。
      • CLB関連のメトリックを指定する前に、CLBインスタンスをアプリケーションにバインドし、アクセスログ管理機能を有効にする必要があります。 HTTPまたはHTTPSをリッスンするCLBポートを指定する必要があります。 詳細については、「SLBインスタンスのアプリケーションへのバインド」および「アクセスログ管理機能の有効化」をご参照ください。

      最大および最小アプリケーションインスタンス

      デフォルト設定

      アプリケーションインスタンスの最大数と最小数。

      • 最小アプリケーションインスタンス: 指定されたスケールイン条件が満たされた場合のスケールイン操作後の最小インスタンス数。
      • 最大アプリケーションインスタンス数: 指定されたスケールアウト条件が満たされた場合のスケールアウト操作後のインスタンスの最大数。
      • 最小使用可能インスタンス: 各デプロイで使用可能なインスタンスの最小数。 値は0以上で、現在のアプリケーションのインスタンスの総数以下である必要があります。 このパラメーターは、[最小アプリケーションインスタンス] パラメーターの値が [最小使用可能インスタンス] パラメーターの値より小さい場合にのみ使用できます。 [設定] をクリックします。 [最小使用可能インスタンスの指定] ダイアログボックスで、使用可能なインスタンスの最小数を指定します。
      説明 Manual ScalingCreate Auto Scaling Policyで指定できるインスタンスの最大数が同期されます。 アプリケーションのデプロイおよびロールバック中に、少なくとも1つのインスタンスが使用可能であることを確認します。 これにより、ビジネスの継続性が確保されます。 値を0に設定すると、アプリケーションのアップグレード時に業務の中断が発生します。

      特別な時間設定

      特定の期間内のアプリケーションインスタンスの最大数と最小数。 デフォルトでは、[時間1の選択] セクションが表示されます。 [+ 特別期間の追加] をクリックし、表示される [時間2の選択] セクションでパラメーターを設定します。

      • 短期: この設定は、スケジュールされた自動スケーリングポリシーの開始日と終了日を指定する必要があるシナリオに適しています。
      • 長期: この設定は、スケジュールされた自動スケーリングポリシーの終了日を指定する必要がないシナリオに適しています。
      説明
      • [特別な時間設定] セクションで、最大2つの時間選択設定を作成できます。

      • ハイブリッド自動スケーリングポリシーのSelect Time設定では、同じ日に最大20の特別な期間を指定できます。 同じ日内の指定された期間が重複しないようにしてください。

      [サイクル]

      [サイクル] ドロップダウンリストから、[毎日][毎週] 、または [毎月] を選択します。

      • 毎日: スケジュールされた自動スケーリングポリシーは、毎日特定の期間に実行されます。
      • 毎週: スケジュールされた自動スケーリングポリシーは、指定された週の日数の特定の期間に実行されます。
      • 毎月: スケジュールされた自動スケーリングポリシーは、指定された1か月あたりの特定の期間に実行されます。

      1日のトリガー時間

      ハイブリッド自動スケーリングポリシーが有効になる期間、およびこの期間中のアプリケーションインスタンスの最大数と最小数。 例:

      この例では、[Cycle] パラメーターは [Daily] に設定され、[Special Time Period] パラメーターは08:00〜20:00に設定され、[Minimum Application Instances] パラメーターは3に設定され、[Maximum Application Instances] パラメーターは10に設定されています。 ハイブリッド自動スケーリングポリシーを有効にすると、SAEは、指定された期間内に [トリガー条件] セクションの設定に基づいて、前述のスケジュール済み自動スケーリングポリシーを実行します。

      詳細設定

      • スケールアウトステップサイズ: 単位時間あたりに追加できるインスタンスの最大数。
      • スケールインステップサイズ: 単位時間あたりに削除できるインスタンスの最大数。
      • スケールアウト安定化ウィンドウ: システムが安定している期間。 自動スケーリングアルゴリズムは、スケールアウト操作が実行されるときに、指定された間隔内で計算された予想インスタンスの最小数が使用されるようにするために使用されます。
      • スケールイン安定化ウィンドウ: システムが安定している期間。 自動スケーリングアルゴリズムは、スケールイン操作が実行されるときに、指定された間隔内で計算された予想インスタンスの最大数が使用されるようにするために使用されます。
      • スケールインの無効化: このスイッチをオンにすると、アプリケーションインスタンスはスケールインされません。 これにより、ピーク時のビジネスリスクを防ぎます。 デフォルトでは、スイッチはオフになっています。
      説明
      • ハイブリッド自動スケーリングポリシーの複数の特別な期間は重複できません。

      • ハイブリッド自動スケーリングポリシーのトリガーポイントは、現在のシステム時刻より前にすることはできません。 現在のシステム時刻より前のトリガーポイントを指定した場合、ハイブリッド自動スケーリングポリシーは次のサイクルで有効になります。

  5. [次へ: スケジュールされたスケーリングポリシーのプレビュー] をクリックし、ポリシー設定を表示します。 次に、[確認] をクリックします。

  6. ポリシーを設定したら、[インスタンスのデプロイ情報] タブの [Auto Scaling] セクションに移動します。 設定したポリシーを見つけ、[操作] 列の [有効化] をクリックします。

  7. では、Auto Scalingポリシーの有効化メッセージ, クリックOK.

    [ステータス] 列に表示される値が [有効] に変わった場合、ポリシーは有効になります。

自動スケーリングポリシーの確認

アプリケーションに対して自動スケーリングポリシーを有効にすると、SAEはアプリケーションのステータスの監視を開始します。 トリガー条件が満たされると、SAEはポリシーに基づいてアプリケーションを自動的にスケーリングします。 自動スケーリングポリシーが有効かどうかを確認するには、次の手順を実行します。

  1. SAEコンソールにログインします。

  2. 左側のナビゲーションウィンドウで、[アプリケーション] をクリックします。 上部のナビゲーションバーで、アプリケーションがデプロイされているリージョンを選択します。 [アプリケーション] ページで、自動スケーリングポリシーが設定されているアプリケーションを見つけます。

    自動スケーリングポリシーのステータスは、[スケーリングポリシーのステータス] および [現在のインスタンス /期待されるインスタンス] 列で確認できます。 アプリケーション名をクリックして [基本情報] タブに移動し、[アプリケーション情報] セクションの [実行中インスタンス] パラメーターを表示することもできます。

    [Running Instances] パラメーターの値が、オートスケーリングポリシーの必要なインスタンス数と同じである場合、ポリシーは有効になります。

  3. (オプション) 左側のナビゲーションウィンドウで、[アプリケーションイベント] をクリックします。 [すべてのソースタイプ] ドロップダウンリストで、[Auto Scaling (HorizontalPodAutoscaler)] を選択して、自動スケーリングイベントの原因を表示します。

次のステップ

アプリケーションの自動スケーリングポリシーを設定した後、[インスタンスのデプロイ情報] タブでポリシーの詳細を表示できます。

  1. SAEコンソールにログインします。

  2. 左側のナビゲーションウィンドウで、[アプリケーション] をクリックします。 上部のナビゲーションバーで、リージョンを選択します。 次に、アプリケーションの名前をクリックします。

  3. [基本情報] ページで、[インスタンスのデプロイ情報] タブをクリックします。 このタブで、[Auto Scaling] セクションを展開します。 設定されたポリシーの [操作] 列で、ビジネス要件に基づいてポリシーを有効、無効、変更、または削除します。