movee(モビー) オノデラのブログ

(株)movee代表。週末は自社サービスを作っています。

LaravelでECR、ECSでデプロイしてハマったこと

バックエンドはLaravel、フロントエンドはvue、Webサーバはnginx、のアプリケーションをECSで稼働させる業務をした。 そこでハマったことを書いておく。 結局のところnginxの設定が一番ハマった。ローカルで動くんだからECSでも同じ感じで動くだろと思ってたらAWSドメインなどでハマった。特にnginxまで届いてるのか、ALBあたりでこけてるのかの切り分けができてなかったのでちょっとハマった。

healthチェックを甘く考えていた

ターゲットグループにhealthチェックがあってデフォルトパスが/なのだけれどもECSにデプロイした直後に問題なく動くのは稀でエラーになりつつ調査する流れになるのだが、/が404などのエラーになるとサービスが30秒ぐらいで落ちてしまい503が返ってくる。サービスにaws execでログインできないので中にも入れなくて詰んでた。解決方法としてはhealthチェックパスを/health_checkなどにして、nginxにもlocation health_checkなどのルートを設定してとりあえずhealthチェックを通すことが大事。これはECSに限らずの話ではあるが、なかなか時間を溶かしてしまったのでhealth_checkをとりあえず通すことはとても大事です。 nginxなかなかなめてたのでnginx実践ガイドという書籍買ったので勉強していく。