継続的ブログ

主にweb系の技術について書いています

Fargate 1.4.0 に対応する(プライベートリンクの設定)

先日 Fargate プラットフォームバージョン 1.4.0 がリリースされました。

aws.amazon.com

タスク Elastic Network Interface (ENI) が追加のトラフィックフローの実行を開始

変更点の中にこのようなものがあり、プライベートリンクを使っている場合は追加のエンドポイントの設定が必要になります。

必要な設定がされていない場合、下記のようなエラーが出ます。

ResourceInitializationError: unable to pull secrets or registry auth: execution resource retrieval failed: unable to retrieve ecr registry auth: service call has been retried 1 time(s): RequestError: send request failed caused by: Post https://api.ecr....

説明文にも書いてあるとおり、 ecr.api エンドポイントの追加は必要です。

実際の例としては、以前は Fargate で ECR にプライベートリンクを使用していた場合、ecr.dkr エンドポイントを設定するだけで済みました。プラットフォームバージョン 1.4.0 では、api.ecr エンドポイントも設定する必要があります。

resource "aws_vpc_endpoint" "ecr_api" {
  service_name        = "com.amazonaws.ap-northeast-1.ecr.api"
  vpc_endpoint_type   = "Interface"
  vpc_id              = aws_vpc.this.id
  subnet_ids          = aws_subnet.private.*.id
  security_group_ids  = [aws_security_group.ecs_private_link.id]
  private_dns_enabled = true
}

そのほかにも Secrets ManagerSystems Manager を使用している場合は、追加で設定が必要です。

  • 例: SSM
resource "aws_vpc_endpoint" "ssm" {
  service_name        = "com.amazonaws.ap-northeast-1.ssm"
  vpc_endpoint_type   = "Interface"
  vpc_id              = aws_vpc.this.id
  subnet_ids          = aws_subnet.private.*.id
  security_group_ids  = [aws_security_group.ecs_private_link.id]
  private_dns_enabled = true
}

Fargate どんどん良くなっていって素晴らしい!