SAE でアプリケーションをデプロイした後、ヘルスチェックを使用してアプリケーションとサービスの正常性を監視できます。これにより、例外発生時に問題を特定できます。SAE では、アプリケーションの作成またはデプロイ時にヘルスチェックを設定できます。このトピックでは、SAE コンソールでヘルスチェックを設定する方法について説明します。
背景情報
ヘルスチェックの原則
ヘルスチェックは、liveness プローブ、readiness プローブ、または startup プローブが定期的にアプリケーションインスタンスをチェックするプロセスです。結果は SAE コンソールに送信されます。これにより、クラスター環境におけるサービスの全体的な正常性を監視し、問題を特定できます。
SAE は Kubernetes に基づいており、次の 3 種類のヘルスチェックを提供します。
アプリケーションインスタンスの liveness チェック (Liveness 構成): アプリケーションインスタンスをチェックして、正しく実行されているかどうかを判断します。
成功: アプリケーションインスタンスは正常です。SAE は何も操作を行いません。
失敗: アプリケーションインスタンスは異常です。SAE はアプリケーションインスタンスを再起動します。
アプリケーションサービスの readiness チェック (Readiness 構成): アプリケーションサービスをチェックして、受信トラフィックを処理する準備ができているかどうかを判断します。
成功: アプリケーションは準備完了です。SAE はサービストラフィックをアプリケーションに割り当てます。
失敗: アプリケーションは準備ができていません。SAE はサービストラフィックをアプリケーションに割り当てません。
アプリケーションの startup プローブ (StartupProbe 構成): アプリケーションが正常に起動したかどうかをチェックします。
成功: アプリケーションは正常に起動しました。liveness プローブと readiness プローブも設定した場合、startup プローブが成功した後にそれらが実行を開始します。
失敗: アプリケーションの起動に失敗しました。SAE は自動的にインスタンスを再起動します。
成功と失敗の基準
成功: 連続した成功プローブの数が指定された [正常のしきい値] に達すると、チェックは成功と見なされます。
失敗: ヘルスチェックが失敗した場合、SAE は設定された間隔でプローブを続行します。連続した失敗の数が指定された [異常のしきい値] に達すると、SAE は操作を実行します。liveness プローブが失敗した場合、SAE はインスタンスを再起動します。readiness プローブが失敗した場合、SAE はインスタンスへのトラフィック送信を停止します。
ヘルスチェックパラメーター
SAE は、次のパラメーターを使用してアプリケーションインスタンスとアプリケーションの正常性をチェックします。
初期遅延
アプリケーションの起動から最初のプローブが開始されるまでの遅延時間。この値は、アプリケーションの通常の起動時間よりも長くする必要があります。そうしないと、アプリケーションのデプロイまたは実行時にヘルスチェックが失敗し、再起動が繰り返される可能性があります。たとえば、アプリケーションの起動に 60 秒かかる場合、初期遅延を 70 秒に設定する必要があります。
タイムアウト
1 回のプローブのタイムアウト (秒単位)。デフォルト値は 1 です。たとえば、タイムアウトを 10 秒に設定した場合、10 秒以内に応答が返されないプローブは失敗と見なされます。このパラメーターを 0 に設定するか、空のままにすると、デフォルト値の 1 秒が使用されます。
期間
ヘルスチェックの間隔 (秒単位)。デフォルト値は 30 です。たとえば、期間を 5 秒に設定すると、ヘルスチェックは 5 秒ごとに実行されます。アプリケーションコンテナーが最初に起動するとき、SAE は設定された期間よりも頻繁に readiness プローブを実行する場合があります。これにより、インスタンスはより早くリクエストの処理を開始でき、サービスの起動速度と全体的なユーザーエクスペリエンスが向上します。
アクセスポイント
アプリケーションの作成
SAE アプリケーションリスト ページで、上部でターゲットリージョンと名前空間を選択し、[アプリケーションの作成] をクリックします。[アプリケーションの基本情報] ページで、パラメーターを設定し、[次へ: 詳細設定] をクリックします。
実行中のアプリケーションの変更
警告アプリケーションを再デプロイすると、アプリケーションは再起動されます。ビジネスの中断などの予測不能なエラーを防ぐため、オフピーク時にアプリケーションをデプロイすることをお勧めします。
SAE アプリケーションリスト ページで、上部でターゲットリージョンと名前空間を選択します。ターゲットアプリケーションの [アプリケーション ID] をクリックして、アプリケーション詳細ページを開きます。左側のナビゲーションウィンドウで、[基本情報] をクリックします。右上隅で、[アプリケーションのデプロイ] をクリックします。
停止中のアプリケーションの変更
SAE アプリケーションリスト ページで、上部でターゲットリージョンと名前空間を選択します。ターゲットの [アプリケーション ID] をクリックして、アプリケーション詳細ページを開きます。[基本情報] をクリックし、次に [アプリケーション構成の変更] をクリックします。
[アプリケーションのヘルスチェック設定] セクションを展開し、必要に応じてパラメーターを設定します。
設定ガイド
必要に応じて、[アプリケーションインスタンスの Liveness チェック (Liveness 構成)]、[アプリケーションサービスの Readiness チェック (Readiness 構成)]、または [アプリケーションの Startup プローブ (StartupProbe 構成)] を有効にします。構成パラメーターは 3 つのプローブタイプすべてで同じです。
説明liveness、readiness、startup プローブは、個別または組み合わせて設定できます。3 つすべてを設定することをお勧めします。
3 つすべてのヘルスチェックを設定した場合、最初に startup プローブが実行されます。startup プローブが成功した後、liveness プローブと readiness プローブは、設定された初期遅延に基づいて実行を開始します。
次のオプションから [チェック方法] を選択し、そのパラメーターを設定します。
HTTP リクエストチェック: インスタンスに HTTP リクエストを送信して、その正常性をチェックします。返された HTTP ステータスコードが 200 から 399 の間の場合、インスタンスは正常と見なされます。それ以外の場合、インスタンスは異常と見なされます。
TCP ポートチェック: インスタンスとの TCP ソケット接続を確立して、その正常性をチェックします。接続が成功した場合、インスタンスは正常と見なされます。接続が失敗した場合、インスタンスは異常と見なされます。
コマンド実行チェック: インスタンス内でプローブコマンドを実行して、その正常性をチェックします。コマンドが 0 の状態コードを返した場合、インスタンスは正常と見なされます。状態コードが 0 でない場合、インスタンスは異常と見なされます。
HTTP リクエストチェック
設定項目
説明
パス
HTTP サーバー上でアクセスするパス。
ポート
HTTP サーバー上でアクセスするポート。
詳細設定
[詳細設定] を展開し、返された文字列に指定されたキーワードが含まれているかどうかをチェックするかどうかを選択します。
プロトコル
[HTTP] または [HTTPS] を選択します。
初期遅延 (秒)
アプリケーションの起動から最初のプローブが開始されるまでの待機時間。初期遅延は、アプリケーションの通常の起動時間よりも長くする必要があります。そうしないと、アプリケーションのデプロイまたは実行時にヘルスチェックが失敗し、再起動が繰り返される原因となります。たとえば、アプリケーションの起動に 60 秒かかる場合、初期遅延を 70 秒に設定します。
タイムアウト (秒)
プローブのタイムアウト。単位は秒です。デフォルト値は 1 秒です。たとえば、タイムアウトを 10 秒に設定した場合、10 秒以上かかるプローブは失敗と見なされ、タイムアウト例外が報告されます。このパラメーターを 0 に設定するか、空のままにすると、デフォルトのタイムアウト 1 秒が使用されます。
期間 (秒)
ヘルスチェックを実行する間隔。単位は秒です。デフォルト値は 30 秒です。たとえば、期間を 5 秒に設定すると、5 秒ごとにチェックが実行されます。アプリケーションコンテナーが最初に起動するとき、SAE は設定された期間よりも頻繁に readiness プローブを実行する場合があります。このポリシーにより、インスタンスはできるだけ早くリクエストの処理を開始でき、サービスの起動速度と全体的なユーザーエクスペリエンスが向上します。
正常のしきい値 (回数)
プローブが失敗した後に成功と見なされるための、連続した成功の最小回数。liveness プローブの場合、これは 1 に設定する必要があります。
異常のしきい値 (回数)
プローブが失敗したと見なされるまでの連続した失敗の回数。
TCP ポートチェック
設定項目
説明
TCP ポート
TCP チェックのためにアクセスするポート。
初期遅延 (秒)
アプリケーションの起動から最初のプローブが開始されるまでの待機時間。初期遅延は、アプリケーションの通常の起動時間よりも長くする必要があります。そうしないと、アプリケーションのデプロイまたは実行時にヘルスチェックが失敗し、再起動が繰り返される原因となります。たとえば、アプリケーションの起動に 60 秒かかる場合、初期遅延を 70 秒に設定します。
タイムアウト (秒)
プローブのタイムアウト。単位は秒です。デフォルト値は 1 秒です。たとえば、タイムアウトを 10 秒に設定した場合、10 秒以上かかるプローブは失敗と見なされ、タイムアウト例外が報告されます。このパラメーターを 0 に設定するか、空のままにすると、デフォルトのタイムアウト 1 秒が使用されます。
期間 (秒)
ヘルスチェックを実行する間隔。単位は秒です。デフォルト値は 30 秒です。たとえば、期間を 5 秒に設定すると、5 秒ごとにチェックが実行されます。アプリケーションコンテナーが最初に起動するとき、SAE は設定された期間よりも頻繁に readiness プローブを実行する場合があります。このポリシーにより、インスタンスはできるだけ早くリクエストの処理を開始でき、サービスの起動速度と全体的なユーザーエクスペリエンスが向上します。
正常のしきい値 (回数)
プローブが失敗した後に成功と見なされるための、連続した成功の最小回数。liveness プローブの場合、これは 1 に設定する必要があります。
異常のしきい値 (回数)
プローブが失敗したと見なされるまでの連続した失敗の回数。
コマンド実行チェック
設定項目
説明
初期遅延 (秒)
アプリケーションの起動から最初のプローブが開始されるまでの待機時間。初期遅延は、アプリケーションの通常の起動時間よりも長くする必要があります。そうしないと、アプリケーションのデプロイまたは実行時にヘルスチェックが失敗し、再起動が繰り返される原因となります。たとえば、アプリケーションの起動に 60 秒かかる場合、初期遅延を 70 秒に設定します。
タイムアウト (秒)
プローブのタイムアウト。単位は秒です。デフォルト値は 1 秒です。たとえば、タイムアウトを 10 秒に設定した場合、10 秒以上かかるプローブは失敗と見なされ、タイムアウト例外が報告されます。このパラメーターを 0 に設定するか、空のままにすると、デフォルトのタイムアウト 1 秒が使用されます。
期間 (秒)
ヘルスチェックを実行する間隔。単位は秒です。デフォルト値は 30 秒です。たとえば、期間を 5 秒に設定すると、5 秒ごとにチェックが実行されます。アプリケーションコンテナーが最初に起動するとき、SAE は設定された期間よりも頻繁に readiness プローブを実行する場合があります。このポリシーにより、インスタンスはできるだけ早くリクエストの処理を開始でき、サービスの起動速度と全体的なユーザーエクスペリエンスが向上します。
正常のしきい値 (回数)
プローブが失敗した後に成功と見なされるための、連続した成功の最小回数。liveness プローブの場合、これは 1 に設定する必要があります。
異常のしきい値 (回数)
プローブが失敗したと見なされるまでの連続した失敗の回数。
実行コマンド
アプリケーションインスタンスまたはプロセス内で実行するヘルスチェックコマンド。コマンドが 0 を返した場合、アプリケーションは正常と見なされます。詳細については、Kubernetes ドキュメントの「プローブの設定」をご参照ください。
説明SAE は、選択可能な 2 つの異なるシェルインタープリターを提供します:
>_ /bin/sh
>_ /bin/bash
たとえば、コマンドを
cat /tmp/healthyに設定した場合、SAE は定期的に/tmp/healthyファイルが存在するかどうかをチェックします。ファイルが存在する場合、コマンドは 0 を返し、コマンドが成功したことを示します。
確認結果
ヘルスチェックを設定した後、ターゲットアプリケーションの [基本情報] ページに移動します。[インスタンスリスト] タブをクリックします。[デフォルトグループ] エリアで、インスタンスの実行ステータスを表示できます。ステータスの横にあるフラグにカーソルを合わせると、ヘルスチェックの設定詳細が表示されます。
実行ステータス | 説明 |
| インスタンスにヘルスチェックが設定されていません。 説明
|
Liveness と Readiness ヘルスチェックが失敗しました
| ヘルスチェックが失敗しました。インスタンスは異常です。 説明 インスタンスのステータスにカーソルを合わせると、失敗の理由が表示されます。また、[トラブルシューティングガイド] をクリックしてトラブルシューティングの手順を確認することもできます。 |
ヘルスチェックに合格しました
| ヘルスチェックに合格しました。インスタンスは正常です。 |
ヘルスチェック失敗の一般的な原因
初期遅延が短すぎます。ヘルスチェックが、アプリケーションの起動プロセスが完了する前に開始されました。遅延を増やして再試行してください。
ヘルスチェックの設定が正しくありません。ポートとインターフェイスの設定を確認してください。
サービスに過剰な負荷がかかっています。これは、アプリケーション監視データを確認することで検証できます。これが原因である場合は、インスタンスの数を増やす、より大きなインスタンスタイプを使用する、または JVM ヒープパラメーターの設定を減らすことができます。
アプリケーションの起動に失敗しました。これを診断するには、ヘルスチェックを無効にしてみてください。それでもアプリケーションの起動に失敗する場合は、アプリケーションコードを最適化する必要があるかもしれません。




