Lambda がタイムアウトで 502 Bad Gateway
コンテナイメージから作成したLambda関数をCloudFrontから呼び出したところ、502エラー (Bad Gateway) が返ってきました。
CloudFrontとLambdaの接続がうまくいっていないのか…?などとハマってしまったときのメモです。
結論
Lambdaがタイムアウトしたのが原因でした。
Bad Gatewayという見た目に騙されて、タイムアウトの可能性になかなか気づけませんでした。
背景
今回、Laravelのコンテナを丸ごとLambdaに置いたので、初期設定ではかなり起動に時間がかかっていました。
Lambdaの初期設定は
- メモリ: 128MB
- タイムアウト: 3秒
となっており、Laravelのコンテナを立ち上げるにはシビアな設定になっていたようです。
解決方法
- Lambdaのメモリを増やす
- 今回は512MBに上げることで対応しました
- タイムアウトを長くする
- 試しに10秒にしたところエラーが解消されました