AWS Load Balancer
Elastic Load Balancing는 로드 밸런서 유형 Application Load Balancer, Network Load Balancer 및 Classic Load Balancer를 지원함.
Amazon ECS 서비스는 어느 유형의 로드 밸런서든 사용할 수 있음.
ALB는 HTTP/HTTPS (or Layer7) 트래픽을 라우팅할 때 사용.
NLB 및 CLB는 TCP (or Layer4) 트래픽을 라우팅할 때 사용.
ALB (Application Load Balancer)
Application Load Balancer는 애플리케이션 계층 (HTTP/HTTPS)에서 라우팅 결정을 내리고, 경로 기반 라우팅을 지원하며, 클러스터의 각 컨테이너 인스턴스 상의 하나 이상의 포트로 요청을 라우팅할 수 있음.
ALLB는 동적 호스트 포트 매핑을 지원함.
ex) 작업의 컨테이너 정의가 NGINX 컨테이너 포트로 포트 80을 지정하고, 호스트 포트로 포트 0을 지정하면 컨테이너 인스턴스의 임시포트 범위에서 호스트 포트가 동적으로 선택됨.
작업이 시작되면 NGINX 컨테이너가 인스턴스 ID-포트 조합으로 ALB에 등록되고, 트래픽은 해당 컨테이너에 해당하는 인스턴스 ID와 포트에 분산됨.
이 동적 매핑을 통해 동일한 컨테이너 인스턴스에서 단일 서비스의 다주 작업이 가능함.
NLB (Network Loadd Balancer)
Network Loadd Balancer는 전송 계층 (TCP/SSL)에서 라우팅을 결정함.
초당 수백만 개의 요청을 처리할 수 있음.
로드 밸런서가 연결을 수신하면 해시 라우팅 알고리즘 흐름에 따라 기본 규칙의 대상 그룹에서 대상을 선택함.
리스너 구성에 지정된 포트에서 선택한 대상에 대한 TCP 연결을 열려고 시도함.
그리고 헤더를 수정하지 않고 요청을 전달함.
NLB는 동적 호스트 포트 매핑을 지원함.
ex) 작업의 컨테이너 정의가 NGINX 컨테이너 포트로 포트 80을 지정하고, 호스트 포트로 포트 0을 지정하면 컨테이너 인스턴스의 임시포트 범위에서 호스트 포트가 동적으로 선택됨.
작업이 시작되면 NGINX 컨테이너가 인스턴스 ID-포트 조합으로 NLB에 등록되고, 트래픽은 해당 컨테이너에 해당하는 인스턴스 ID와 포트에 분산됨.
이 동적 매핑을 통해 동일한 컨테이너 인스턴스에서 단일 서비스의 다주 작업이 가능함.
CLB (Classic Load Balancer)
Classic Load Balancer는 전송 계층(TCP/SSL) 또는 애플리케이션 계층 (HTTP/HTTPS)에서 라우팅 결정을 내림.
현재 CLB는 로드 밸런서 포트와 컨테이너 인스턴스 포트의 고정된 관계가 필요함.
ex) 로드 밸런서 포트 80은 컨테이너 인스턴스 포트 3030에 매핑할 수 있고, 로드 밸런서 포트 4040은 컨테이너 인스턴스 4040에 매핑할 수 있음.
하지만 로드 밸런서 포트 80을 한 컨테이너 인스턴스의 포트 3030과 다른 컨테이너 인스턴스의 포트 4040에 매핑할 수는 없음.
이 정적 매핑이 가능하려면 CLB를 사용하는 원하는 단일 서비스 수 이상의 컨테이너 인스턴스가 클러스터에 있어야함.
GLB (Gateway Load Balancer)
Gateway Load Balancer를 사용하면 방화벽, 침입 탐지 및 방지 시스템, 심층 패킷 검사 시스템과 같은 가상 어플라이언스를 배포, 확장 및 관리 할 수 있음.
투명한 네티워크 게이트웨이 (즉, 모든 트래픽에 대한 단일 진입 및 종료 지점)를 결합하고 수요에 따라 가상 장치를 확장하면서 트래픽을 분산함.
GLB 개방형 시스템 간 상호 연결 (OSI) 모델의 세 번째 계층인 네트우크 계층에서 작동함.
모든 포트에서 모든 IP 패킷을 수신하고 리스너 규칙에 지정된 대상 그룹으로 트래픽을 전달함.
5 튜플 (TCP/UDP 흐름의 경우) 또는 3 튜플 (비 TCP/UDP) 흐름의 경우)을 사용하여 특정 대상 기기에 대한 흐름의 점착성을 유지함.
GLB 등록된 가상 장치 인스턴스는 포트 6081의 GENEVE 프로토콜을 사용하여 애플리케이션 트래픽을 교환함.
이 기능은 8500바이트의 최대 전송 단위 (MTU) 크기를 지원함.
GLB는 GLB endpoint를 사용하여 VPC 경계 전체에서 트래픽을 안전하게 교환함.
GLB endpoint는 서비스 공급자 VPC 가상 어플라이언스와 서비스 소비자 VPC의 애플리케이션 서버 간에 프라이빗 연결을 제공하는 VPC endpoint임.
가상 장치와 동일한 VPC GLB 배포함.
GLB 대상 그룹에 가상장치를 등록함.
출처 : https://docs.aws.amazon.com/ko_kr/AmazonECS/latest/developerguide/load-balancer-types.html
'Infra > AWS EC2' 카테고리의 다른 글
Amazon EC2 Auto Scaling (FAQ - 보안) (0) | 2021.11.09 |
---|---|
Application Load Balancer (0) | 2021.11.09 |
Amazon EC2 Auto Scaling (FAQ - 손상된 인스턴스 교체) (0) | 2021.11.04 |
Amazon EC2 Auto Scaling (FAQ - 일반) (0) | 2021.11.04 |