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

Serverless App Engine:SAE 自動スケーリングのベストプラクティス

最終更新日:Jun 07, 2025

Serverless App Engine (SAE) は、トラフィックの変化に対応し、ビジネスの安定性を確保するための自動スケーリングポリシーを提供します。アプリケーションの自動スケーリングポリシーを構成すると、アプリケーションはピーク時に自動的にスケールアウトされ、オフピーク時にスケールインされます。メンテナンスフリーの自動スケーリング機能は、低コストで高い信頼性を提供します。たとえば、プラットフォームの高い安定性を確保し、e コマースのプロモーション活動中に顧客の要件に迅速に対応するために、SAE を使用してアプリケーションをデプロイし、自動スケーリングポリシーを構成できます。 SAE は、関連ポリシーをリアルタイムで監視および変更するのに役立ちます。後続の O&M 最適化を効率的に実行できます。

自動スケーリングの構成プロセス

次の図は、SAE 自動スケーリングの構成プロセスを示しています。

dg_best_practice_of_sae_scaling_rule

準備

  • アプリケーションヘルスチェックを構成します。この構成により、アプリケーションの可用性が確保されます。アプリケーションは、アプリケーションインスタンスが起動、実行、および準備完了状態になった後にのみトラフィックを受信できます。詳細については、「アプリケーションヘルスチェックの構成」をご参照ください。

  • アプリケーションライフサイクル管理を構成します。これにより、スケールイン操作が実行されたときに、アプリケーションが想定どおりに正常にシャットダウンされることが保証されます。アプリケーションライフサイクル管理を構成するには、[PreStop 設定] を構成します。詳細については、「アプリケーションライフサイクル管理の構成」をご参照ください。

  • 指数バックオフ再試行メカニズムを構成します。スケーリングのタイミングが適切でないこと、アプリケーションの起動のタイミングが適切でないこと、またはアプリケーションの起動またはシャットダウンが正常に行われないことによって発生する可能性のあるサービス呼び出しエラーを防ぐために、Java 指数バックオフ再試行メカニズムを構成できます。

  • アプリケーションの起動速度を最適化します。

    • ソフトウェアパッケージを最適化します。クラスの読み込みやキャッシュなどの外部要因の影響を軽減するために、アプリケーションの起動時間を最適化できます。

    • イメージを最適化します。インスタンスの作成時にイメージのプルに必要な時間を短縮するために、イメージのサイズを縮小できます。オープンソースツール を使用して、イメージレイヤー情報を分析および簡素化できます。

    • SAE コンソールで Java アプリケーションを作成するときは、Dragonwell 11 環境を選択し、アプリケーションの起動高速化機能を有効にします。詳細については、「Java アプリケーションの起動高速化の構成」をご参照ください。

自動スケーリングポリシーの構成

自動スケーリングメトリックの構成

SAE では、CPU 感度、メモリ感度、I/O 感度など、現在のアプリケーションの属性に基づいて、基本モニタリングモジュールとアプリケーションモニタリングモジュールで複数のメトリックを柔軟に構成できます。

[基本モニタリング] モジュールと [アプリケーションモニタリング] モジュールで、過去 6 時間、12 時間、1 日、または 7 日間のピーク値、P95 値または P99 値など、メトリックの既存データを表示し、メトリックの期待値を推定できます。アプリケーションのピーク容量を推定するには、Performance Testing (PTS) などのストレステストツールを使用してストレステストを実行し、アプリケーションが処理できる同時リクエスト数、アプリケーションが必要とする CPU コア数とメモリサイズ、高負荷状態でのアプリケーションの応答方法などの情報を取得します。

自動スケーリングポリシーを構成する場合は、次の要素を考慮する必要があります。

  • ビジネスの可用性とコストの重み。重みに基づいて、関連するメトリックの期待値を指定します。例:

    • 可用性最適化ポリシーを構成するには、メトリック値を 40% に設定します。

    • 可用性とコストのバランスポリシーを構成するには、メトリック値を 50% に設定します。

    • コスト最適化ポリシーを構成するには、メトリック値を 70% に設定します。

  • アップストリームサービスとダウンストリームサービス、ミドルウェア、およびデータベースの依存関係。スケールアウト操作が実行されたときにエンドツーエンドの可用性を確保するために、依存関係に基づいて自動スケーリングポリシーまたは速度制限とデグレード方法を構成します。

設定を構成した後、モニタリングデータに基づいて自動スケーリングポリシーを変更し、指定された容量とアプリケーションの実際の負荷の差を縮小できます。モニタリングデータの表示方法については、「基本モニタリング」をご参照ください。

メモリメトリックの構成

Java アプリケーションランタイムの最適化は、物理メモリの解放と、メモリメトリックとビジネスの相関関係の強化によって実装されます。 Dragonwell ランタイム環境で Java 仮想マシン (JVM) パラメーターを追加して、Java ヒープメモリのスケーリング機能を提供する ElasticHeap を有効にできます。これにより、Java アプリケーションの実行時の物理メモリの実際の使用量が削減されます。 ElasticHeap の詳細については、「G1ElasticHeap」をご参照ください。

Dragonwell 環境を選択し、ElasticHeap 定期アンコミット を有効にして、メモリを自動的にアンコミットすることをお勧めします。詳細については、「手順」および「起動コマンドの構成」をご参照ください。

  • Java 環境: [JAR パッケージの構成] セクションで、[Java 環境] ドロップダウンリストから Dragonwell 環境を選択します。配置Jar包

  • JVM パラメーター: [起動コマンド設定] セクションに、-XX:+ElasticHeapPeriodicUncommit と入力します。启动参数

説明

メモリメトリック構成は、JVM メモリ管理ツールまたは glibc malloc メモリ割り当てツールを使用して動的メモリ管理を実行するアプリケーション、または Free 操作を実行するアプリケーションには適していません。アプリケーションのアイドルメモリがオペレーティングシステムにタイムリーに解放されない場合、インスタンスによって消費される物理メモリと新しいインスタンスによって消費される平均メモリをリアルタイムで削減することはできません。その結果、スケールイン操作を実行できません。

インスタンスの構成

  • 最小インスタンス数を指定する

    最小インスタンス数を 2 以上に設定し、アプリケーションにマルチゾーン vSwitch を指定します。基盤となるノードの例外が発生した場合、インスタンスがエビクトされるか、ゾーンでインスタンスが使用できなくなる可能性があります。この場合、アプリケーションは停止します。この問題を防ぐために、適切な設定を行うことをお勧めします。

  • 最大インスタンス数を指定する

    最大インスタンス数を、ゾーン内の IP アドレスの数以下の値に設定します。構成されている IP アドレスの数が制限を超えると、アプリケーションにインスタンスを追加できません。この問題を防ぐために、適切な値を指定することをお勧めします。

    [アプリケーション情報] セクションの [基本情報] ページで、現在のアプリケーションで使用可能な IP アドレスの数を確認できます。使用可能な IP アドレスが不足している場合は、別の vSwitch を使用するか、vSwitch を追加します。詳細については、「自動スケーリングポリシーの検証」をご参照ください。

    应用信息

スケーリングプロセスの監視

スケーリング後の最大インスタンス数

[概要] ページでは、自動スケーリングポリシーが有効になっているアプリケーションを表示し、インスタンス数が上限に達しているアプリケーションを監視できます。データに基づいて、自動スケーリングポリシーの構成を再評価できます。

弹性生效的应用

説明

アプリケーションに 50 を超えるインスタンスを追加する場合は、DingTalk グループ 32874633 に参加して、アカウントをホワイトリストに追加してください。

ゾーンリバランス

自動スケーリングポリシーに基づいてスケールイン操作が実行された後、アプリケーションインスタンスがゾーンに均等に割り当てられない場合があります。アプリケーションの [基本情報] ページで、各インスタンスが属するゾーンを表示できます。インスタンスが均等に割り当てられていない場合は、インスタンスを [再起動] して、ゾーンリバランスを実行できます。

vSwitch

自動スケーリングポリシーの自動再開の構成

アプリケーションのデプロイなどの変更オーダーをリリースすると、SAE は、2 つの操作間の競合を防ぐために、アプリケーションの自動スケーリングポリシーを無効にします。変更オーダーの完了後に自動スケーリングポリシーを再開する場合は、[アプリケーションのデプロイ] ページで [自動] を選択します。

恢复自动弹性方式

自動スケーリングポリシーの維持

アプリケーションイベントの表示

アプリケーションの [アプリケーションイベント] ページで、スケール時間やスケールタイプなど、関連する自動スケーリングポリシーの動作情報を表示できます。自動スケーリングポリシーの有効性を評価し、ビジネス要件に基づいてポリシーを変更できます。詳細については、「アプリケーションイベントの表示」をご参照ください。

アプリケーションインスタンスのモニタリングチャートの表示

アプリケーションの [基本情報] ページの [基本情報] タブで、[アプリケーションインスタンストレンドチャート] を表示できます。チャートには、CPU 使用率、メモリ使用量、アクティブな TCP 接続数、サービスリクエスト数、平均応答時間など、過去 7 日間のメトリックデータが表示されます。詳細については、「アプリケーションインスタンスのメトリックの表示 (招待プレビュー)」をご参照ください。

sc_pod_trend_indicator_chart