Amazon ECS에 대한 동적 포트 매핑을 설정하려면 어떻게 해야 하나요?

2분 분량
0

하나의 인스턴스에서 여러 작업 복사본을 실행하기 위해 Application Load Balancer 및 대상 그룹을 사용하여 Amazon ECS에 대한 동적 포트 매핑을 설정하는 방법을 알아보고 싶습니다.

간략한 설명

Classic Load Balancer를 사용하는 경우, 동일한 인스턴스에서 작업의 여러 복사본을 실행할 수 없습니다. 대신 Classic Load Balancer를 사용하는 경우 컨테이너 인스턴스에서 포트 번호를 정적으로 매핑해야 합니다. 하지만 Application Load Balancer는 동적 포트 매핑을 사용하므로 동일한 컨테이너 인스턴스의 단일 서비스에서 여러 작업을 실행할 수 있습니다.

참고: 동적 포트 매핑에 Network Load Balancer를 사용할 수도 있습니다. 자세한 내용은 Amazon ECS용 Network Load Balancer 사용을 참조하세요.

해결 방법

동적 포트 매핑을 설정하려면 다음 단계를 완료합니다.

  1. Amazon Elastic Container Service(Amazon ECS)용 Application Load Balancer와 대상 그룹을 만듭니다.
    중요: 대상 그룹을 만들 때 상태 검사 트래픽을 올바르게 라우팅하려면 고급 상태 검사 설정을 확장하세요. 포트에 대해, 트래픽 포트를 선택합니다.

  2. Amazon ECS 콘솔을 연 다음 생성 또는 업데이트 중인 작업 정의의 호스트 포트를 0으로 설정합니다. 애플리케이션에 대한 컨테이너 포트 매핑을 설정합니다.
    중요: 호스트awsvpc 네트워크 모드는 동적 호스트 포트 매핑을 지원하지 않습니다.

  3. 로드 밸런서에서 컨테이너 인스턴스로의 인바운드 트래픽을 허용하는 규칙을 추가하세요. 보안 그룹 및 네트워크 액세스 제어 목록(네트워크 ACL)은 임시 포트 범위를 통해 로드 밸런서에서 인스턴스로의 트래픽을 허용해야 합니다.
    **참고:**임시 포트 범위에 대한 자세한 내용은 PortMapping을 참조하세요.

  4. Amazon ECS 콘솔을 연 다음 생성한 Application Load Balancer를 사용하도록 서비스를 구성합니다.
    중요: 서비스를 만들 때 이러한 구성을 변경하거나 기존 서비스 내에 로드 밸런서를 추가할 수 있습니다. 서비스 작업 정의를 업데이트하는 경우 서비스 생성 시 지정한 컨테이너 이름과 컨테이너 포트가 작업 정의에 남아 있어야 합니다. 자세한 내용은 서비스 로드 밸런싱을 참조하세요. 또는 AWS CLI(AWS 명령줄 인터페이스) update-service 명령을 사용하여 구성을 변경하거나 로드 밸런서를 추가할 수 있습니다.

    aws ecs update-service --service <service-name> --cluster <cluster-name> --load-balancers targetGroupArn=<target-group-arn>,containerName=<container-name>,containerPort=<container-port>
  5. Amazon Elastic Compute Cloud(Amazon EC2) 콘솔을 열고 다음 단계를 완료합니다.
    탐색 창에서 대상 그룹을 선택합니다.
    대상 그룹에 대하여 하이퍼링크된 이름을 선택합니다.
    대상 탭을 검토합니다. 생성한 서비스에서 작업에 사용되는 포트를 확인할 수 있습니다.

동적 포트 매핑이 올바르게 설정된 경우 대상 그룹에 등록된 대상과 작업에 할당된 포트가 표시됩니다 다음과 같은 임시 포트 범위에 대해 등록된 대상에서도 작업을 확인할 수 있습니다. 49153-6553532768-61000입니다.

관련 정보

Elastic Load Balancing이란 무엇인가요?

Application Load Balancer란 무엇인가요?