![]()
ELB의 기본 개념과 역할

ELB는 여러 EC2 인스턴스에 대한 하나의 엔드포인트를 제공하여 사용자가 요청을 보낼 때, 실제 요청이 처리되는 백엔드 인스턴스에 대한 고려 없이 동일한 주소로 요청을 전송할 수 있게 합니다. ELB는 단순한 부하 분산 기능 외에도 헬스 체크, 고정 세션, SSL Offload, 다운 서버 제외 등의 기능을 제공합니다.
이러한 기능들은 고가용성과 안정성을 제공하는 데 필수적입니다.로드 밸런싱의 역할
로드 밸런싱은 네트워크 기술의 일종으로, 여러 서버 또는 저장 장치에 작업을 분산시켜 부하를 고르게 나누는 것을 의미합니다. 이는 서버에 과도한 부하가 걸리지 않도록 하여 서비스 중단 현상을 예방하고, 클라이언트 사용자의 요청을 적절히 분산하여 처리할 수 있도록 합니다.
ELB는 이러한 로드 밸런싱 기술을 활용하여 다양한 AWS 서비스와 연계하여 운영됩니다.| 기능 | 설명 |
|---|---|
| 부하 분산 | 여러 인스턴스에 트래픽을 고르게 분산 |
| 헬스 체크 | 인스턴스의 상태를 점검하여 비정상적인 인스턴스 제외 |
| 고정 세션 | 특정 인스턴스에 사용자 세션 고정 |
| SSL Offload | SSL 암호화 및 복호화를 로드 밸런서에서 처리 |
Classic Load Balancer (CLB)

Classic Load Balancer는 AWS의 초기 로드 밸런서로, 가장 기본적인 형태의 부하 분산 기능을 제공합니다. CLB는 TCP 및 HTTP/HTTPS 프로토콜을 지원하며, 서버의 기본 주소가 변경되면 새로운 로드 밸런서를 생성해야 한다는 단점이 있습니다.
또한, 하나의 주소에 하나의 대상 그룹으로만 트래픽을 보낼 수 있어 유연성이 떨어집니다.CLB의 특징과 한계
CLB는 간단한 부하 분산 기능 외에도 SSL Offload와 헬스 체크 기능을 제공하지만, HTTP 헤더나 요청의 내용을 기반으로 한 트래픽 분산이 불가능합니다. 이로 인해 복잡한 아키텍처에서는 관리 비용이 증가할 수 있습니다.
현재는 ALB와 NLB가 더 많이 사용되고 있으며, CLB는 레거시로 분류되고 있습니다.| 특징 | 설명 |
|---|---|
| 프로토콜 지원 | TCP 및 HTTP/HTTPS |
| 유연성 | 하나의 주소에 하나의 대상 그룹만 지원 |
| SSL Offload 지원 | SSL 암호화 및 복호화 가능 |
| 현재 사용 빈도 | ALB 및 NLB에 비해 낮음 |
Application Load Balancer (ALB)

Application Load Balancer는 OSI 7 Layer에서 최상단의 Application Layer를 다루는 로드 밸런서입니다. ALB는 HTTP/HTTPS의 헤더 정보를 이용하여 요청을 지능적으로 라우팅할 수 있는 기능을 제공하여, 사용자가 특정 경로로 요청을 보냈을 때 해당 경로에 맞는 대상 그룹으로 트래픽을 분산할 수 있습니다.
ALB의 장점과 기능
ALB는 단순한 부하 분산 기능을 넘어 HTTP 헤더, 요청 메서드, 경로 등에 기반하여 스마트하게 요청을 분산합니다. 이를 통해 비용을 절감하고 리소스의 효율적인 활용이 가능합니다.
ALB는 또한 Lambda 함수와 같은 서버리스 아키텍처와의 통합이 용이하여 마이크로서비스 아키텍처에 적합합니다.| 기능 | 설명 |
|---|---|
| 경로 기반 라우팅 | 요청의 경로에 따라 다른 대상 그룹으로 분산 |
| HTTP/2 지원 | 브라우저의 페이지 로딩 시간을 개선 |
| SSL Offload 지원 | SSL 암호화 및 복호화를 대신 처리 |
| Lambda 통합 | 서버리스 아키텍처와의 통합 용이 |
Network Load Balancer (NLB)

Network Load Balancer는 OSI 4 Layer에서 Transport Layer를 다루는 로드 밸런서로, TCP 및 UDP를 사용하는 요청을 처리하는 데 최적화되어 있습니다. NLB는 높은 성능을 요구하는 환경에서 부하 분산이 필요할 때 적합합니다.
NLB의 특징과 장점
NLB의 가장 큰 장점은 EIP(Elastic IP)를 통해 고정 IP 주소를 제공할 수 있다는 점입니다. 이를 통해 공인 IP와 DNS 모두를 사용할 수 있으며, 낮은 레이턴시로 초당 수백만 건의 요청을 처리할 수 있습니다.
NLB는 ALB에 비해 성능은 뛰어나지만, HTTP 헤더를 해석하지 못하기 때문에 단순한 라우팅이 필요한 경우에 적합합니다.| 특징 | 설명 |
|---|---|
| 프로토콜 지원 | TCP 및 UDP |
| 고정 IP 지원 | EIP를 통해 고정 IP 주소 가능 |
| 성능 | 낮은 레이턴시로 초당 수백만 건의 요청 처리 가능 |
| HTTP 헤더 해석 불가 | 단순한 라우팅이 필요한 경우에 적합 |
Gateway Load Balancer (GWLB)
Gateway Load Balancer는 OSI 3 Layer에서 네트워크 계층을 다루는 로드 밸런서로, 방화벽, 침입 탐지 및 방지 시스템과 같은 가상 어플라이언스를 배포하고 관리하는 데 사용됩니다. GWLB는 트래픽을 EC2에 도달하기 전에 검사하거나 인증하는 작업을 수행하는 데 최적화되어 있습니다.
GWLB의 기능과 활용 사례
GWLB는 트래픽을 검사하고 분석하여 보안 및 인증을 수행하기 위한 서비스로, 고가용성과 보안을 함께 고려해야 하는 환경에서 유용합니다. 이 로드 밸런서는 일반적인 부하 분산 역할과는 다르기 때문에, 특정한 보안 요구 사항을 가진 시스템에 적합합니다.
| 기능 | 설명 |
|---|---|
| 네트워크 계층 지원 | OSI 3 Layer에서 작동 |
| 보안 기능 | 방화벽, 침입 탐지 및 인증 기능 제공 |
| 트래픽 검사 | EC2에 도달하기 전에 트래픽 검사 가능 |
| 고가용성 | 보안과 고가용성을 동시에 제공 |
결론
AWS의 ELB는 다양한 요구 사항에 맞춰 여러 종류의 로드 밸런서를 제공하여, 효율적이고 안정적인 클라우드 환경을 구축하는 데 큰 기여를 하고 있습니다. 각 로드 밸런서의 특성과 기능을 알아보고, 필요에 맞는 로드 밸런서를 선택함으로써, 성능과 비용 효율성을 동시에 고려한 최적의 클라우드 아키텍처를 설계할 수 있습니다.
ELB의 각 유형은 다양한 상황에 따라 유기적으로 연동되어, 클라우드 서비스를 더욱 안정적이고 효율적으로 운영할 수 있도록 돕습니다.