ECSを プライベートサブネットで実行

Pocket

ECSはタスク実行時にVPC外のリソースにアクセスする必要があります。
パブリックサブネットに配置する場合は特に必要ありませんが、プライベートサブネットに配置する場合は、それらリソースへのアクセス手段が必要になります。

前提

  • ECRのイメージを使用
  • コンテナのログドライバーとしてawslogsを使用

タスク実行時にアクセスするリソース

接続手段

  • NATゲートウェイを使用
  • VPC エンドポイントを使用

今回はVPC エンドポイントを使用する例を記載します。

VPC エンドポイント

サービス名 タイプ 内容
com.amazonaws.ap-northeast-1.ecr.dkr Interface 「ECRへdocker pullやdocker pushを実行する時に利用されるエンドポイント」(エンドポイントを使用してプライベートサブネットでECSを使用する
com.amazonaws.ap-northeast-1.ecr.api Interface ECRのAPI
com.amazonaws.ap-northeast-1.s3 Gateway S3のエンドポイント
com.amazonaws.ap-northeast-1.logs Interface CloudWatchのエンドポイント

InterfaceタイプのVPCエンドポイントはENIなのでセキュリティグループを割り当てます。
セキュリティグループはステーフルですが、タスク実行時にエンドポイント側発信のHTTPSアクセスがあるのでHTTPSを許可する必要があります。

参考

  • https://docs.aws.amazon.com/ja_jp/AmazonECR/latest/userguide/vpc-endpoints.html
  • https://aws.amazon.com/jp/premiumsupport/knowledge-center/ecs-fargate-tasks-private-subnet/?utm_source=pocket_mylist
  • https://dev.classmethod.jp/articles/privatesubnet_ecs/
  • https://blog.not75743.com/post/ecs_private/

コメント

No comments yet.

コメントの投稿

改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。