Amazon ECS에 대한 Application Load Balancer 사용
Application Load Balancer는 애플리케이션 계층(HTTP/HTTPS)에서 라우팅 결정을 내리고, 경로 기반 라우팅을 지원하며, 클러스터의 각 컨테이너 인스턴스 상의 하나 이상의 포트로 요청을 라우팅할 수 있습니다. Application Load Balancer는 동적 호스트 포트 매핑을 지원합니다. 예를 들어, 작업의 컨테이너 정의가 NGINX 컨테이너 포트로 포트 80을 지정하고, 호스트 포트로 포트 0을 지정하면 컨테이너 인스턴스의 임시 포트 범위(예: 최신 Amazon ECS 최적화 AMI에서 32768 ~ 61000)에서 호스트 포트가 동적으로 선택됩니다. 태스크가 시작되면 NGINX 컨테이너가 인스턴스 ID와 포트의 조합으로 Application Load Balancer에 등록되고 트래픽은 해당 컨테이너에 해당하는 인스턴스 ID와 포트에 분산됩니다. 이 동적 매핑을 통해 동일한 컨테이너 인스턴스에서 단일 서비스의 다중 작업이 가능합니다. 자세한 정보는 Application Load Balancer 사용 설명서를 참조하세요.
배포 속도를 높이기 위한 파라미터 설정 모범 사례에 대한 자세한 내용은 다음을 참조하세요.
Amazon ECS와 함께 Application Load Balancer를 사용할 때는 다음 사항을 고려하세요.
-
Amazon ECS에는 작업이 생성되고 중지될 때 로드 밸런서에 대상을 등록 및 등록 취소하는 데 필요한 권한을 제공하는 서비스 연결 IAM 역할이 필요합니다. 자세한 내용은 Amazon ECS에 대해 서비스 연결 역할 사용 단원을 참조하십시오.
-
대상 그룹은 IP 주소 유형이 IPv4로 설정되어 있어야 합니다.
-
awsvpc
네트워크 모드를 사용하는 작업이 있는 서비스의 경우 서비스의 대상 그룹을 만들 때instance
가 아닌ip
를 대상 유형으로 선택해야 합니다. 이는awsvpc
네트워크 모드를 사용하는 태스크가 Amazon EC2 인스턴스가 아닌 탄력적 네트워크 인터페이스와 연결되기 때문입니다. -
서비스에서 HTTP/HTTPS 서비스를 위한 포트 80 및 포트 443과 같은 여러 로드 밸런싱 포트에 대한 액세스가 필요한 경우 2개의 리스너를 구성할 수 있습니다. 한 리스너는 요청을 서비스로 전달하는 HTTPS를 담당하고 다른 리스너는 HTTP 요청을 적절한 HTTPS 포트로 경로를 재지정하는 책임을 집니다. 자세한 정보는 Application Load Balancers 사용 설명서의 Application Load Balancer에 리스너 생성을 참조하세요.
-
로드 밸런서 서브넷 구성에는 컨테이너 인스턴스가 상주하는 모든 가용 영역이 포함되어야 합니다.
-
서비스를 생성한 후에는 로드 밸런서 구성을 AWS Management Console에서 변경할 수 없습니다. AWS Copilot, AWS CloudFormation, AWS CLI 또는 SDK를 사용하여 로드 밸런서 구성을 AWS CodeDeploy 블루/그린 또는 외부가 아닌
ECS
롤링 배포 컨트롤러에 대해서만 변경할 수 있습니다. 로드 밸런서 구성을 추가, 업데이트 또는 제거하면 Amazon ECS가 업데이트된 Elastic Load Balancing 구성을 사용하여 새 배포를 시작합니다. 이로 인해 작업이 로드 밸런서에 등록되거나 로드 밸런서에서 등록 취소됩니다. Elastic Load Balancing 구성을 업데이트하기 전에 테스트 환경에서 이를 확인하는 것이 좋습니다. 구성을 변경하는 방법에 대한 자세한 정보는 Amazon Elastic Container Service API Reference(Amazon Elastic Container Service API 레퍼런스)의 UpdateService를 참조하세요. -
서비스 작업이 로드 밸런서 상태 확인 기준에 실패하면 작업이 중단되고 다시 시작됩니다. 이 프로세스는 서비스가 원하는 실행 작업 수에 도달할 때까지 계속됩니다.
-
로드 밸런서-활성화 서비스에 문제가 있는 경우, Amazon ECS의 서비스 로드 밸런서 문제 해결을 참조하세요
-
태스크와 로드 밸런서는 동일한 VPC에 있어야 합니다.
-
각 서비스에 대해 고유한 대상 그룹을 사용합니다.
여러 서비스에 대해 동일한 대상 그룹을 사용하면 서비스 배포 중에 문제가 발생할 수 있습니다.
Application Load Balancer를 생성하는 방법에 대한 자세한 내용은 Application Load Balancer의 Create an Application Load Balancer를 참조하세요.