[AWS] ELB(Elastic Load Balancer) - 개요
로드 밸런싱이란?
로드 밸런서란 서버로 들어오는 트래픽을 다수의 다운스트림 서버에게 포워딩해주는 서버(들)을 의미한다.
로드 밸런싱 시나리오(예시)
- 유저가 서버에 보내는 트래픽을 로드 밸런서가 중개하여 다운 스트림 EC2 인스턴스에게 보내준다.
- 이 때, 유저는 어떠한 EC2 인스턴스에 연결된지 알 수 없게 된다.
로드 밸런서의 사용 이유
- 하나의 인스턴스에게 가해지는 부하를 줄일 수 있게 된다.
- 로드 밸런서가 일종의 프록시 역할을 하여
DNS
의 엔드 포인트를 알 수 없게 된다. - 다운 스트림 인스턴스의 장애를 원활히 처리할 수 있게 된다. (Health check)
- SSL 제거가 지원된다.(HTTPS를 지원해주는 의미)
- 쿠키 고정도를 강화할 수 있다.
Elastic Load Balancer
Why ELB?
- ELB는 AWS가 관리해주는 로드 밸런서이기 때문에 어떤 경우에도 작동할 것을 보장함.
- 뿐만 아니라 고가용성도 지원해줌.
Health Checks
- ELB가 다운 스트림 EC2의 상태를 확인하기 위해 인스턴스에게 보내는 신호
Health Check
는 특정 프로토콜, 특정 포트, 특정 엔드포인트에 요청할 수 있다.
Types of ELB
- Classic LB: Deprecated
- Application LB:
HTTP
,HTTPS
,WebSocket
- Network LB:
TCP
,TLS
,UDP
- Gateway LB: 3계층에서 동작함
특정 로드 밸런서는 모두 사용 가능하게 외부에서 동작하도록 설정할 수 있고 반대로 내부에서만 동작하도록 설정할 수 있다.
Load Balancer Security Groups
- 로드 밸런서는 유저에게서 모든 트래픽을 받는다.
- 반대로 EC2는 해당 로드 밸런서의 보안 그룹의
Source
만 허용하여 보안을 강화한다. (프록시)