AR ホームベーカリー

オイラのアウトプット用ホームベーカリー!

ECS (fargate) からパブリック IP を剥奪したら SSM とか ECR に接続できずに起動しなくなった

タイトルがすべてシリーズ。

Terraform で管理している ECS (fargate) の 1.4.0 で特定の RAILS_ENV だけ問題が起きる、という現象の調査をしていて、それはほぼ解決したんだけど、なぜか ECS Cluster をデプロイしなおしたら以下のエラーが出るようになった。

Resourceinitializationerror: unable to pull secrets or registry auth: execution resource retrieval failed: unable to retrieve secrets from ssm: service call has been retried 5 time(s): RequestCanceled: request context canceled caused by: context deadline exceeded

unable to pull secrets or registry auth とか言われてもしらんわ! と思ってググるAWS 公式のナレッジがヒットした。

aws.amazon.com

とはいえ全然役に立たず、「ええーなんだよんもー」と思っていたが、適当にググっていた所以下を発見。

zenn.dev

同じ様にパブリックサブネット上にクラスタを設置していたので、「おー……おお?」と思いながら ECS のリソース定義を確認したところ。

  network_configuration {
    assign_public_ip = "false"

あっ、これグローバルに露出しちゃうから削除したんだけど、もしかして VPC エンドポイント未設定だとこれ必要っすか? ハイ……。

ということで、以下のように修正して再度 terraform apply した所、無事動いた。 くしょがよー!

  network_configuration {
    assign_public_ip = "true"