Amazon ECS 중지된 태스크 연결성 확인하기

Amazon ECS 중지된 태스크 연결성 확인하기

때때로 태스크가 네트워크 연결 문제로 중지되는 경우가 있어요. 간헐적인 문제일 수도 있지만, 태스크가 엔드포인트에 연결할 수 없어서 발생하는 경우가 대부분입니다.

출처: 문서

본문

태스크가 네트워크 연결 문제로 중지되는 경우가 있습니다. 간헐적인 문제일 수도 있지만, 대부분은 태스크가 엔드포인트에 연결할 수 없기 때문에 발생합니다.

태스크 연결성 테스트하기

AWSSupport-TroubleshootECSTaskFailedToStart 런북을 사용해 태스크 연결성을 테스트할 수 있습니다. 런북을 사용할 때는 다음 리소스 정보가 필요합니다.

  • 태스크 ID — 가장 최근에 실패한 태스크의 ID를 사용합니다.
  • 태스크가 있던 클러스터

런북 사용 방법은 AWS Systems Manager Automation runbook reference의 "AWSSupport-TroubleshootECSTaskFailedToStart"를 참고하세요.

런북은 태스크를 분석합니다. 태스크가 시작되지 못하게 할 수 있는 다음 문제에 대해 Output 섹션에서 결과를 볼 수 있습니다.

  • 구성된 컨테이너 레지스트리의 네트워크 연결
  • VPC 엔드포인트 연결
  • 보안 그룹 규칙 구성

VPC 엔드포인트 문제 수정하기

AWSSupport-TroubleshootECSTaskFailedToStart 런북 결과가 VPC 엔드포인트 문제를 나타내면 다음 구성을 확인하세요.

  • 엔드포인트를 만드는 VPC와 VPC 엔드포인트가 Private DNS를 사용해야 합니다.
  • 태스크가 연결할 수 없는 서비스용 AWS PrivateLink 엔드포인트가 태스크와 같은 VPC에 있는지 확인하세요. 자세한 내용은 다음 중 하나를 참고합니다.
서비스 해당 서비스의 VPC 엔드포인트 정보
Amazon ECR Amazon ECR interface VPC endpoints (AWS PrivateLink)
Systems Manager Improve the security of EC2 instances by using VPC endpoints for Systems Manager
Secrets Manager Using an AWS Secrets Manager VPC endpoint
CloudWatch CloudWatch VPC endpoint
Amazon S3 AWS PrivateLink for Amazon S3
  • 포트 443의 HTTPS와 DNS(TCP) 트래픽을 허용하는 태스크 서브넷용 아웃바운드 규칙을 구성하세요. 자세한 내용은 Amazon Elastic Compute Cloud User Guide의 "Configure security group rules"를 참고하세요.
  • 사용자 지정 이름 도메인 서버를 사용한다면 DNS 쿼리 설정을 확인하세요. 쿼리는 포트 53에서 아웃바운드 접근이 있어야 하며 UDP와 TCP 프로토콜을 사용해야 합니다. 또한 포트 443의 HTTPS 접근도 있어야 합니다.
  • 서브넷에 네트워크 ACL이 있다면 다음 ACL 규칙이 필요합니다.
    • 포트 1024~65535의 트래픽을 허용하는 아웃바운드 규칙
    • 포트 443의 TCP 트래픽을 허용하는 인바운드 규칙
  • 규칙 구성 방법은 Amazon Virtual Private Cloud User Guide의 "Control traffic to subnets using network ACLs"를 참고하세요.

네트워크 문제 수정하기

AWSSupport-TroubleshootECSTaskFailedToStart 런북 결과가 네트워크 문제를 나타내면 런북에 따라 다음 구성을 수행합니다.

공용 서브넷의 태스크

  • 태스크를 시작할 때 Auto-assign public IP에 ENABLED를 지정합니다. 자세한 내용은 "Running an application as an Amazon ECS task"를 참고하세요.
  • 인터넷 트래픽을 처리할 게이트웨이가 필요합니다. 태스크 서브넷의 라우트 테이블에 게이트웨이로 가는 트래픽 라우트가 있어야 합니다. 자세한 내용은 Amazon Virtual Private Cloud User Guide의 "Add and remove routes from a route table"을 참고하세요.
게이트웨이 유형 라우트 테이블 대상 라우트 테이블 대상지
NAT 0.0.0.0/0 NAT 게이트웨이 ID
인터넷 게이트웨이 0.0.0.0/0 인터넷 게이트웨이 ID
  • 태스크 서브넷에 네트워크 ACL이 있다면 다음 ACL 규칙이 필요합니다.
    • 포트 1024~65535의 트래픽을 허용하는 아웃바운드 규칙
    • 포트 443의 TCP 트래픽을 허용하는 인바운드 규칙

프라이빗 서브넷의 태스크

  • 태스크를 시작할 때 Auto-assign public IP에 DISABLED를 선택합니다.
  • 요청을 인터넷으로 라우팅하도록 VPC에 NAT 게이트웨이를 구성합니다. 자세한 내용은 Amazon Virtual Private Cloud User Guide의 "NAT Gateways"를 참고하세요.
  • 태스크 서브넷의 라우트 테이블에 NAT 게이트웨이로 가는 트래픽 라우트가 있어야 합니다.
게이트웨이 유형 라우트 테이블 대상 라우트 테이블 대상지
NAT 0.0.0.0/0 NAT 게이트웨이 ID
  • 태스크 서브넷에 네트워크 ACL이 있다면 다음 ACL 규칙이 필요합니다.
    • 포트 1024~65535의 트래픽을 허용하는 아웃바운드 규칙
    • 포트 443의 TCP 트래픽을 허용하는 인바운드 규칙

EC2 컨테이너 인스턴스 (공용)

  • 클러스터를 만들 때 Amazon EC2 인스턴스의 Networking 아래 Auto assign IP에서 Turn on을 선택합니다. 이 옵션은 인스턴스의 기본 네트워크 인터페이스에 공용 IP 주소를 할당합니다.
  • 인터넷 트래픽을 처리할 게이트웨이가 필요합니다. 인스턴스 서브넷의 라우트 테이블에 게이트웨이로 가는 트래픽 라우트가 있어야 합니다.
게이트웨이 유형 라우트 테이블 대상 라우트 테이블 대상지
NAT 0.0.0.0/0 NAT 게이트웨이 ID
인터넷 게이트웨이 0.0.0.0/0 인터넷 게이트웨이 ID
  • 인스턴스 서브넷에 네트워크 ACL이 있다면 다음 ACL 규칙이 필요합니다.
    • 포트 1024~65535의 트래픽을 허용하는 아웃바운드 규칙
    • 포트 443의 TCP 트래픽을 허용하는 인바운드 규칙

EC2 컨테이너 인스턴스 (프라이빗)

  • 클러스터를 만들 때 Amazon EC2 인스턴스의 Networking 아래 Auto assign IP에서 Turn off를 선택합니다.
  • 요청을 인터넷으로 라우팅하도록 VPC에 NAT 게이트웨이를 구성합니다. 자세한 내용은 Amazon VPC User Guide의 "NAT Gateways"를 참고하세요.
  • 인스턴스 서브넷의 라우트 테이블에 NAT 게이트웨이로 가는 트래픽 라우트가 있어야 합니다.
게이트웨이 유형 라우트 테이블 대상 라우트 테이블 대상지
NAT 0.0.0.0/0 NAT 게이트웨이 ID
  • 인스턴스 서브넷에 네트워크 ACL이 있다면 다음 ACL 규칙이 필요합니다.
    • 포트 1024~65535의 트래픽을 허용하는 아웃바운드 규칙
    • 포트 443의 TCP 트래픽을 허용하는 인바운드 규칙

더 알아보기 (Learn more)

  • 보안 그룹 규칙과 네트워크 ACL 구성에 대한 자세한 내용은 AWS 공식 문서를 참고해 주세요.