AWS ELB (Elastic Load Balancing)
ELB (Elastic Load Balancing)
워크로드를 다수의 컴퓨팅 리소스로 분산한다.
서비스 영향을 주지않고 컴퓨팅 리소스를 추가/제거할 수 있다.
로드 벨런서는 등록된 대상의 상태를 모니터링하고 정상 대상으로만 트래픽이 라우팅 되도록 한다.
ELB도 서버를 이용해 구현한 것이므로 멀티AZ 환경에서는 내부적으로 AZ마다 ELB가 구성되므로 AZ별 부하를 고려해서 구성한다.
ELB에는 ALB, NLB, CLB 3가지 종류가 있다.
ALB (Application Load Balancer)
HTTP, HTTPS 로드밸런싱에 최적화 되어 있음
웹소켓, 사용자 인증도 지원 함
L7전용이라 TCP등의 로드밸런싱 불가능
host based routing과 path based routing을 지원하며(=content based routing) 여러개의 URL과 path를 가질 수 있음
NLB (Network Load Balancer)
성능면에서 최고
TCP, UDP등의 L4의 로드밸런싱 가능
CLB (Classic Load Balancer)
TCP, SSL, HTTP, HTTPS 등 L4~L7의 로드밸런싱이 가능
웹서버 health check시 /index.html경로를 참조 하기 때문에 이 파일이 없으면 health check가 실패 하므로 이런 경우 TCP로 80번 포트를 모니터링해서 우회할 수 있다.
CLB는 URL하나만 가질 수 있음
기능 | ALB | NLB | CLB |
프로토콜 | HTTP, HTTPS | TCP, UDP, TLS | TCP, SSL/TLS, HTTP, HTTPS |
플랫폼 | VPC | VPC | EC2-Classic, VPC |
상태 확인 | ✔ | ✔ | ✔ |
CloudWatch 지표 | ✔ | ✔ | ✔ |
로깅 | ✔ | ✔ | ✔ |
영역 장애 조치 | ✔ | ✔ | ✔ |
Connection Draining(등록 취소 지원) | ✔ | ✔ | |
같은 인스턴스의 여러 포트로 로드 밸런싱 | ✔ | ✔ | |
IP 주소를 대상으로 사용 | ✔ | ✔ (TCP, TLS) | |
로드 밸런서 삭제 탐지 | ✔ | ✔ | |
구성 가능한 유휴 연결 시간 초과 | ✔ | ✔ | |
교차 영역 로드 밸런싱 | ✔ | ✔ | ✔ |
고정 세션 | ✔ | ✔ | ✔ |
정적 IP | ✔ | ||
탄력적 IP 주소 | ✔ | ||
소스 IP 주소 유지 | ✔ | ||
리소스 기반 IAM 권한 | ✔ | ✔ | ✔ |
태그 기반 IAM 권한 | ✔ | ✔ | |
느린 시작 | ✔ | ||
WebSocket | ✔ | ✔ | |
PrivateLink 지원 | ✔ (TCP, TLS) | ||
소스 IP 주소 CIDR 기반 라우팅 | ✔ | ||
계층 7 | |||
경로 기반 라우팅 | ✔ | ||
호스트 기반 라우팅 | ✔ | ||
네이티브 HTTP/2 | ✔ | ||
리디렉션 | ✔ | ||
고정 응답 | ✔ | ||
Lambda 함수를 대상으로 사용 | ✔ | ||
HTTP 헤더 기반 라우팅 | ✔ | ||
HTTP 방법 기반 라우팅 | ✔ | ||
쿼리 문자열 파라미터 기반 라우팅 | ✔ | ||
보안 | |||
SSL 오프로드 | ✔ | ✔ | ✔ |
SNI(서버 이름 표시) | ✔ | ✔ | |
백엔드 서버 암호화 | ✔ | ✔ | ✔ |
사용자 인증 | ✔ | ||
사용자 지정 보안 정책 | ✔ |
== 참고
https://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/userguide/what-is-load-balancing.html
https://aws.amazon.com/ko/elasticloadbalancing/features/