처음 만난 AWS 문서


5.4 Elastic Load Balancing

지금까지는 일반적인 Load Balancing의 개념에 대해서 알아봤습니다.
AWS에서 Load Balancing을 위해서 제공하는 것이 바로 ELB. Elastic Load Balancing입니다.

지금부터는 Elastic Load Balancing에 대해서 배워보도록 하겠습니다.

ELB는 앞에서 설명한 것과 마찬가지로 부하를 여러개의 EC2에 골고루 분산시켜 주는 역할을 합니다.

아래 그림은 ELB의 기본구조를 나타낸 것입니다.

ELB diagram 01

먼저 리전이 있고, 리전 내에 복수 개의 가용 영역이 존재합니다.
그리고 ELB는 리전에 존재하는데 ELB는 리전별로 생성한다는 것을 기억하기 바랍니다.

이렇게 리전에 생성된 ELB는 여러 개의 가용 영역에 존재하는 EC2 인스턴스들에 부하를 분산시켜줍니다.

그리고 이 때 모든 EC2 인스턴스에 부하를 분산시키는 것이 아니라, 대상 그룹이라고 불리는 그룹에 속한 EC2 인스턴스들에게만 부하를 분산시키게 됩니다.

대상 그룹은 영어로 Target Group이라고 부르며, 부하를 분산시킬 대상 인스턴스들이 속한 그룹이라고 보면 됩니다.

ELB diagram 02

그리고 ELB는 여러 개의 가용 영역으로 부하를 분산시킬 수 있기 때문에, 위 그림처럼 가용 영역 하나가 통째로 중단 되어도 정상적으로 운영할 수 있습니다.

그리고 참고로 ELB의 Load Balancing 알고리즘은 Round Robin Scheduling을 사용합니다.

Round Robin

Round Robin Scheduling은 위 그림에서 보이는 것처럼 Time Quantum이라고 부르는 시간 단위로 나눠서 작업을 할당하는 방식입니다.

ELB에서도 이러한 형태로 부하를 분산시킨다고 이해하면 됩니다.

그렇다면 ELB에는 어떤 유형의 Load Balancer가 있을까요?
지금부터 ELB Load Balancer 유형에 대해서 하나씩 살펴보도록 하겠습니다.

ELB Load Balancer Type 01

먼저 ALB가 있습니다.
ALB는 Application Load Balancer의 약자로, 요청 수준에서 작동하는 Load Balancer입니다.
HTTP 및 HTTPS 트래픽을 사용하는 애플리케이션을 위한 유연한 기능이 필요한 경우 Application Load Balancer를 사용하면 됩니다.
ALB는 마이크로서비스 및 컨테이너를 비롯한 애플리케이션 아키텍처를 대상으로 하는 고급 라우팅 및 표시 기능을 제공합니다.

다음으로는 NLB가 있습니다.
NLB는 Network Load Balancer의 약자로, 연결 수준에서 작동하는 Load Balancer입니다.
애플리케이션에 초고성능, 대규모 TLS 오프로딩, 중앙 집중화 된 인증서 배포, UDP에 대한 지원 및 고정 IP 주소가 필요한 경우에 NLB를 사용합니다.
NLB는 안전하게 초당 수백만 개의 요청을 처리하면서도 극히 낮은 지연 시간을 유지할 수 있습니다.

마지막으로 CLB가 있습니다.
CLB는 Classic Load Balancer의 약자로, 이름이 가진 의미 그대로 과거에 사용하던 Load Balancer입니다.
그래서 EC2-Classic 네트워크에서 구축된 기존 애플리케이션이 있는 경우에 이 CLB를 사용합니다.

지금까지 살펴본 ELB Load Balancer 유형을 정리해보면 다음과 같습니다.

ELB Load Balancer Type 02

개별 요청 수준에서 작동하는 ALB, 연결 수준에서 작동하는 NLB, 그리고 이전에 사용하던 CLB가 있습니다.
그리고 우리는 이번 강의에서 ALB만 사용할 예정입니다.
또한 CLB는 이전 버전이므로 되도록 ALB 또는 NLB만 사용하는 것을 권장합니다.

ELB Load Balancer Type 03

그래서 각 Load Balancer의 작동 형태를 정리해보면, 먼저 ALB는 HTTP 헤더를 기준으로 트래픽을 분배하고, NLB는 IP 주소와 포트 번호를 기준으로 트래픽을 분배합니다.
그리고 CLB는 HTTP 헤더 및 IP 주소와 포트 번호를 기준으로 트래픽을 분배하게 됩니다.

여기서 잠시 네트워크 시간에 등장하는 OSI 7 Layers에 대해서 간단하게 짚고 넘어가도록 하겠습니다.

OSI 7 Layers

OSI 7 Layers는 Physical, DataLink, Network, Transport, Session, Presentation, Application을 의미합니다.

그리고 여기서 4번째 Layer인 Transport Layer에서 작동하는 것이 NLB이고, 7번째 Layer인 Application Layer에서 작동하는 것이 바로 ALB입니다.


마지막 업데이트: 2023년 11월 10일 00시 00분

이 문서의 저작권은 이인제(소플)에 있습니다. 무단 전재와 무단 복제를 금합니다.