로드 밸런서 유형 - Amazon Elastic Container Service

로드 밸런서 유형

Elastic Load Balancing은 다음 유형의 로드 밸런서를 지원합니다. Application Load Balancer, Network Load Balancer 및 Classic Load Balancer. Amazon ECS 서비스는 이러한 유형의 로드 밸런서를 사용할 수 있습니다. Application Load Balancer는 HTTP/HTTPS(또는 계층 7) 트래픽을 라우팅하는 데 사용합니다. Network Load Balancer 및 Classic Load Balancer는 TCP(또는 계층 4) 트래픽을 라우팅하는 데 사용합니다.

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 사용 설명서를 참조하세요.


                        Application Load Balancer

Application Load Balancer 및 Network Load Balancer 고려 사항

다음 고려 사항은 Application Load Balancer 또는 Network Load Balancer를 사용하는 Amazon ECS 서비스에만 해당됩니다.

  • Amazon ECS에는 작업이 생성되고 중지될 때 로드 밸런서에 대상을 등록 및 등록 취소하는 데 필요한 권한을 제공하는 서비스 연결 IAM 역할이 필요합니다. 자세한 정보는 Amazon ECS에 대해 서비스 연결 역할 사용 섹션을 참조하세요.

  • Application Load Balancer 또는 Network Load Balancer를 사용하는 서비스의 경우 6개 이상의 대상 그룹을 서비스에 연결할 수 없습니다.

  • awsvpc 네트워크 모드를 사용하는 작업이 있는 서비스의 경우 서비스의 대상 그룹을 만들 때 instance가 아닌 ip를 대상 유형으로 선택해야 합니다. 이는 awsvpc 네트워크 모드를 사용하는 태스크가 Amazon EC2 인스턴스가 아닌 탄력적 네트워크 인터페이스와 연결되기 때문입니다.

  • 서비스가 Application Load Balancer를 사용하며 HTTP/HTTPS 서비스에 대해 포트 80 및 포트 443과 같은 여러 로드 밸런싱 포트에 액세스해야 하는 경우 두 개의 리스너를 구성할 수 있습니다. 한 리스너는 요청을 서비스로 전달하는 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를 참조하세요.

  • 서비스의 작업이 로드 밸런서 상태 확인 기준에 실패하면 작업이 중단되고 다시 시작됩니다. 이 프로세스는 서비스가 원하는 실행 작업 수에 도달할 때까지 계속됩니다.

  • IP 주소로 구성된 Network Load Balancer를 대상으로 사용하는 경우 요청은 Network Load Balancer의 프라이빗 IP 주소에서 오는 것으로 간주됩니다. 즉, 대상 보안 그룹에서 수신 요청 집합과 상태 확인을 허용하는 즉시 Network Load Balancer 뒤에 있는 서비스가 효과적으로 열려 있습니다.

  • Network Load Balancer를 사용하여 Fargate의 Amazon ECS 태스크로 UDP 트래픽을 라우팅하려면 태스크에 플랫폼 버전 1.4.0(Linux) 또는 1.0.0(Windows)을 사용해야 합니다.

  • 클라이언트 연결 시간 제한보다 길어야 하는 대상 그룹 등록 취소 지연보다 길게 태스크 정의의 StopTimeout을 설정하여 클라이언트 애플리케이션의 오류를 최소화합니다. 권장 클라이언트 구성에 대한 자세한 정보는 Builders' Library를 참조하세요.

    또한 연결 종료를 위한 Network Load Balancer 대상 그룹 속성은 등록 취소 시간 이후에 남아 있는 모든 연결을 닫습니다. 이로 인해 클라이언트가 처리하지 않는 경우 클라이언트가 원하지 않는 오류 메시지를 표시할 수 있습니다.

  • 로드 밸런서-활성화 서비스에 문제가 있는 경우, 서비스 로드 밸런서 문제 해결을 참조하세요

  • 태스크와 로드 밸런서(Application Load Balancer 또는 Network Load Balancer)는 같은 VPC에 있어야 합니다.

Network Load Balancer

Network Load Balancer는 전송 계층(TCP/SSL)에서 라우팅을 결정합니다. 초당 수백만 개의 요청을 처리할 수 있습니다. 로드 밸런서가 연결을 수신하면 해시 라우팅 알고리즘 흐름에 따라 기본 규칙의 대상 그룹에서 대상을 선택합니다. 리스너 구성에 지정된 포트에서 선택한 대상에 대한 TCP 연결을 열려고 시도합니다. 헤더를 수정하지 않고 요청을 전달합니다. Network Load Balancer는 동적 호스트 포트 매핑을 지원합니다. 예를 들어, 작업의 컨테이너 정의가 NGINX 컨테이너 포트로 포트 80을 지정하고, 호스트 포트로 포트 0을 지정하면 컨테이너 인스턴스의 임시 포트 범위(예: 최신 Amazon ECS 최적화 AMI에서 32768 ~ 61000)에서 호스트 포트가 동적으로 선택됩니다. 작업이 시작되면 NGINX 컨테이너가 인스턴스 ID-포트 조합으로 Network Load Balancer에 등록되고, 트래픽은 해당 컨테이너에 해당하는 인스턴스 ID와 포트에 분산됩니다. 이 동적 매핑을 통해 동일한 컨테이너 인스턴스에서 단일 서비스의 다중 작업이 가능합니다. Network Load Balancer에 대한 자세한 정보는 Network Load Balancer 사용 설명서를 참조하세요.


                        Network Load Balancer

Classic Load Balancer

EC2-Classic은 2022년 8월 15일에 사용 중지되었습니다. 워크로드의 중단을 방지하려면 2022년 8월 15일 이전에 EC2-Classic에서 VPC로 마이그레이션하는 것이 좋습니다. 자세한 정보는 블로그 게시물EC2-Classic 네트워킹은 사용 중지 중입니다 - 준비 방법은 다음과 같습니다를 참조하세요. EC2-Classic을 VPC로 마이그레이션하는 방법에 대한 자세한 정보는 Linux 인스턴스용 Amazon EC2 사용 설명서EC2 Classic에서 VPC로 마이그레이션을 참조하세요.