Fargate 시작 유형에 대한 Amazon ECS 작업 네트워킹 옵션 - Amazon Elastic Container Service

Fargate 시작 유형에 대한 Amazon ECS 작업 네트워킹 옵션

기본적으로 Fargate의 모든 Amazon ECS 태스크에는 기본 프라이빗 IP 주소와 함께 탄력적 네트워크 인터페이스(ENI)가 제공됩니다. 퍼블릭 서브넷을 사용할 때 필요에 따라 태스크의 ENI에 퍼블릭 IP 주소를 할당할 수도 있습니다. VPC가 듀얼 스택 모드를 사용하도록 구성되어 있고 IPv6 CIDR 블록과 함께 서브넷을 사용하는 경우 작업의 ENI도 IPv6 주소를 수신합니다. 한 태스크에는 한 번에 하나의 ENI만 연결할 수 있습니다. 또한 같은 태스크에 속한 컨테이너는 localhost 인터페이스로 통신할 수 있습니다. VPC 및 서브넷에 대한 자세한 정보는 Amazon VPC 사용 설명서VPC 및 서브넷을 참조하세요.

Fargate의 태스크가 컨테이너 이미지를 풀링하려면 해당 태스크에 인터넷으로 연결되는 경로가 있어야 합니다. 태스크에 인터넷이 연결되는 경로가 있는지 확인하는 방법은 다음과 같습니다.

  • 퍼블릭 서브넷을 사용할 때 태스크의 ENI에 퍼블릭 IP 주소를 할당할 수 있습니다.

  • 프라이빗 서브넷을 사용할 때 서브넷은 NAT 게이트웨이를 연결할 수 있습니다.

  • Amazon ECR에서 호스팅되는 컨테이너 이미지를 사용하는 경우 인터페이스 VPC 엔드포인트를 사용하도록 Amazon ECR을 구성할 수 있습니다. 그러면 태스크의 프라이빗 IPv4 주소를 통해 이미지 가져오기가 실행됩니다. 자세한 정보는 Amazon Elastic Container Registry 사용 설명서Amazon ECR 인터페이스 VPC 엔드포인트(AWS PrivateLink)를 참조하세요.

각 태스크는 고유한 ENI를 받으므로 VPC 흐름 로그와 같은 네트워킹 기능을 활용하여 태스크에서 주고받는 트래픽을 모니터링할 수도 있습니다. 자세한 정보는 Amazon VPC 사용 설명서VPC 흐름 로그를 참조하세요.

AWS PrivateLink를 이용할 수도 있습니다. 프라이빗 IP 주소를 통해 Amazon ECS API에 액세스할 수 있도록 VPC 인터페이스 엔드포인트를 구성할 수 있습니다. AWS PrivateLink는 VPC와 Amazon ECS 간의 모든 네트워크 트래픽을 Amazon 네트워크로 제한합니다. 인터넷 게이트웨이, NAT 디바이스 또는 가상 프라이빗 게이트웨이가 필요 없습니다. 자세한 정보는 Amazon ECS 모범 사례 가이드AWS PrivateLink 섹션을 참조하세요.

AWS CloudFormation에서 NetworkConfiguration 리소스를 사용하는 방법의 예는 별도의 스택을 사용하여 Amazon ECS 리소스 생성를 참조하세요.

생성된 ENI는 AWS Fargate로 완전 관리됩니다. 또한 Fargate에 대한 권한을 부여하는 데 사용되는 관련 IAM 정책이 있습니다. Fargate 플랫폼 버전 1.4.0 이상을 사용하는 태스크의 경우 태스크는 단일 ENI(태스크 ENI라고 함)를 수신하고 모든 네트워크 트래픽은 VPC 내의 해당 ENI를 통해 흐릅니다. 이 트래픽은 VPC 흐름 로그에 기록됩니다. 버전이 1.3.0 이전인 Fargate 플랫폼을 사용하는 태스크의 경우 태스크 ENI 외에도 VPC 흐름 로그에 표시되지 않는 일부 네트워크 트래픽에 사용되는 별도의 Fargate 소유 ENI를 수신합니다. 다음 표는 네트워크 트래픽 동작과 각 플랫폼 버전에 필요한 IAM 정책에 대해 설명합니다.

작업

Linux 플랫폼 버전 1.3.0 이하의 트래픽 흐름

Linux 플랫폼 버전 1.4.0의 트래픽 흐름

Windows 플랫폼 버전 1.0.0의 트래픽 흐름

IAM 권한

Amazon ECR 로그인 자격 증명 검색

Fargate 소유 ENI

태스크 ENI

태스크 ENI

태스크 실행 IAM 역할

이미지 가져오기

태스크 ENI

태스크 ENI

태스크 ENI

태스크 실행 IAM 역할

로그 드라이버를 통해 로그 전송

태스크 ENI

태스크 ENI

태스크 ENI

태스크 실행 IAM 역할

Amazon ECS용 FireLens를 통해 로그 전송

태스크 ENI

태스크 ENI

태스크 ENI

태스크 IAM 역할

Secrets Manager 또는 Systems Manager에서 암호 검색

Fargate 소유 ENI

태스크 ENI

태스크 ENI

태스크 실행 IAM 역할

Amazon EFS 파일 시스템 트래픽

사용할 수 없음

태스크 ENI

태스크 ENI

태스크 IAM 역할

애플리케이션 트래픽

태스크 ENI

태스크 ENI

태스크 ENI

태스크 IAM 역할

고려 사항

태스크 네트워킹을 사용할 때는 다음 항목을 고려하세요.

  • Amazon ECS 서비스 연결 역할은 Amazon ECS에 사용자를 대신해서 다른 AWS 서비스를 호출할 수 있는 권한을 제공해야 합니다. 이 역할은 클러스터를 생성하거나 AWS Management Console에서 서비스를 생성 또는 업데이트할 때 생성됩니다. 자세한 정보는 Amazon ECS에 대해 서비스 연결 역할 사용을 참조하세요. 다음 AWS CLI 명령을 사용하여 서비스 연결 역할을 생성할 수도 있습니다.

    aws iam create-service-linked-role --aws-service-name ecs.amazonaws.com
  • Amazon ECS는 enableDnsHostnamesenableDnsSupport 옵션이 모두 VPC에서 사용 설정된 경우 Amazon에서 제공한 DNS 호스트 이름을 함께 사용하여 태스크의 호스트 이름을 채웁니다. 이러한 옵션이 사용 설정되지 않으면 태스크의 DNS 호스트 이름이 임의의 호스트 이름이 설정됩니다. VPC DNS 설정에 대한 자세한 정보는 Amazon VPC 사용 설명서VPC와 함께 DNS 사용을 참조하세요.

  • awsVpcConfiguration에는 최대 16개의 서브넷과 5개의 보안 그룹만 지정할 수 있습니다. 자세한 정보는 Amazon Elastic Container Service API 참조AwsVpcConfiguration을 참조하세요.

  • Fargate에서 생성 및 연결하는 ENI는 수동으로 분리하거나 수정할 수 없습니다. 이는 실행 중인 태스크와 연결된 ENI가 우발적으로 삭제되는 일을 방지하기 위한 것입니다. 태스크에 대한 ENI를 해제하려면 태스크를 중지합니다.

  • VPC 서브넷이 사용하는 DHCP 옵션 세트를 변경하도록 업데이트된 경우, VPC를 사용하는 기존 작업에도 이러한 변경 사항을 적용할 수 없습니다. 새 작업을 시작하면, 새 변경 사항을 테스트하는 동안 원활하게 마이그레이션할 수 있는 새 설정을 수신한 다음 롤백이 필요하지 않은 경우 이전 작업을 중지합니다.

  • IPv6 CIDR 블록이 있는 서브넷에서 시작된 태스크는 Fargate 플랫폼 버전 1.4.0 이상(Linux) 또는 1.0.0(Windows)을 사용할 때만 IPv6 주소를 수신합니다.

  • 플랫폼 버전 1.4.0 이상(Linux) 또는 1.0.0(Windows)을 사용하는 태스크의 경우 태스크 ENI가 점보 프레임을 지원합니다. 네트워크 인터페이스는 단일 프레임 내에 맞는 가장 큰 페이로드 크기인 최대 전송 단위(MTU)로 구성됩니다. MTU가 클수록 단일 프레임 내에 더 많은 애플리케이션 페이로드가 들어갈 수 있으므로 프레임당 오버헤드가 줄어들고 효율성이 향상됩니다. 점보 프레임을 지원하면 태스크와 대상 간의 네트워크 경로가 점보 프레임을 지원할 때 오버헤드가 줄어듭니다.

  • Fargate 시작 유형을 사용하는 태스크의 서비스는 Application Load Balancer 및 Network Load Balancer만 지원합니다. Classic Load Balancer는 지원되지 않습니다. 대상 그룹을 생성할 때 대상 유형을 instance가 아닌 ip로 선택해야 합니다. 자세한 정보는 로드 밸런싱을 사용하여 Amazon ECS 서비스 트래픽 분산을 참조하세요.

듀얼 스택 모드로 VPC 사용하기

VPC를 듀얼 스택 모드로 사용하는 경우 태스크는 IPv4나 IPv6, 또는 둘 다를 통해 통신할 수 있습니다. IPv4 및 IPv6 주소는 서로 독립적이며 IPv4 및 IPv6에 대해 별도로 VPC의 라우팅 및 보안을 구성해야 합니다. VPC를 듀얼 스택 모드로 구성하는 방법에 대한 자세한 정보는 Amazon VPC 사용 설명서IPv6로 마이그레이션하기를 참조하세요.

다음 조건이 충족되면 Fargate의 Amazon ECS 태스크에 IPv6 주소가 할당됩니다.

  • 작업을 시작하려는 리전에서 IAM 보안 주체가 작업을 시작할 수 있도록 Amazon ECS dualStackIPv6 계정 설정이 켜져 있습니다(enabled). 이 설정은 API 또는 AWS CLI를 사용해서만 수정할 수 있습니다. 계정 기본 설정을 설정하여 계정의 특정 IAM 보안 주체에 대해 이 설정을 켜거나 계정 전체에서 이 설정을 켤 수 있습니다. 자세한 내용은 계정 설정을 사용하여 Amazon ECS 기능에 액세스 단원을 참조하십시오.

  • VPC와 서브넷이 IPv6에 대해 활성화되어 있습니다. VPC를 듀얼 스택 모드로 구성하는 방법에 대한 자세한 정보는 Amazon VPC 사용 설명서IPv6로 마이그레이션하기를 참조하세요.

  • 서브넷에서 IPv6 주소를 자동 할당할 수 있습니다. 서브넷을 구성하는 방법에 대한 자세한 내용을 알아보려면 Amazon VPC 사용 설명서의 서브넷의 IPv6 주소 지정 속성 수정을 참조하세요.

  • 작업 또는 서비스가 Fargate 플랫폼 버전 1.4.0 이상(Linux)을 사용합니다.

인터넷 게이트웨이 또는 아웃바운드 전용 인터넷 게이트웨이로 VPC를 구성하면 IPv6 주소가 할당된 Fargate의 Amazon ECS 작업이 인터넷에 액세스할 수 있습니다. NAT 게이트웨이는 필요하지 않습니다. 자세한 정보는 Amazon VPC 사용 설명서인터넷 게이트웨이송신 전용 인터넷 게이트를 참조하세요.