- 新しい順
- 投票が多い順
- コメントが多い順
AWS App Runner上で動作しているAPIサーバーで画像アップロード時に502 Bad Gatewayエラーが発生する問題について、以下の点を確認および検討することをお勧めします:
-
リクエストサイズの制限: App RunnerやALB(Application Load Balancer)にはデフォルトのリクエストサイズ制限があります。画像ファイルのサイズがこの制限を超えている可能性があります。App Runnerの設定でリクエストサイズの制限を確認し、必要に応じて増やしてみてください。
-
タイムアウト設定: 画像アップロードに時間がかかり、App Runnerのデフォルトタイムアウト設定を超えている可能性があります。タイムアウト設定を長くすることで問題が解決するかもしれません。
-
メモリ使用量: 大きな画像ファイルを処理する際にメモリ不足が発生している可能性があります。App Runnerインスタンスのメモリ使用量を監視し、必要に応じてメモリ割り当てを増やしてください。
-
ネットワーク設定: App Runnerの設定で、VPCコネクタやセキュリティグループの設定が適切であることを確認してください。ネットワーク設定の問題が502エラーの原因となる可能性があります。
-
アプリケーションログ: App Runnerのログ設定を確認し、詳細なアプリケーションログを有効にしてください。これにより、エラーの根本原因を特定するのに役立つ可能性があります。
-
CloudWatch指標: App RunnerのCloudWatch指標を確認し、CPU使用率、メモリ使用率、リクエスト数などの異常がないか確認してください。
-
ステージング環境でのテスト: 可能であれば、本番環境と同じ設定のステージング環境を作成し、そこで画像アップロードのテストを行ってください。これにより、環境固有の問題を特定しやすくなります。
-
App Runner設定の再確認: App Runnerの設定、特にポート設定やヘルスチェックの設定が正しいことを確認してください。
これらの点を確認し、必要に応じて調整することで、問題の原因を特定し解決につながる可能性があります。問題が解決しない場合は、AWS サポートに連絡して詳細な調査を依頼することも検討してください。
Sources
AWS App Runner endpoints and quotas - AWS General Reference
HTTP 502 status code (Bad Gateway) - Amazon CloudFront
How to debug 502 errors on ELB | AWS re:Post
AppRunnerには120 秒のタイムアウト制限があるのですが、それが原因でアップロードに失敗しているといったことは無いでしょうか?
https://docs.aws.amazon.com/apprunner/latest/dg/develop.html#develop.considerations
他にはログにリクエストが記録されていないということなので、AppRunnerに届く前にリクエストがブロックされていたりする可能性があると思います。
例えばAWS WAFなどを紐づけていた場合はWAFでブロックされているといったことが考えられます。
https://docs.aws.amazon.com/ja_jp/apprunner/latest/dg/waf.html