29
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

504 Gateway Time-out が出たので ALB の アイドルタイムアウト 設定変更する

Posted at

ALBを導入したらブラウザ上で504 Gateway Time-outエラーが出るようになった

解決のためにまず確認したのは、

  1. ALBのCloudWatchモニタリング
  2. Apacheのアクセスログ
  3. PHPサイトのアプリケーションログ

どのログを見ても、エラーが増えたりはしていない。

Webサーバーまで到達できていないことを考えると、これはApacheやアプリケーションが原因ではない。
おそらくロードバランサーで何かおきてるんだろうとあたりをつけて、ALBの仕様を確認する。

ALBのドキュメントを確認すると、

HTTP 504: Gateway Timeout

考えられる原因:

  • ロードバランサーは、接続タイムアウトが期限切れになる (10 秒) 前にターゲットへの接続の確立に失敗した。
  • ロードバランサーはターゲットへの接続を確立したが、アイドルタイムアウト期間が経過する前にターゲットが応答しなかった。
  • サブネットのネットワーク ACL で、ターゲットから一時ポート (1024-65535) のロードバランサーノードへのトラフィックが許可されなかった。
  • ターゲットがエンティティ本文より大きな Content-Length ヘッダーを返した。ロードバランサーが欠落しているバイトを待機してタイムアウトした。

なるほど、ALBのタイムアウト設定が短すぎると、Webサーバーからのレスポンスを待ちきれずにエラーが発生したのか。

ALBの設定画面でアイドルタイムアウトの秒数を確認した

  • AWS管理コンソール > EC2 > ロードバランサー
  • 対象のロードバランサーを選択

2018-04-02_13h25_37.png

  • 「説明」タブを選択

  • 属性 > アイドルタイムアウト の項目を確認

    • 60秒 と設定があった
  • 設定値を伸ばして更新する

    • アイドルタイムアウトの範囲は 1 ~ 3,600 秒です。

無事、504 Gateway Time-outエラーが出なくなりました!

参考

504 Gateway Time-out が出た際は Elastic Load Balancing の設定にも注意しよう

29
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?