【AWS・ECS】Nginx 502 Bad Gatewayが表示されたとき

何度か表示されたので、解決方法をメモ。

1.volumeの設定を確認する

volumeが正しく設定されていないときに発生しました。

ECSのvolumeはタスク定義から設定しますが、この設定に不備があったのが原因でした。

webコンテナとnginxコンテナがあって、web側と共有したいディレクトリがnginxにあった場合の設定方法をまとめると

  • タスク定義画面下のボリュームから該当するボリュームを作成する
  • 作成画面ではボリュームドライバーを選択し、localに
  • スコープはtaskにしておく
  • 他の項目は空白で良いのでそのまま追加
  • 画面上に移動し、webコンテナをいじる
  • 「ストレージとログ」からマウントポイントを設定する ソースボリュームに先程追加したボリュームを選び、コンテナパスにボリュームとして設定したいディレクトリを入力する。
  • 同じく、nginx側のボリューム設定に移動し「ストレージとログ」の「ボリュームソース」をいじる
  • 今回、nginxコンテナはwebコンテナでマウントしたボリュームを共有したいので ソースコンテナ欄にwebコンテナのコンテナ名を入力すれば完了

みたいな風に一つひとつの入力を確認しながらやると不備が発見できたので、うまくいけました。

2.コンテナのログを確認してみる

大体起動するはずのコンテナがexitedしているケースが多いのでログを確認してみる

確認の仕方は https://qiita.com/mom0tomo/items/35dfacb628df1bd3651e ここを参考にした。

僕の場合はtmp以下が自動で作成されないみたいなエラーだったので、手動で作成することでどうにかなった。