개발 공부
AWS load balancer (ELB, ALB, NLB) 본문
서버의 성능을 올리는 방법에는 2가지가 있다. 하나는 서버의 사양을 올리는 것, 다른 하나는 여러 대의 서버를 구축하는 것. 그 중 후자를 위해 로드 밸런서 (Switch라고도 함)가 사용된다.
AWS에서도 두개 이상의 인스턴스를 사용한다면 로드 밸런서 도입을 고려해볼 수 있다.
AWS는 Elastic Load Balancers, Application Load Balancers, and Network Load Balancers 총 3개의 로드 밸런서를 제공한다.
AWS 로드 밸런서는 인입되는 요청을 다수의 EC2 인스턴스나 도커 컨테이너로 분배한다. health check 기능을 제공하여 인스턴스의 상태에 따라 분배를 달리할 수 있다.
ELB (Elastic Load Balancers, Classic Load Balancers)
- nignx나 HAProxy 인스턴스의 기능을 한다.
- L4(TCP)와 L7(HTTP)에서 작동하며 EC2-classic에서 동작하는 유일한 로드 밸런서다.
- 오래된 로드 밸런서로 제약사항이 많다.
NLB (Network Load Balancers)
- L4에서만 동작한다.
- TCP와 UDP 그리고 TLS로 암호화 된 TCP를 지원한다.
- 높은 효율을 자랑한다.
- 정적 IP(static IP) 주소를 사용한다.
- ELB, ALB와 다르게 탄력적 IP(Elastic IPs)를 할당받을 수 있다.
- ELB, ALB는 포워딩 정보를 HTTP 헤더에 추가적으로 저장하고 app에서 해당 정보를 파싱해야하는 반면에
NLB는 TCP/UDP 패킷에 호출 IP를 저장한다.
ALB (Application Load Balancers)
- L7(HTTP)에서 동작한다.
- 인입 요청에 대한 광범위한 라우팅 방식을 제공한다. (ELB는 포트번호에 따른 라우팅만 제공한다.)
- 호스트명, 경로, 쿼리 파라미터, HTTP 함수, HTTP 헤더, 요청 IP, 포트번호
- 인입 요청을 하나의 타겟 서버에 여러개의 포트로 보낼 수 있다.
- Lambda 함수 라우팅을 지원한다.
- 고정 응답, 리디렉션을 ALB 자체적으로 제공하므로 서버에서 처리할 필요가 없다.
- HTTP/2와 웹소켓을 지원한다.
- SNI(Server Name Indication)을 통해 여러 도매인을 등록할 수 있다. (25+1 까지 지원)
- OIDC, CAML, LDAP, Mircrosoft AD와 소셜 로그인(페이스북, 구글)의 사용자 인증 기능을 지원한다.
출처 : iamondemand.com/blog/elb-vs-alb-vs-nlb-choosing-the-best-aws-load-balancer-for-your-needs/
'AWS' 카테고리의 다른 글
AWS 서버 사이징 참고사항 (0) | 2021.01.06 |
---|---|
AWS 메모리 사용량 추적 (0) | 2021.01.06 |
aws 비용 (0) | 2021.01.06 |