by shigemk2

当面は技術的なことしか書かない

FargateとVPCエンドポイント

ECS Fargateとタスクスケジュールのコンボでバッチ処理を実行させるってなったときに、プライベートサブネットにしてるとNATゲートウェイがタスクスケジュール実行時に都度ECRからdocker pullしてるとNATゲートウェイの通信量が尋常じゃなくなってパケ死にする。

ので、ECRを利用するときにVPCエンドポイントを使うようにすると、セキュリティも強化できるしNATゲートウェイの通信量も減るのでお得。

VPC エンドポイントサービス (AWS PrivateLink) - Amazon Virtual Private Cloud

Amazon ECR インターフェイス VPC エンドポイント (AWS PrivateLink) - Amazon ECR

Fargate 起動タイプおよびプラットフォームバージョン 1.3.0 以前を使用する Amazon ECS タスクでは、この機能を活用するために必要なのは com.amazonaws.region.ecr.dkr Amazon ECR VPC エンドポイントおよび Amazon S3 ゲートウェイエンドポイントのみです。

Fargate 起動タイプとプラットフォームバージョン 1.4.0 以降を使用する Amazon ECS タスクでこの機能を使用するには、com.amazonaws.region.ecr.dkr と com.amazonaws.region.ecr.api Amazon ECR VPC エンドポイント、および Amazon S3 ゲートウェイエンドポイントが必要です。

なので、エンドポイントは適宜選ぶ。

なお、パブリックサブネットからECRでdocker pullしたいときとかはSGでパブリックサブネットからの通信接続を許可しないといけないし、S3のエンドポイントにもパブリックサブネットを追加する必要がある。

Amazon ECS の Amazon ECR エラー「CannotPullContainerError: API error」を解決する