로드 밸런서 유형 - 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

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

Classic Load Balancer는 전송 계층(TCP/SSL) 또는 애플리케이션 계층(HTTP/HTTPS)에서 라우팅을 결정합니다. 현재 Classic Load Balancer는 로드 밸런서 포트와 컨테이너 인스턴스 포트의 고정된 관계가 필요합니다. 예를 들어 로드 밸런서 포트 80은 컨테이너 인스턴스 포트 3030에 매핑할 수 있고, 로드 밸런서 포트 4040은 컨테이너 인스턴스 포트 4040에 매핑할 수 있습니다. 하지만 로드 밸런서 포트 80을 한 컨테이너 인스턴스의 포트 3030과 다른 컨테이너 인스턴스의 포트 4040에 매핑할 수는 없습니다. 이 정적 매핑이 가능하려면 Classic Load Balancer를 사용하는 원하는 단일 서비스 수 이상의 컨테이너 인스턴스가 클러스터에 있어야 합니다. Network Load Balancer에 대한 자세한 내용은 Classic Load Balancer 사용 설명서를 참조하세요.


                        Classic Load Balancer

Gateway Load Balancer

Gateway Load Balancer를 사용하면 방화벽, 침입 탐지 및 방지 시스템, 심층 패킷 검사 시스템과 같은 가상 어플라이언스를 배포, 확장 및 관리할 수 있습니다. 투명한 네트워크 게이트웨이(즉, 모든 트래픽에 대한 단일 진입 및 종료 지점)를 결합하고 수요에 따라 가상 어플라이언스를 조정하면서 트래픽을 분산합니다. Gateway Load Balancer는 오픈 시스템 상호 연결(OSI) 모델의 세 번째 계층인 네트워크 계층에서 작동합니다. 모든 포트에서 모든 IP 패킷을 수신하고 리스너 규칙에 지정된 대상 그룹으로 트래픽을 전달합니다. 5튜플(TCP/UDP 흐름의 경우) 또는 3튜플(비 TCP/UDP 흐름의 경우)을 사용하여 특정 대상 어플라이언스에 대한 흐름의 연결을 유지합니다. Gateway Load Balancer 및 등록된 가상 어플라이언스 인스턴스는 포트 6081의 GENEVE 프로토콜을 사용하여 애플리케이션 트래픽을 교환합니다. 최대 전송 단위(MTU) 크기를 8500바이트로 지원합니다. Gateway Load Balancer는 Gateway Load Balancer 엔드포인트를 사용하여 VPC 경계 전체에서 트래픽을 안전하게 교환합니다. Gateway Load Balancer 엔드포인트는 서비스 공급자 VPC의 가상 어플라이언스와 서비스 소비자 VPC의 애플리케이션 서버 간에 프라이빗 연결을 제공하는 VPC 엔드포인트입니다. 가상 어플라이언스와 동일한 VPC에 Gateway Load Balancer를 배포합니다. Gateway Load Balancer 대상 그룹에 가상 어플라이언스를 등록합니다. 자세한 내용은 Gateway Load Balancer 사용 설명서를 참조하세요.