インスタンスのデバッグ

VM に対してデバッグモードを有効にすることができます。デバッグモードでは、オーナー、編集者、App Engine 管理者の役割を持つプロジェクト メンバーは、VM に対するルートアクセスが可能です。デバッグモードがオンの場合、オペレーティング システムの更新とセキュリティ パッチの自動ロールアウトは無効になります。とはいえ VM はまだロードバランサ プールの一部であり、引き続き外部リクエストを受信します。

デバッグを有効または無効にするときは必ず、Google Cloud Platform Console に「VM インスタンス デバッグ有効化/無効化」イベントが表示され、イベントは VM の /var/log/syslog.log ファイルにログとして記録されます。

デバッグモードの有効化と無効化

gcloud を使用して、インスタンスに対してデバッグモードを有効または無効にします。

gcloud でデバッグモードを有効または無効にするには:

  1. 次に示すように、gcloud app instances enable-debug コマンドを使用して特定のインスタンスとバージョンの VM をデバッグします。
    gcloud app --project [PROJECT-ID] instances enable-debug
    PROJECT-ID 自分のプロジェクト ID に置き換え、画面の指示に沿ってデバッグするインスタンスのバージョンを指定します。
  2. デバッグが終了したら、次のようにデバッグモードを無効にします。
    gcloud app --project [PROJECT-ID] instances disable-debug
    画面の指示に沿ってインスタンスのバージョンを指定します

デバッグモードを無効にすると、VM は停止し、新しいクリーンな VM で実行される、アプリの新しいインスタンスが開始されます。

インスタンスに接続する

Console

コンソールでインスタンスに接続するには:

  1. GCP Console で、プロジェクトの [インスタンス] ページにアクセスします。
    [インスタンス] ページに移動する
  2. アクセスするインスタンスを含む行の右端で、[SSH] をクリックします。

    これによりインスタンスはデバッグモードに入り、ターミナル ウィンドウ内でインスタンスの SSH セッションが開きます。

    また、プルダウン リストから SSH セッションを開始するための別のオプションを選択することもできます。

  3. この時点でインスタンス ホスト内にいて、その中ではいくつかのコンテナが実行されています。これらの詳細については、次の一般的なコンテナを理解するをご覧ください。
  4. ターミナル ウィンドウで、インスタンス内で実行中のコンテナをリストします。
    sudo docker ps
  5. sudo docker ps コマンドの出力では、行ごとに各コンテナがリストされます。プロジェクト ID を含む行を探します。これがコードを実行しているコンテナです。このコンテナの名前をメモしておきます。
  6. 次のコマンドにより、アプリケーションのログ情報をリストすることもできます。
    sudo docker logs [CONTAINER-NAME]
  7. コードを実行しているコンテナでシェルを起動します。
    sudo docker exec -it [CONTAINER-NAME] /bin/bash
  8. デバッグが終了したら、exit を入力してコンテナを終了し、再度 exit を入力して SSH セッションを終了します。
  9. インスタンスのデバッグを無効にし、通常の動作を再開できるようにします。

gcloud

gcloud を使用してインスタンスに接続するには:

  1. デバッグモードが有効になっているインスタンスで、次のコマンドを実行します。
    gcloud beta app instances --project [PROJECT-ID] ssh [INSTANCE-NAME] --service [SERVICE] --version [VERSION]
  2. この時点でインスタンス ホスト内にいて、その中ではいくつかのコンテナが実行されています。これらの詳細については、次の一般的なコンテナを理解するをご覧ください。
  3. ターミナル ウィンドウで、インスタンス内で実行中のコンテナをリストします。
    sudo docker ps
  4. sudo docker ps コマンドの出力では、行ごとに各コンテナがリストされます。プロジェクト ID を含む行を探します。これがコードを実行しているコンテナです。このコンテナの名前をメモしておきます。
  5. 次のコマンドにより、アプリケーションのログ情報をリストすることもできます。
    sudo docker logs [CONTAINER-NAME]
  6. コードを実行しているコンテナでシェルを起動します。
    docker exec -it [CONTAINER-NAME] /bin/bash
  7. デバッグが終了したら、exit を入力してコンテナを終了し、再度 exit を入力して SSH セッションを終了します。
  8. インスタンスのデバッグを無効にし、通常の動作を再開できるようにします。

一般的なコンテナを理解する

アプリケーション コードを実行しているコンテナに加えて、インスタンスには次のコンテナが含まれていることがあります。

コンテナとソースコード オープンソース組織 説明
fluentd_logger fluentd.org/ ログ エージェント
memcache_proxy memcache proxy open source アプリケーションに Memcache 機能を提供する
nginx_proxy nginx.org アプリケーションへのプロキシ リクエスト
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Go の App Engine フレキシブル環境