Serverless App Engine (SAE) にアプリケーションをデプロイした後、ヘルスチェック機能を使用して、アプリケーションインスタンスとビジネスが想定どおりに実行されているかどうかを確認できます。 この方法で、ランタイム例外を効率的に識別できます。 SAE では、アプリケーションの作成時またはデプロイ時にこの機能を構成できます。 このトピックでは、SAE コンソールでこの機能を構成する方法について説明します。
背景情報
仕組み
ヘルスチェックでは、liveness プローブまたは readiness プローブがアプリケーションインスタンスとアプリケーションを定期的にチェックし、チェック結果を SAE コンソールに送信します。 これにより、クラスタ環境におけるサービス全体の実行状態を把握し、問題を特定するのに役立ちます。
SAE は、Kubernetes に基づいて次のヘルスチェック方法を提供します。
アプリケーションインスタンスの liveness チェック(liveness 構成): 単一のアプリケーションインスタンスが起動されているかどうかをチェックします。
成功: アプリケーションインスタンスは正常であり、SAE コンソールでは操作は不要です。
失敗: アプリケーションインスタンスは異常です。 SAE はインスタンスを再起動します。
アプリケーションビジネス readiness チェック(readiness 構成): アプリケーションビジネスのヘルス状態をチェックし、顧客リクエストを処理するアプリケーションの準備ができているかどうかをチェックします。
成功: アプリケーションの準備ができています。 SAE はビジネストラフィックをアプリケーションに割り当ててリクエストを処理します。
失敗: アプリケーションの準備ができていません。 SAE はアプリケーションの例外を報告し、ビジネストラフィックをアプリケーションに割り当てません。
ヘルスチェック結果
チェック成功: 成功したヘルスチェックの数が指定された [正常しきい値] に達すると、ヘルスチェックは成功します。
チェック失敗: ヘルスチェックが失敗した場合、SAE は指定されたチェックサイクルに基づいてヘルスチェックを再実行します。 失敗したヘルスチェックの数が指定された [異常しきい値] に達すると、SAE は、liveness チェックの失敗時にアプリケーションインスタンスを再起動したり、readiness チェックの失敗時にトラフィックを割り当てずにアプリケーションインスタンスを削除したりするなどの操作を実行します。
ヘルスチェックパラメーター
SAE では、次の表に示すパラメーターを指定して、アプリケーションインスタンスとアプリケーションの実行状態を確認できます。
レイテンシ
プローブとアプリケーションの起動間のレイテンシ。 レイテンシがアプリケーションの通常の起動時間よりも長いことを確認してください。 そうしないと、アプリケーションのリリースまたは実行プロセス中にヘルスチェックが失敗し、アプリケーションが繰り返し再起動されます。 アプリケーションの起動に 60 秒かかる場合は、このパラメーターを 70 に設定することをお勧めします。
タイムアウト期間
プローブがタイムアウトするまでの期間。 単位: 秒。 デフォルト値: 1。 このパラメーターを 10 に設定すると、10 秒のタイムアウト期間後にヘルスチェックが失敗し、タイムアウトメッセージが報告されます。 このパラメーターが 0 に設定されているか、指定されていない場合、タイムアウト期間はデフォルトで 1 秒です。
チェック間隔
ヘルスチェック間隔。 単位: 秒。 デフォルト値: 30。 このパラメーターを 5 に設定すると、ヘルスチェックは 5 秒ごとに実行されます。 サービスコンテナーが起動したばかりのとき、SAE は readiness プローブを指定されたチェックサイクルよりも短い間隔で実行する場合があります。 これにより、アプリケーションインスタンスはできるだけ早くリクエストを処理できるようになり、サービスの起動速度と全体的なユーザーエクスペリエンスが向上します。
手順
以下の内容は、さまざまなシナリオの手順について説明しています。
アプリケーションの作成: アプリケーションの作成時に詳細設定を構成します。
アプリケーションのデプロイ: 実行中のアプリケーションの設定を変更します。
アプリケーション構成の変更: 実行を停止したアプリケーションの構成を変更します。
アプリケーションを作成する
SAE コンソール にログオンします。 左側のナビゲーションウィンドウで、 を選択します。 [アプリケーション] ページで、上部のナビゲーションバーでリージョンを選択し、[アプリケーションリスト] ドロップダウンリストから名前空間を選択し、[アプリケーションの作成] をクリックします。
基本情報 を指定した後、[次へ: 詳細設定] をクリックします。
アプリケーションをデプロイする
警告アプリケーションを再デプロイすると、アプリケーションは再起動されます。 ビジネスの中断などの予期しないエラーを防ぐために、オフピーク時にアプリケーションをデプロイすることをお勧めします。
SAE コンソール にログオンします。 左側のナビゲーションウィンドウで、 を選択します。 [アプリケーション] ページで、上部のナビゲーションバーでリージョンを選択し、[アプリケーションリスト] ドロップダウンリストから名前空間を選択し、目的のアプリケーション名をクリックします。
アプリケーションの [基本情報] ページで、[アプリケーションのデプロイ] をクリックします。
アプリケーション設定を変更する
SAE コンソール にログオンします。 左側のナビゲーションウィンドウで、 を選択します。 [アプリケーション] ページで、上部のナビゲーションバーでリージョンを選択し、[アプリケーションリスト] ドロップダウンリストから名前空間を選択し、目的のアプリケーション名をクリックします。
アプリケーションの [基本情報] ページで、[構成の変更] をクリックします。
[アプリケーションヘルスチェック設定] セクションを展開し、必要に応じて必要な設定を構成します。
構成ガイド
必要に応じて、[アプリケーションインスタンス Liveness チェックを有効にする(liveness 構成)] または [アプリケーションビジネス Readiness プローブを有効にする(readiness 構成)] をオンにします。 2 つのスイッチのパラメーターは同じです。
2 つのスイッチの両方、またはどちらか一方をオンにすることができます。 両方のスイッチをオンにすることをお勧めします。 両方のスイッチをオンにすると、SAE は指定されたレイテンシに基づいてヘルスチェックを実行します。
次のヘルスチェック方法のいずれかを選択し、必要なパラメーターを指定します。
HTTP リクエストチェック: インスタンスに HTTP リクエストを送信することにより、アプリケーションインスタンスのヘルス状態をチェックします。 HTTP リクエストに対して返される HTTP ステータスコードが 200 ~ 399 の範囲内にある場合、アクセスは成功し、アプリケーションインスタンスは正常です。 それ以外の場合、アクセスは失敗し、インスタンスは異常です。
TCP ポートチェック: インスタンスへの TCP 接続を確立することにより、アプリケーションインスタンスのヘルス状態をチェックします。 TCP 接続が確立されると、アプリケーションインスタンスは正常です。 TCP 接続の確立に失敗した場合、アプリケーションインスタンスは異常です。
実行可能コマンドチェック: インスタンスでプローブ検出コマンドを実行することにより、アプリケーションインスタンスのヘルス状態をチェックします。 返された状態コードが 0 の場合、実行は成功し、アプリケーションインスタンスは正常です。 それ以外の場合、実行は失敗し、インスタンスは異常です。
HTTP リクエストチェック
パラメーター
説明
パス
HTTP リクエストの送信に使用される URL。
ポート
TCP ソケットの送信に使用される TCP ポート。
HTTP 詳細設定
返された文字列に入力されたキーワードが含まれている必要があるかどうかを指定します。
プロトコル
プロトコルのタイプ。 [HTTP] または [HTTPS] を選択します。
レイテンシ(秒)
プローブとアプリケーションの起動間のレイテンシ。 レイテンシがアプリケーションの通常の起動時間よりも長いことを確認してください。 そうしないと、アプリケーションのリリースまたは実行プロセス中にヘルスチェックが失敗し、アプリケーションが繰り返し再起動されます。 たとえば、アプリケーションの起動に 60 秒かかる場合は、このパラメーターを 70 秒に設定することをお勧めします。
タイムアウト期間(秒)
プローブがタイムアウトするまでの期間。 単位: 秒。 デフォルト値: 1。 このパラメーターを 10 に設定すると、10 秒のタイムアウト期間後にヘルスチェックが失敗し、タイムアウトメッセージが報告されます。 このパラメーターが 0 に設定されているか、指定されていない場合、タイムアウト期間はデフォルトで 1 秒です。
チェック間隔(秒)
ヘルスチェック間隔。 単位: 秒。 デフォルト値: 30。 このパラメーターを 5 に設定すると、ヘルスチェックは 5 秒ごとに実行されます。 サービスコンテナーが起動したばかりのとき、SAE は readiness プローブを指定されたチェックサイクルよりも短い間隔で実行する場合があります。 これにより、アプリケーションインスタンスはできるだけ早くリクエストを処理できるようになり、サービスの起動速度と全体的なユーザーエクスペリエンスが向上します。
正常しきい値(回数)
プローブが失敗した後の連続した正常なヘルスチェックの最小回数。 liveness プローブの場合、このパラメーターは 1 に設定する必要があります。
異常しきい値(回数)
連続した失敗したヘルスチェックの回数。
TCP ポートチェック
パラメーター
説明
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 公式 Web サイトの プローブの構成 をご参照ください。
説明SAE は次のシェルインタープリターを提供します。
>_ /bin/sh
>_ /bin/bash
このパラメーターを
cat /tmp/healthy
に設定すると、SAE は/tmp/healthy
という名前のファイルが存在するかどうかを定期的にチェックします。 ファイルが存在する場合、コマンドは 0 として返され、コマンドが正常に実行されたことを示します。
結果を確認する
ヘルスチェックの構成が完了したら、[基本情報] ページに移動し、[インスタンス] タブをクリックして、[詳細グループ] セクションを表示し、アプリケーションインスタンスの実行状態を取得できます。 また、状態の横にあるポインターを移動して詳細を表示することもできます。
実行状態 | 説明 |
| アプリケーションインスタンスにヘルスチェックが構成されていないことを示します。 説明
|
| ヘルスチェックが失敗し、アプリケーションインスタンスが異常であることを示します。 説明 インスタンスの状態にポインターを合わせると、ヘルスチェックの失敗原因が表示されます。 また、[トラブルシューティングガイド] をクリックして、ヘルスチェックの失敗のトラブルシューティングを行うこともできます。 |
ヘルスチェックが成功し、アプリケーションインスタンスが正常であることを示します。 |