Compute Engine を使用する場合の一般的なヒント

このページでは、Compute Engine を使用して問題が発生した場合に役立つヒントについて説明します。

特定の問題のトラブルシューティングのヘルプについては、次のいずれかのセクションをご覧ください。

別のレスポンス形式を表示する

gcloud コマンドライン ツールでは、ほとんどのアクションが REST API 呼び出しによって実行されます。pretty 形式の結果には、特定のコマンドから返されたレスポンスの最も重要な情報しか表示されません。さまざまなレスポンス形式を表示するには、jsonyamltext などのさまざまな出力形式でレスポンスを表示する --format フラグを使用します。たとえば、インスタンスのリストを JSON 形式で表示するには --format json を使用します。

gcloud compute instances list --format json

gcloud compute のログを表示する

gcloud ツールでは、ログが作成されてログファイルに格納されます。これらのログファイルに対してクエリを実行できます。ログファイルは $HOME/.config/gcloud/logs にあります。Linux ベースのオペレーティング システムで最新のログファイルを表示するには、次のコマンドを実行します。

$ less $(find ~/.config/gcloud/logs | sort | tail -n 1)

ログファイルには、gcloud compute ツールを使用して送信されたすべてのリクエストとそのレスポンスに関する情報が含まれています。

リソース名を選択する

リソースの名前を選択する際には、Compute Engine のサポート ダッシュボードやオペレーション ダッシュボードにそれらの名前が表示される可能性があるので注意してください。そのため、リソース名には機密情報を含めないようにすることをおすすめします。

インスタンスとインターネットの間の通信

インスタンスがインターネットに直接アクセスできるのは、そのインスタンスに外部 IP アドレスがある場合だけです。外部 IP があるインスタンスは、いつでもインターネットへの接続を開始できます。また、アクセスを許可するファイアウォール ルールが設定されていれば、接続を受け入れることもできます。default VPC ネットワークにカスタム ファイアウォール ルールを追加することも、カスタム ファイアウォールで新しいネットワークを追加することもできます。また、外部 IP アドレスなしでインスタンスからプロキシ アクセスを行うために、VPC ネットワーク環境内にネットワーク プロキシを設定することもできます。

アイドル状態の接続は最大 10 分間追跡され、それ以降のトラフィックは暗黙の上り拒否ルールなどのファイアウォール ルールに従います。インスタンスが外部ホストとの長期接続を開始するか受け入れる場合は、Compute Engine インスタンスの TCP キープアライブ設定を 600 秒未満に調整して、タイムアウトが発生する前に接続が更新されるようにする必要があります。以下の例では、キープアライブが 1 分(60 秒)に設定されています。Linux システム上で実行されているアプリケーションで TCP キープアライブを有効にするには、TCP 接続の SO_KEEPALIVE ソケット オプションを明示的に設定する必要があります(Linux TCP キープアライブの手引もご覧ください)。

Compute Engine インスタンスまたは Linux クライアント


以下のコマンドを実行します。

$ sudo /sbin/sysctl -w net.ipv4.tcp_keepalive_time=60 net.ipv4.tcp_keepalive_intvl=60 net.ipv4.tcp_keepalive_probes=5
再起動しても設定が失われないようにするには、設定を /etc/sysctl.conf ファイルに追加します。

Mac OSX クライアント


以下のコマンドを実行します。

$ sudo sysctl -w net.inet.tcp.always_keepalive=1 net.inet.tcp.keepidle=60000 net.inet.tcp.keepinit=60000 net.inet.tcp.keepintvl=60000

Windows クライアント


レジストリパス HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\ で、DWORD データ型を使用して次の設定を追加します。設定がすでに存在する場合は値を編集します。

KeepAliveInterval: 1000
KeepAliveTime: 60000
TcpMaxDataRetransmissions: 10

Compute Engine に別の SSH ユーザーとしてアクセスする

gcloud compute コマンドライン ツールでは、既定で $USER 変数を使用して /etc/passwd ファイルにユーザーが追加されます。追加されたユーザーは、SSH を使用して仮想マシン インスタンスに接続できます。別のユーザーを指定するには、gcloud compute ssh コマンドを実行するときに --ssh-key-file PRIVATE_KEY_FILE フラグを使用します。次に例を示します。

gcloud compute ssh example-instance --ssh-key-file my-private-key-file

詳細については、gcloud リファレンス ドキュメントをご覧ください。

シリアル コンソールとのやり取り

インスタンスのシリアル コンソールへのインタラクティブ アクセスを有効にすると、シリアル コンソールからインスタンスに接続してトラブルシューティングを行うことができます。

詳しくは、シリアル コンソールとのやり取りをご覧ください。

カスタム イメージから作成されたインスタンスでパケットの断片化を回避する

Linux イメージと Windows Server イメージの場合、VPC ネットワークの最大伝送単位(Maximum Transmission Unit、MTU)は 1460 バイトです。Compute Engine 提供のオペレーティング システム イメージは適切な MTU を使用して設定されているため、それらのイメージを使用する場合は特に何もする必要はありません。カスタム イメージを使用する場合は、断片化によってレイテンシやパケット オーバーヘッドが増加しないように、カスタム Linux イメージと Windows Server イメージの MTU を 1460 に設定してください。

UDP ソケットで Compute Engine インスタンスと通信するクライアント アプリケーションを作成する際には、断片化を回避するために、送信する最大ペイロードを 1,432 バイトに制限してください。

このページは役立ちましたか?評価をお願いいたします。

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

Compute Engine ドキュメント