背景

インターネットと通信できないプライベートサブネットにECSを実装する場合、ECRからどうやってイメージを取得するかが課題になります。

案としては、NATGWを使用するというのがあります。が、NATGWは個人開発だと、高額なサービスです。dockerhubなどのインターネットで公開されているリポジトリから取得するなら仕方ないですが、通常はECRから取得したくなるのが人情です。

いろいろと検証してきて肌感覚でわかってきたのですが、S3もそうだし、ECRのようなVPCに関連しないサービスとの接続はエンドポイントを使うのが王道です。

ということで、ECRをプライベートサブネットからアクセスするにはエンドポイントを作る必要があります。

どうやって実現するか

と、あたかも自分が人類で初めて直面したように書いてますが、同じように悩んでいる人はいるのです。

以下の内容を参考にして、そのままコピペでOKです。

ECSに必要なVPCエンドポイントまとめ(2022年版) | DevelopersIO

terraformの定義はこちらがわかりやすい。

[Terraform] Fargate v1.4で必要なVPC endpoint設定