Compass note

未踏の地へ踏み出すコンパス的エンジニアノート

Compass Note|ITエンジニアの羅針盤

私はこれで解決!GCPで「The server encountered a temporary error」が発生した時の緊急対処法【VM再起動で即復旧】

* 本ページはプロモーションが含まれています

私は日々、開発や検証でGoogle Cloud Platform (GCP) のVMインスタンスを利用しています。ある日、自分のWebサイトにアクセスしようとしたところ、見慣れないエラーメッセージに遭遇しました。

Error: Server Error

The server encountered a temporary error and could not complete your request.
Please try again in 30 seconds.

「一時的なエラー」と書いてあるものの、これがなかなか解決せず、私も焦りました。GCPの管理画面を見てもVMインスタンスのステータスは「正常」と表示されているのに、Webサイトは動かない...。同じような状況で困っている方もいらっしゃるのではないでしょうか?

今回は、私がこの「The server encountered a temporary error」というエラーに直面した際に、どのように状況を把握し、最終的にVMインスタンスの再起動で迅速に復旧させたのかを、具体的な手順と私の考察を交えて解説します。もし同じエラーで立ち往生している方がいれば、この記事が少しでもお役に立てば幸いです。


「The server encountered a temporary error」とは何か?私の解釈

このエラーメッセージは、直訳すると「サーバーが一時的なエラーに遭遇し、リクエストを完了できませんでした。30秒後に再試行してください」となります。

私がこのメッセージから読み取ったのは、以下のような状況です。

  • サーバー自体は稼働している可能性が高い: 「temporary error」という言葉から、サーバーが完全に停止しているわけではないことが示唆されます。
  • 何らかのリソースが枯渇している: メモリ不足、CPU使用率の高騰、プロセスがハングアップしているなど、一時的にリクエストを処理できない状態に陥っていることが考えられます。
  • ネットワーク的な問題も考えられる: たとえば、プロキシやロードバランサーとバックエンドサーバー間の通信が一時的に不安定になっている可能性もあります。

私の場合、Webサイトにアクセスできないのは致命的です。このエラーに直面した私は、すぐに原因究明と復旧に取り掛かりました。

私が実施したGCPでの状況確認とトラブルシューティング

このエラーが出た際、私が最初に確認したのはGCPの管理画面です。

  1. GCP管理画面でVMインスタンスのステータスを確認
    • VMインスタンスの一覧画面を開くと、対象のVMインスタンスのステータスはなんと「正常」と表示されていました。これは意外でした。サーバーは動いているはずなのに、なぜWebサイトが表示されないのか?疑問が残ります。

"GCP VMインスタンスステータスは正常だがウェブSSHに失敗"

  1. Webブラウザ経由でのSSHログインを試行

    • 次に、VMインスタンスにSSHでログインし、サーバー内部のログを確認しようとしました。GCPのWebブラウザからSSH接続を試みたのですが、ここで別のエラーメッセージが表示されました。
    400. That’s an error.
    
    The server cannot process the request because it is malformed. It should not be retried. That’s all we know.
    
    • この「400 Bad Request」エラーは、リクエストが不正である、つまりSSH接続のリクエスト自体がサーバーに適切に処理されていないことを示していました。VMインスタンスのステータスは正常でも、SSH接続までできないとなると、サーバー内部で何らかの異常が発生し、外部からの通信を正常に受け付けられない状態になっている可能性が高いと判断しました。
    • これは、単にウェブサービスが落ちているだけでなく、OSレベル、あるいはもっと根深い部分でトラブルが起きていることを示唆しています。

最終的な解決策:GCP VMインスタンスの再起動

VMインスタンスのステータスが正常にも関わらず、外部からのアクセスもSSHもできない状況。私が行き着いた最終的な解決策は、非常にシンプルながら効果的な方法でした。それは、**VMインスタンスの「再起動」**です。

VMインスタンスの再起動は、サーバーのメモリ状態をクリアし、各種サービスやプロセスを再初期化する効果があります。一時的なリソース枯渇やプロセスのハングアップであれば、この操作で解消することが期待できます。

再起動の手順

  1. GCPのVMインスタンス画面にアクセスします。
  2. 再起動したいVMインスタンスを選択します。
  3. 画面上部にある「停止」ボタンをクリックします。
    • VMインスタンスが停止するまで数分かかります。ステータスが「停止済み」になるのを確認します。
  4. ステータスが「停止済み」になったら、同じく画面上部にある「開始 / 再開」ボタンをクリックします。
    • VMインスタンスが起動するまで、これも数分かかります。ステータスが「実行中」になるのを確認します。

私の場合、このVMインスタンスの再起動を行ったところ、数分後には無事にWebサイトが正常に表示されるようになりました。「The server encountered a temporary error」も表示されなくなり、ホッと一安心です。

まとめ:一時エラーは再起動で解決することも多い

GCPのVMインスタンスで「The server encountered a temporary error」に遭遇した際は、私の経験から言って、まず以下のステップを試すことをお勧めします。

  1. GCP管理画面でVMインスタンスのステータスを確認。
  2. SSH接続を試行し、サーバー内部へのアクセス可否を確認。
  3. ステータスが正常でもアクセスできない場合は、VMインスタンスの再起動を試みる。

もちろん、このエラーが発生する原因は多岐にわたるため、常に再起動だけで解決するとは限りません。しかし、今回のように「一時的なエラー」と表示される場合は、再起動が最も手軽で効果的な対処法となることが多いです。

もし再起動でも解決しない場合は、サーバーのログを詳細に確認したり、GCPのCloud Monitoringでリソース使用状況を調べたり、アプリケーション側の問題も視野に入れてデバッグを進める必要があります。

しかし、まずは焦らず、この「再起動」というシンプルな一手を試してみてください。私もこの方法で迅速に問題を解決できました。

関連記事

GCPやAWSのトラブル解決についてはこちらの記事も参考にしてみてください。