CodeDeployで、たまにエラーも出ず、Installが延々と続いて終わらない、という現象が発生することがあります。
エラーが出ないと割とパニくると思うのでかなり軽い内容なのですが、記事にします。
自分にもこの事象は何度か起きたのですが、
- CodeDeployのIAM Roleに必要な権限がない
- コンテナの設定ファイルにミスがあるなど、起動できない状態のコンテナをデプロイしようとしている
自分の場合は、いずれもこの2つのどれかが原因でした。
事例
参考までに、直近で自分が経験したInstallが延々と続いて終わらない事態について紹介します。
Fargateで、サイドカー構成でfluent-bitのコンテナとFireLensを使って他のコンテナのログをfirehoseに送ろうとした時、以下の制約に気づかず、
カスタム設定ファイルを使用する場合は、FireLens が使用するパスとは異なるパスを指定する必要があります。Amazon ECS では /fluent-bit/etc/fluent-bit.conf (Fluent Bit) と /fluentd/etc/fluent.conf (Fluentd) のファイルパスは予約されています。
FROM amazon/aws-for-fluent-bit:2.1.1
COPY conf/fluent-bit/fluent-bit.conf /fluent-bit/etc/fluent-bit.conf
このように予約されたパスに設定ファイルを置いてしまっているDockerfileから作成したイメージをデプロイしようとしていたため、
もしくは
この設定ファイルは、中身はカスタム設定ファイルで普通の設定ファイルとしては不十分だったのが原因だった
ということがInstallが終わらなかった原因として考えられます。
対策として、
- ローカルでコンテナが動くかちゃんと確認する
- ローカルで動いているなら、IAM周りを見直す
くらいでしょうか。
エラーが出ないので初めてこの現象に陥ると結構焦るかと思うのですが、この記事をきっかけに大体の検討をつけられるようになって解決へと繋がれば幸いです。