👽

AWS Fargate ⇔ ECR連携で必要なVPCエンドポイント

に公開

はじめに

ECRのプライベートリポジトリに配置したイメージをAWS Fargateに展開する際に、必要なVPCエンドポイントで少しハマったので、メモとして残しておきます。
AWS Fargateをパブリック環境に配置している場合やNat等を利用してAWS Fargateがインターネットに出れる環境の場合はそもそもVPCエンドポイントは不要ですが、こんな経路が必要だったんだなと抑えておくのがいいかと思います。

結論

必要なVPCエンドポイントは以下です。

  • com.amazonaws.ap-northeast-1.ecr.api
  • com.amazonaws.ap-northeast-1.ecr.dkr
  • com.amazonaws.ap-northeast-1.s3
  • com.amazonaws.ap-northeast-1.logs(※Cloudwatch logsにログを転送する場合)

各VPCエンドポイントの用途

com.amazonaws.ap-northeast-1.ecr.api

ECRの認証情報を取得するために利用されます。

com.amazonaws.ap-northeast-1.ecr.dkr

前段で取得した認証情報を元に、プルしたいイメージの構成情報と、実データ(レイヤー)が保存されているS3の場所へのプレサインURLを取得するために利用されます。
※前提としてECRにPushしたDockerイメージは我々が意識しないAWS側でS3管理されています。

com.amazonaws.ap-northeast-1.s3

前段で取得したプレサインURLを元に、イメージをダウンロードするために利用されます。

com.amazonaws.ap-northeast-1.logs

ECSのログをCloudwatch logsに転送するために利用されます。

Discussion