504エラー(Gateway Timeout)の原因と対処

504エラー(Gateway Timeout)の原因と対処

上流応答が間に合わないときの見分け方と対応

HTTPの504エラーは、リバースプロキシやCDN、ロードバランサーなどのゲートウェイが、上流サーバーからの応答を規定時間内に受け取れなかったときに返されます。瞬間的な負荷や外部API遅延、ネットワーク経路の問題で発生しやすい点が特徴です。

まずは再現条件と発生レイヤーを切り分けます。特定パスや時間帯で集中する場合はバックエンド処理の遅延が疑われます。長時間クエリや外部連携が絡むとタイムアウトに達しやすく、ログの相関IDでトレースできるよう準備しておくと分析が速くなります。

用語の定義(意味としくみ)

「504 Gateway Timeout」は、ゲートウェイ/プロキシがリクエストを受け取り、上流に転送したものの、期限までに応答が戻らなかった状態を示します。上流にはオリジンサーバーやマイクロサービス、外部APIが含まれます。すなわち、ゲートウェイは上流サーバーの遅延を検知して504を返す立場にあります。

実務での論点(原因・使い分け・対処の勘所)

「誰が何を待っているのか」「どの層で止まっているのか」を明確にすることが起点です。ユーザー側の回避余地は限定的ですが、管理者側はタイムアウト値の整合や処理時間の短縮、リトライ戦略の設計で改善できます。

  • ユーザー側:時間を置いて再試行し、別回線やモバイル回線で再現性を確認します。企業プロキシやVPNを一時的に無効化して経路差分を見ます。
  • ユーザー側:大容量アップロードや重い操作を避け、解消しない場合は時刻・URL・トレーサブルな情報(リクエストID等)を添えて提供元に連絡します。
  • 管理者側:APMと分散トレースで遅延箇所を特定し、DBロック・外部API待ち・スレッド枯渇などのボトルネックを解消します。
  • 管理者側:ゲートウェイ/アプリ/上流のタイムアウト値を整合させ、Keep-Aliveやコネクションプール、キュー長の設定を見直します。
  • 管理者側:キャッシュ・非同期化・バックオフ付き再試行・サーキットブレーカーを導入し、スパイク時のフェイルシナリオを用意します。

比較・使い分け表(HTTP近縁コード)

近縁コードの比較・使い分け
コード意味使い分けの目安
502 Bad Gateway上流の不正応答・接続失敗応答は返ったが不正/ハンドシェイク失敗。ネットワークやプロトコル不整合時。
503 Service Unavailable一時的な過負荷・保守計画メンテや過負荷時に利用。Retry-Afterを併用して復旧見込みを通知。
504 Gateway Timeout上流からの応答遅延ゲートウェイが規定時間内に応答を受け取れず失敗。再試行や経路見直しを検討。
408 Request Timeoutクライアント送信の遅延クライアントがリクエスト送信に時間超過。サーバ側の上流待ちとは別問題。
524 A Timeout OccurredCDN固有のタイムアウトCloudflare等が返すベンダー固有コード。意味は504に近く、CDNと上流間で発生。

SEO上の注意

5xxが続くとクロール頻度が落ち、該当地域ではインデックス維持も難しくなります。計画停止は503とRetry-Afterで通知し、504の頻発は不安定なサイト信号となるため、原因の恒久対策と監視の強化が重要です。

検索エンジンからのアクセスにも同じ方針で応答し、CDN・WAF・アプリの設定を同期します。遅延発生時はステータスページで状況を共有し、SLO違反を検知できるアラート閾値を適切に保ちます。

よくある質問(FAQ)

504と502の違いは何ですか?

504は上流から応答が戻らず時間切れになった状態です。502は応答が来たものの不正だったり接続が確立できなかった状態で、発生原因と対処が異なります。

504は一時的な障害でしょうか?

多くはスパイクや外部API遅延など一時的要因で再試行により解消します。ただし頻発する場合はDBロックやスレッド枯渇など恒常的な瓶頸が疑われ、恒久対策が必要です。

設定で回避するには何を見直せばよいですか?

ゲートウェイ・アプリ・上流のタイムアウト値を整合させ、コネクションプールやKeep-Alive、キャッシュ、バックオフ付き再試行を適用します。長時間処理は非同期化やキュー化が有効です。

408 Request Timeoutとの違いは?

408はクライアントがリクエスト送信に時間をかけ過ぎた場合の応答です。504はサーバ側のゲートウェイが上流サーバーの応答を待ち切れなかった状態で、発生レイヤーが異なります。

504エラー(Gateway Timeout)のまとめ

504は「ゲートウェイが上流応答を待ち切れない」ことを示します。ユーザーは回線変更と再試行、管理者は遅延の可視化とタイムアウト整合、キャッシュや再試行戦略の導入で再発を抑止します。近縁コードとの違いを理解し、計画停止時は503で適切に通知します。

関連記事
HTTPステータスコード一覧表!各エラーコードの内容と対処法を詳しく解説!
HTTPステータスコード一覧表!各エラーコードの内容と対処法を詳しく解説!
ブログやWebサイトを運営していると、時折「404 Not Found」といった数字の羅列が表示され、何かしらのエラーが発生したことを知ってパニックになることがあるのではないでしょうか。 この数字列はHTTPステータスコ…