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

Platform For AI:スクローリングアップデートとグレースフルシャットダウン

最終更新日:Nov 05, 2025

Elastic Algorithm Service (EAS) サービスを再起動するか、そのパラメーターを更新すると、スクローリングアップデートがトリガーされます。このリリース ポリシーは、古いインスタンスを徐々に新しいインスタンスに置き換えることで、ダウンタイムなしでバージョンアップグレードを完了させ、高可用性 (HA) を確保します。

スクローリングアップデート

アップデート中、システムは構成パラメーターに基づいて新しいインスタンスを作成し、古いインスタンスを徐々に置き換えます。新しいインスタンスの起動に失敗した場合、アップデートは中止されます。失敗したインスタンスはトラフィックを受け入れず、残りの古いインスタンスがサービスを提供し続けます。サービスに影響はありません。アップデートをロールバックするか、再起動するかを選択できます。新しいアップデートでは、まず以前の不完全なアップデートで失敗したインスタンスが削除されます。

スクローリングアップデートの動作は、次の 2 つの主要なパラメーターによって制御されます:

  • 最大サージインスタンス数 (JSON パラメーター: rolling_strategy.max_surge)

    • 説明: アップデート中に作成できる追加インスタンスの最大数。これは正の整数またはパーセンテージで指定できます。値が大きいほど、アップデートは速くなります。

    • : 100 個のインスタンスがあり、このパラメーターを 20 に設定した場合、アップデートが開始されると、システムは 20 個の新しいインスタンスを作成します。

    • デフォルト値: インスタンス総数の 2%。結果が 1 未満の場合、値は 1 に設定されます。

    重要

    [最大サージインスタンス数] の値が大きすぎると、一度に多くの新しいインスタンスが作成され、同数の古いインスタンスが置き換えられます。新しいインスタンスがプリフェッチされていない場合、トラフィックの急増がサービスの安定性に影響を与える可能性があります。

  • 最大利用不可インスタンス数 (JSON パラメーター: rolling_strategy.max_unavailable)

    • 説明: アップデート中に利用できなくなる可能性のあるインスタンスの最大数。これにより、リソースが解放され、リソース不足によってアップデートプロセスがブロックされるのを防ぎます。

    • : このパラメーターを N に設定すると、アップデートの開始時にシステムは N 個の古いインスタンスを直ちに停止します。

    • デフォルト値:

      • 専用リソースグループ: 2025 年 9 月 1 日より前に作成されたサービスの場合、デフォルト値は 1 です。2025 年 9 月 1 日以降に作成されたサービスの場合、弾性リソースプールが有効な場合はデフォルト値が 0、有効でない場合は 1 です。

      • パブリックリソースグループ: 0。

      • Lingjun AI コンピューティングサービス クォータ: 2025 年 9 月 1 日より前に作成されたサービスの場合、デフォルト値は 0 です。2025 年 9 月 1 日以降に作成されたサービスの場合、デフォルト値はインスタンス総数の 2% です。結果が 1 未満の場合、値は 1 に設定されます。

    重要
    • 単一インスタンスのサービスの場合、スクローリングアップデート中に [最大利用不可インスタンス数] を 1 に設定すると、新しいインスタンスが開始する前に古いインスタンスが終了します。サービスにはアクティブなインスタンスがなくなり、一時的に利用できなくなります。

    • [最大利用不可インスタンス数] の値が大きすぎると、同時に多くのインスタンスがオフラインになる可能性があります。残りのインスタンスがトラフィックを処理できなくなり、サービスの可用性に影響します。

グレースフルシャットダウン

グレースフルシャットダウンのパラメーターは、スクローリングアップデート中のインスタンス終了の安定性に影響します。

  • グレースフルシャットダウン時間 (JSON パラメーター: eas.termination_grace_period)

    • 説明: システムがインスタンスのグレースフルシャットダウンを待機する時間 (秒単位)。インスタンスが Terminating 状態になると、トラフィックはルーティングされなくなります。システムは、インスタンスがオフラインになる前に、進行中のリクエストの処理を完了させるために指定された期間待機します。リクエストの処理時間が長い場合は、この値を増やす必要があります。

    • デフォルト値: 30。

  • SIGTERM の送信 (JSON パラメーター: rpc.enable_sigterm)

    • 説明: SIGTERM は、プロセスを終了させるための信号です。JSON パラメーターの値は true または false にすることができます。

      • false: インスタンスの終了時に、システムは SIGTERM 信号を送信しません。

      • true: インスタンスの終了時に、システムは直ちに SIGTERM 信号を送信します。サービスのメインプロセスは、シグナルハンドラにカスタムのグレースフルシャットダウンロジックを実装する必要があります。そうしないと、プロセスが直ちに終了し、グレースフルシャットダウンプロシージャが失敗する可能性があります。

    • デフォルト値: 送信しない (false)。

デフォルトでは、システムは SIGTERM 信号を送信しません。これは、デフォルトではアプリケーションコンテナーが SIGTERM 信号をブロックしないためです。アプリケーションコンテナーが SIGTERM 信号を受信すると、アプリケーションプロセスは直ちに終了します。これにより、グレースフルシャットダウンプロシージャが失敗し、サービスが中断される可能性があります。

リクエストの処理時間に大きなばらつきがあるサービスの場合は、SIGTERM を有効にします。たとえば、リクエストの処理時間が数秒から 30 分の範囲である場合、グレースフルシャットダウン時間を 30 分に固定すると、サービスのアップデートが遅くなります。この場合、SIGTERM 信号を受信し、進行中のすべてのリクエストの処理が完了した後にのみ終了するようにアプリケーションコンテナーを構成する必要があります。これにより、終了プロセスをより柔軟に制御できます。

非同期推論サービスでは SIGTERM を有効にする必要はありません。インスタンスが終了すると、EAS コントロールレイヤーが自動的に SIGTERM 信号に応答します。新しいリクエストの受け入れを停止し、インスタンスが終了する前に進行中のリクエストが処理されるのを待ちます。