클라우드(AWS)

ELB(Elastic Load Balancer)

highway92 2024. 3. 27. 18:28

ELB는 AWS의 로드밸런서 서비스 입니다.

**참고 로드밸런서란? 주로 각 인스턴스(서버)로 가는 트래픽을 분산시키는 역할을 수행합니다. 로드밸런서는 각 인스턴스의 상태(CPU사용률이나 각종 지표)를 참고하여 부하를 분산시키거나 단순히 한번씩 공평하게 분산시키는 등 여러가지 규칙을 적용시킬 수 있습니다.

 

 

1. 기본 구성

ELB는 VPC내부에 위치하며, 외부로부터의 요청이 들어오면 이를 VPC내부의 리소스에 분산시킵니다. 즉 ELB는 외부로부터 들어오는 요청에 대한 Listener와 이 요청이 어떤 대상을 향하고 있는지, 어느 리소스로 보낼것인지에 대한 Target Group에 대한 내용이 핵심입니다.
또한 로드밸런서는 부하분산의 대상인 Target Group(EC2 인스턴스의 그룹이라고 하면 이해가 가장 편할 거 같습니다.)들에게 상태가 멀쩡한지 health check를 통해서 상태를 확인받습니다. 

- Listeners는 외부에서 요청을 받아들여야 하기 때문에 프로토콜과 port에 대한 설절을 필요로 합니다. 예를 들어 80포트(http의 default 포트)만 열어두고 443포트(https의 default포트)를 리스닝 하지 않는다면 https프로토콜을 사용한 엑세스는 불가능합니다.
- Target Group역시도 특정 Port와 프로토콜에 대한 listening이 필요하지만 꼭 로드밸런서와 같을 필요는 없습니다. 로드밸런서에서 Port Translation을 시켜서 Target Group으로 보내줄 수 있습니다.
- 보통의 구성으로는 외부 인터넷 접속이 가능한 Internet Load Balancer와 내부에서의 접근만을 허용하는 Internal Load Balancer로 구성하는 경우가 많습니다.

 

 

2. 종류

 

2-1 Application Load Balancer(ALB)

ALB는 OSI7 Layer의 7계층에 해당하는 Application Layer의 특성을 이용하는 로드밸런서입니다. AWS에는 HTTP 및 HTTPS 프로토콜을 사용하는 애플리케이션을 위한 로드밸런서라고 되어있습니다. 웹서비스 호스팅시에 주로 사용된다고 기억하시면 무방합니다.

2-2 Network Load Balancer(NLB)

NLB는 OSI 4계층인 Transport Layer의 특성을 이용합니다. AWS에는 애플리케이션에 초고성능, 대규모 TLS 오프로딩, 중앙 집중화된 인증서 배포, UDP에 대한 지원 및 고정 IP 주소가 필요한 경우 Network Load Balancer를 선택합니다 라고 되어있습니다. 

2-3 Gateway Load Balancer(GWLB)

OSI 3계층인 네트워크 계층의 특성을 이용합니다. GWLB를 사용하면 방화벽, 패킷검사 같은 것들을 할 수있습니다.