新しいインスタンスが初期化を完了する前にトラフィックの受信を開始したり、デプロイメント中にインスタンスがリクエスト処理の途中でオフラインになったりすると、マイクロサービスアプリケーションがリクエストをドロップする可能性があります。SAE は Microservices Engine (MSE) と統合し、グレースフル起動(トラフィックを徐々に増加)およびグレースフルシャットダウン(インスタンスがオフラインになる前に処理中のリクエストをドレイン)といったマイクロサービスガバナンス機能により、これらの問題に対処します。本トピックでは、マイクロサービスガバナンスを有効化し、Java アプリケーション向けにグレースフル起動を設定する方法について説明します。
前提条件
作業を開始する前に、以下の要件を満たしていることを確認してください。
SAE 上にデプロイ済み、またはデプロイ準備が整った Java アプリケーションがあること
マイクロサービスガバナンス用の MSE Professional Edition が有効化されていること
MSE は、SAE 経由で使用した場合、別途課金が発生します。
マイクロサービスガバナンスの仕組み
ガバナンスエージェント
マイクロサービスガバナンスを有効化すると、SAE は各アプリケーションインスタンスに組み込み済みの MSE エージェントを自動的に注入します。このエージェントは以下の機能を提供します。
サービスディスカバリおよび構成管理
グレースフル起動およびシャットダウン
トラフィックガバナンス
システム保護
グレーレベルメッセージング
フルリンクトレーシング
インテリジェントサーキットブレーカー
ダウングレードポリシー
同一ゾーン優先
エージェントは、インスタンスあたり約 0.2 コアおよび 200 MB を消費します。この機能を有効化する前に、リソース計画を立ててください。
グレースフル起動
新しいインスタンスが参加すると、サービスレジストリに登録され、トラフィックの受信を開始します。しかし、アプリケーションがデータベース接続プールのロードなど、初期化を完了するまでに時間がかかる場合、インスタンスが準備完了する前にトラフィックが到着し、エラーを引き起こす可能性があります。
グレースフル起動は、以下の 2 つのメカニズムによりこれを防止します。
| メカニズム | 動作内容 |
|---|---|
| ウォームアップ | 事前設定された持続時間にわたり、トラフィックを低いレベルから徐々に増加させることで、Java アプリケーションがコールドスタートから完全な処理能力に達するまでの時間を確保します。事前設定された持続時間が経過すると、トラフィックの増加は停止します。 |
| 遅延登録 | サービスレジストリへの登録を指定された時間だけ遅延させることで、初期化が完了した後にのみトラフィックが到着するようにします。 |
グレースフルシャットダウン
グレースフルシャットダウンは、マイクロサービスガバナンスを有効化すると デフォルトで有効 になります。追加の設定は不要です。デプロイメント、停止、スケールイン、再起動、ロールバック、またはリセット中にインスタンスがオフラインになる際、システムはインスタンスをシャットダウンする前に処理中のトラフィックをドレインし、急激な切断によるリクエストエラーを防止します。
マイクロサービスガバナンス設定項目へのアクセス
マイクロサービスガバナンス 設定項目へのパスは、アプリケーションの現在の状態によって異なります。
| シナリオ | 手順 |
|---|---|
| 新規アプリケーションの作成時 | SAE コンソール にログインします。アプリケーション管理 > アプリケーション一覧 に移動し、ご利用のリージョンと名前空間を選択して、アプリケーションの作成 をクリックします。アプリケーション基本情報 ページで、次へ:詳細設定 をクリックします。 |
| 実行中のアプリケーションの変更時 | アプリケーション管理 > アプリケーション一覧 に移動し、ご利用のリージョンと名前空間を選択して、アプリケーション名をクリックします。基本情報 ページで、アプリケーションのデプロイ をクリックします。 |
| 停止中のアプリケーションの変更時 | アプリケーション管理 > アプリケーション一覧 に移動し、ご利用のリージョンと名前空間を選択して、アプリケーション名をクリックします。基本情報 ページで、アプリケーション構成の変更 をクリックします。 |
実行中のアプリケーションを再デプロイすると、アプリケーションが再起動します。業務への影響を避けるため、オフピーク時間帯にデプロイを実施してください。
マイクロサービスガバナンス 設定項目を見つけ、展開して、以下の手順に従ってください。
マイクロサービスガバナンスの有効化
マイクロサービスガバナンス のトグルスイッチをオンにします。

グレースフル起動の設定
マイクロサービスガバナンスを有効化した後、同じ マイクロサービスガバナンス 設定項目内でグレースフル起動を設定します。
グレースフル起動のトグルスイッチをオンにします。

ウォームアップ持続時間 および 遅延登録 パラメーターを設定します。
重要遅延登録 が 0 以外の場合、アプリケーションデプロイメントに readiness プローブ を設定し、アクセスパスを
/health、ポートを54199に設定してください。この readiness プローブにより、Kubernetes はインスタンスがレジストリに完全に登録されるまでサービスエンドポイントから除外し、未準備状態のプロバイダーにコンシューマーがルーティングすることによるトラフィックドロップを防止します。LivenessProbeを同じパス/healthに設定しないでください。これにより無限再起動ループが発生します。パラメーター 説明 ウォームアップ持続時間 (秒) 受信トラフィックを低いレベルからフルキャパシティまで徐々に増加させる持続時間です。Java アプリケーションのコールドスタート時の応答時間の急増を防ぐために使用します。トラフィックは自動的に増加し、事前設定された持続時間が経過すると停止します。 遅延登録 起動後にサービス登録を遅延させる秒数です。アプリケーションがリクエストを処理可能になる前に大規模なデータセットをロードしたり、時間のかかる非同期初期化を実行したりする場合に使用します。 