0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS ALB】長時間処理でタイムアウトする問題を解決した話(Windows Server )

Last updated at Posted at 2025-10-13

はじめに

AWS環境で Application Load Balancer (ALB) 経由でアプリケーションにアクセスしているとき、
一定時間後にタイムアウトしてしまう 現象に遭遇しました。

本記事では、
Windows Server上のアプリケーションでCSVを加工する処理中に発生したタイムアウトを
ALBの設定変更で解消した手順を紹介します。


発生した現象

構成は以下のようなシンプルなものです。

Client → ALB → EC2 (Windows Server, IIS上でアプリ稼働)

アプリの動作は以下の通り:

  1. クライアントがWebアプリにアクセス
  2. CSVファイルをアップロード
  3. サーバー側でCSVを加工
  4. 加工結果を返す

しかし、以下の現象が発生しました。

  • クライアントからアクセス すると、処理中にタイムアウト(504 Gateway Timeout)
  • サーバーから直接実行 すると、正常に完了

つまり、ALBを経由した時だけタイムアウトしていました。


原因の切り分け

まずはアプリケーションやサーバー側の設定を疑い、段階的に確認しました。

検証項目 内容 結果
アプリ側の処理遅延 CSV加工ロジックに問題がないか確認 サーバー内実行では正常完了
IISの接続タイムアウト web.config 内で executionTimeout を延長 変更しても同じ時間で 504エラー発生
Windows ServerのHTTP応答制限 IISマネージャーで「接続タイムアウト」も延長 効果なし
ALBのアイドルタイムアウト デフォルト値が 60秒 に設定されていた 改善

つまり、アプリやIIS側のタイムアウト設定を延長しても、ALB側で先に切断されていたことが分かりました。

AWS公式ドキュメントによると、
ALBのアイドルタイムアウト はデフォルトで 60 秒です。

参考: Application Load Balancers - Timeouts (AWS公式)

クライアントからのリクエスト後、
バックエンドでCSV加工中に60秒以上応答が途切れるとALBが接続を閉じ、
結果的に 504 Gateway Timeout が返っていた、という仕組みです。


対応方法:ALBのアイドルタイムアウトを延長

手順

  1. AWSマネジメントコンソール
    EC2 → ロードバランサー → 対象のALBを選択
  2. アクション → 「ロードバランサー属性を編集」をクリック
  3. 接続アイドルタイムアウト」の値を変更(例: 60300 秒)

timeout2.PNG


設定後の挙動

設定変更後、再度クライアントから同じCSV加工処理を実行したところ:

✅ 処理が完了するまで接続が維持され、
✅ レスポンスが正常に返るようになりました。


まとめ

項目 内容
現象 ALB経由のアクセス時に504エラーでタイムアウト発生
原因 ALBのアイドルタイムアウト(デフォルト60秒)に到達
対応 接続アイドルタイムアウト を300秒に延長
効果 長時間のCSV加工処理でも安定動作

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?