- AWS의 ELB는 3개의 세부 항목으로 나뉘어져있으며, 인입되는 트래픽을 EC2, 컨테이너, IP 주소, Lambda 함수와 같은 대상으로 트래픽을 분산시키는 역할을 함. 애플리케이션의 고가용성, 자동 확장/축소, 보안 기능을 함.
- Health Check를 통해 LB 하단의 상태를 체크(EC2 등)
ALB(Application Load Balancer) / NLB(Network Load Balancer) / CLB(Classic Load Balancer)
- Application Load Balancer
- 프로토콜 HTTP 및 HTTPS 트래픽의 로드 밸런싱에 가장 적합.
- 마이크로서비스와 컨테이너 등 애플리케이션 아키텍처 전달을 위한 고급 요청 라우팅 기능 제공
(인입된 트래픽을 PATH에 기반으로 처리)
- 7계층(어플리케이션 단)에서 작동하며, VPC 내의 대상으로 트래픽을 라우팅
- 1개의 EC2에서도 여러개의 포트(80, 8080)로 로드밸런싱 가능
- URL Path 기반, Host 기반, Redirection, HTTP 헤더 기반, 쿼리 문자열 파라미터 기반, 소스 IP주소 CIDR 기반 라우팅을 지원 (Redirection의 경우, 하나의 URL에서 수신되는 요청을 다른 URL로 리디렉션 가능.)
- Lambda 함수를 대상으로 사용 가능(Lambda 함수를 사용하여 EC2, 컨테이너, 온프레미스 서버 등으로 확장 가능)
- Network Load Balancer
- 프로토콜 TCP, UDP 및 TLS(Transport Layer Security, 전송 보안 계증) 트래픽의 로드 밸런싱에 가장 적합.
- 4계층(Transport 단)에서 작동하며, VPC 내의 대상으로 트래픽을 라우팅.
- 초당 수백만 개의 요청을 처리하며 지연 시간을 매우 낮게 유지
- 갑작스러운 일시적 트래픽 패턴 처리 최적화
- 1개의 EC2에서도 여러개의 포트(80, 8080)로 로드밸런싱 가능
- EC2 인스턴스, 마이크로 서비스 및 ECS로 라우팅 가능.
- ALB, CLB의 IP는 한번 씩 변경되는 것에 반하여, NLB는 IP 변경이 없음.
- Classic Load Balancer
- EC2 인스턴스에 기본적인 로드 밸런싱을 제공
- 기본 로드밸런서라고 생각하면 됨.
** 내용을 정리하고 보니, CLB의 특징이 제일 적어 다른 장점이 많은 LB를 사용할 것이라는 생각을 하실 수도 있겠습니다만, 실제로 사용하다보면 저는 특수한 케이스가 아닌 이상 제일 설정이 간편하다는 이유로 CLB를 많이 사용하고 있습니다 :) AWS에서 제공하는 ELB 개념을 정리해보고자 작성하였으며, 추후 AZURE의 LB에 대해서도 정리를 진행하여 두 개의 서비스를 비교해보면 유익할 것 같습니다.
'AWS Cloud' 카테고리의 다른 글
CLI 활용 방법(LoadBalancer를 기준으로 작성) (0) | 2020.09.24 |
---|---|
[Certificate Manager] SSL 인증서 기한 연장 방법 (0) | 2020.08.22 |
Share AMI Between different accounts (0) | 2020.06.02 |
Redis (0) | 2020.03.26 |