AWS에서 안정적인 트래픽 처리와 탄력적인 아키텍처 구성을 위해 Elastic Load Balancing(ELB) 은 필수적인 역할을 수행합니다. 하지만 ELB는 단순히 로드 밸런싱만 수행하는 것이 아니라, 트래픽의 성격, 처리 방식, 보안 연계 등 다양한 목적과 계층에 맞춰 ALB, NLB, GWLB로 세분화되어 운영됩니다. 문제는 이 각각이 다른 요금 구조를 가지고 있으며, 사용량 기반 요금과 데이터 전송 비용까지 복합적으로 부과되기 때문에 적절한 사용 전략 없이 방치할 경우 예상 외의 비용 폭증으로 이어질 수 있다는 점입니다.
이 글에서는 ELB의 ALB, NLB, GWLB 각각의 목적과 기능, 요금 구조의 차이, 데이터 전송 비용, 그리고 실제 사용 사례까지 함께 살펴봄으로써 비용과 성능을 균형 있게 관리할 수 있는 이해 기반을 제공하고자 합니다.
Elastic Load Balancing(ELB)은 AWS에서 제공하는 관리형 로드 밸런서 서비스로, 여러 애플리케이션 서버(EC2, 컨테이너 등)에 들어오는 트래픽을 자동으로 분산하여 시스템의 가용성과 탄력성을 높이는 역할을 합니다. ELB는 크게 Application Load Balancer(ALB), Network Load Balancer(NLB), Gateway Load Balancer(GWLB)의 세 가지 유형으로 구분됩니다. 각각의 특징과 용도는 다음과 같습니다.
ALB (Application Load Balancer)
ALB는 HTTP/HTTPS 계층(7계층) 로드 밸런서로, URL 패턴, HTTP 헤더, 쿠키 등의 정보에 따라 트래픽을 세밀하게 분기할 수 있는 기능이 강점입니다. 주로 웹 애플리케이션, API 서버, 마이크로서비스 환경에서 사용되며, 경로 기반 라우팅, 호스트 기반 라우팅, WebSocket 지원, WAF(웹 애플리케이션 방화벽) 통합 기능 등이 포함되어 있습니다.
NLB (Network Load Balancer)
NLB는 전송 계층(4계층) 로드 밸런서로, TCP/UDP 트래픽을 초고속으로 처리하며, 초당 수백만 개의 요청을 처리할 수 있는 성능을 제공합니다. 지연이 낮고, 고정 IP를 지원하며, TLS 오프로딩도 가능합니다. 실시간 게임 서버, 금융 거래 시스템, IoT 등 초저지연 통신이 필요한 환경에서 주로 사용됩니다.
GWLB (Gateway Load Balancer)
GWLB는 보안 어플라이언스와의 연계를 위해 설계된 로드 밸런서입니다. 트래픽을 보안 장비(VPN, IDS/IPS, 방화벽 등)로 미러링하거나 통과시키는 데 사용되며, 3계층 및 7계층 트래픽을 처리할 수 있는 특수한 로드 밸런서입니다. 트래픽 흐름을 보안 장비와 통합하여 처리하고자 할 때 유용합니다.
즉, ELB는 트래픽 처리 계층과 목적에 따라 ALB(7계층 HTTP/HTTPS), NLB(4계층 TCP/UDP), GWLB(3/7계층 보안 연계)로 구분되며, 각각의 장단점과 용도에 따라 선택하여 사용해야 합니다.
Elastic Load Balancing(ELB)의 역할은 클라우드 인프라에서 트래픽 분산과 시스템 안정성 확보에 있습니다. 간단히 말해, 사용자의 요청(트래픽)을 여러 서버(EC2, 컨테이너 등)에 효율적으로 분산하여 서버 과부하를 방지하고, 서비스 장애 시 다른 서버로 자동 전환(Failover) 하는 기능을 제공합니다. 이를 통해 시스템의 가용성(Availability)과 확장성(Scalability)을 높이는 핵심 구성 요소 역할을 수행합니다.
ELB는 클라이언트와 백엔드 서버 사이의 중간 계층(Middle Layer)에 위치합니다. 보통 인터넷 게이트웨이를 통해 들어온 클라이언트의 요청은 먼저 ELB로 전달되고, ELB는 로드 밸런싱 정책(라우팅 규칙, 트래픽 분배 알고리즘 등)에 따라 트래픽을 적절한 백엔드 서버로 전달합니다.
아래는 ELB의 위치를 간단히 설명한 플로우입니다.
[클라이언트 브라우저/앱]
↓
[인터넷 게이트웨이]
↓
[Elastic Load Balancer (ALB/NLB)]
↓
[EC2 인스턴스 / 컨테이너 / Lambda]
Elastic Load Balancing(ELB)의 요금 체계는 크게 사용량 기반 과금 모델로 구성됩니다. 아래 링크를 통해 좀 더 세부적인 비용 산정 구조를 확인할 수 있습니다.
https://aws.amazon.com/ko/elasticloadbalancing/pricing/
주요 과금 항목은 아래와 같습니다.
ELB 인스턴스가 생성되고 있는 시간에 따라 시간 단위로 요금이 발생합니다. ALB, NLB, GWLB 각 유형별 요금이 다르며, 사용 중인 ELB의 개수와 유지 시간에 비례해 비용이 청구됩니다.
Application Load Balancer (ALB)
ALB는 로드밸런서 인스턴스가 실행되는 시간에 대해 $0.0225/hour가 과금됩니다. 이는 ALB가 존재하는 시간 자체에 대한 기본 요금이며, 추가로 LCU 사용량에 따른 요금이 별도로 부과됩니다.
Network Load Balancer (NLB)
NLB는 인스턴스 가동 시간 기준으로 $0.0225/hour이 과금됩니다. 여기에 처리 용량에 따른 NLCU 비용이 별도로 추가됩니다.
Gateway Load Balancer (GWLB)
GWLB는 로드밸런서 본체에 대해 $0.0125/hour의 시간 요금이 과금됩니다. 상대적으로 ALB, NLB보다 기본 인스턴스 비용은 낮지만, GLCU와 GWLBE(PrivateLink 엔드포인트) 비용이 함께 발생하므로 전체 구조를 고려해야 합니다.
Load Balancer는 사용량에 따른 비용이 별도로 청구됩니다. ALB, NLB, GWLB 각 유형별 요금이 다릅니다.
Application Load Balancer (ALB)
LCU(Load Balancer Capacity Unit)는 ALB가 처리하는 트래픽 사용량의 단위입니다. 즉, ALB가 단순히 켜져 있다고 해서 끝이 아니라, 얼마나 많은 요청을 처리하느냐에 따라 추가 요금이 발생합니다. ALB는 아래 네 가지 항목 중에서 가장 높은 사용량을 기준으로 LCU를 계산합니다.
ALB의 LCU(Load Balancer Capacity Unit, 부하 분산 용량 단위)는 다음 네 가지 기준으로 계산됩니다.
먼저, 요청 수 기준으로는 초당 25개의 신규 요청을 처리할 때 LCU 1개가 사용됩니다. 이 값은 웹 애플리케이션의 트래픽이 많아질수록 LCU 사용량이 증가함을 의미합니다.
두 번째는 연결 수 기준으로, 분당 3,000개의 활성 연결(keep-alive 포함)이 유지될 때 LCU 1개가 사용됩니다. 이는 웹소켓, 장기 연결 요청이 많은 환경에서 비용 증가로 이어질 수 있는 항목입니다.
세 번째는 데이터 처리량 기준으로, ALB가 시간당 1GB의 데이터를 처리하면 LCU 1개로 계산됩니다. 전송되는 이미지, JSON, HTML 등 응답 데이터의 크기에 따라 LCU 사용량이 달라지게 됩니다.
마지막으로, 규칙 평가 기준으로는 ALB가 초당 1,000개의 규칙 평가를 수행할 때 LCU 1개가 사용됩니다. 이는 ALB에서 경로 기반 라우팅, 호스트 기반 라우팅 규칙이 많을수록 비용이 증가할 수 있다는 의미입니다.
즉, 이 네 가지 중에서 가장 많이 사용한 항목만큼 LCU가 증가하며, 1 LCU 단위당 $0.008/hour 요금이 추가됩니다.
Network Load Balancer (NLB)
NLCU(Network Load Balancer Capacity Unit)는 NLB가 처리하는 트래픽의 용량을 측정하는 단위로, 다음의 3가지 중 가장 큰 범위 사용량을 기준으로 계산됩니다.
새로운 연결 수(New Connections): 800개의 TCP 연결/1초 또는 50개의 TLS 연결/1초을 기준
활성 연결 수(Active Connections): 100,000개 연결/1분을 기준
데이터 처리량(Data Processed): 1 GB/시간을 기준
예를 들어, 1분 동안 활성 연결이 150,000개라면 기준인 100,000을 넘었으므로 NLCU가 2개 이상으로 계산될 수 있습니다. NLCU은 시간당 $0.006 의 요금이 발생합니다. 매시간 각 기준에 따라 사용된 NLCU 개수를 계산하고, 그 합계 × $0.006/hour이 청구됩니다.
Gateway Load Balancer (GWLB)
Gateway Load Balancer (GWLB)의 사용량 기반 비용 구조는 GLCU (Gateway Load Balancer Capacity Unit)와 GWLBE (Gateway Load Balancer Endpoint)를 중심으로 구성됩니다. 아래에 이해하기 쉬운 형태로 설명드리겠습니다.
GLCU (Gateway Load Balancer Capacity Unit)는 GWLB의 처리 능력을 측정하는 단위입니다. 다음 세 가지 기준에 따라 계산됩니다.
먼저, 신규 연결 수 기준으로 초당 600개의 신규 연결이 발생할 때 GLCU 1개가 사용됩니다. 이 항목은 사용자 접속 요청이 많아질수록 GLCU 사용량이 증가해 비용이 늘어날 수 있음을 의미합니다.
두 번째로, 활성 연결 수 기준으로는 분당 60,000개의 활성 연결이 유지되면 GLCU 1개로 계산됩니다. 지속적인 연결(keep-alive)을 많이 사용하는 애플리케이션에서는 이 항목이 주요 비용 요소가 됩니다.
마지막으로, 데이터 처리량 기준으로는 Global Accelerator가 시간당 1GB의 데이터를 처리할 때 GLCU 1개가 사용됩니다. 응답 데이터의 크기, 사용자 다운로드, 이미지 및 미디어 전송량 등에 따라 사용량이 달라집니다.
Global Accelerator의 요금은 이 세 항목 중 가장 높은 사용량을 기준으로 GLCU 사용량이 결정되며, 해당 GLCU 사용량을 기반으로 비용이 청구됩니다. 즉, 이 셋 중에서 가장 많이 사용된 항목 기준으로 GLCU를 계산하고, GLCU 수 × $0.004/시간 만큼 추가 요금이 발생합니다.
GWLBE (GWLB Endpoint)는 PrivateLink 기반의 전용 엔드포인트입니다. 이 엔드포인트를 통해 트래픽이 GWLB로 전달됩니다.
GWLBE 1개당 시간 요금: $0.011/hour
GWLBE를 통한 데이터 전송량: $0.0035/GB
즉, GWLBE는 트래픽 전달 경로 자체에 대한 요금으로, GWLB에 연결된 각 서브넷에서 GWLBE가 활성화되면 이에 따라 비용이 누적됩니다.
Application Load Balancer (ALB)
ALB 1개가 아래와 같이 요청을 처리한다고 가정하겠습니다.
초당 요청 50개 (→ 기준 25 초과 → 2 LCU)
분당 연결 수 1000개 (→ 기준 3000 미만 → 무시)
시간당 데이터 500MB (→ 기준 1GB 미만 → 무시)
초당 규칙 평가 300개 (→ 기준 1000 미만 → 무시)
이 경우에는 요청 수가 기준을 넘었기 때문에 2 LCU가 과금됩니다. 총 요금은 다음과 같이 계산됩니다:
ALB 시간 요금: $0.0225/hour
LCU 요금 (2개): $0.008 × 2 = $0.016/hour
합계는 시간당 $0.0385이며 월 $27.72의 비용을 지출하게 됩니다.
Network Load Balancer (NLB)
NLB 24시간 운영 + 평균 NLCU 10이라고 가정할 경우
기본 시간 요금: $0.0225/hour
NLCU 요금: $0.006 × 10 = $0.06
총합 시간당 약 $0.0825이고 월 기준 약 $59.4를 지출하게 됩니다.
Gateway Load Balancer (GWLB)
GWLB를 아래와 같이 운영했다고 가정해 보겠습니다.
GWLB 1개 → 24시간 운영
평균 GLCU 2개 사용
GWLBE 2개 → 24시간 운영
하루 총 전송 데이터 100GB
Amazon Gateway Load Balancer(GWLB) 비용을 월 기준으로 계산하면 다음과 같습니다.
먼저, GWLB 자체 사용 비용은 시간당 $0.0125로, 24시간 x 30일 기준으로 약 $9이 청구됩니다. 다음으로, GLCU(Global Accelerator Capacity Unit) 비용은 시간당 $0.004로, 2 GLCU x 24시간 x 30일을 기준으로 월 $5.76이 발생합니다. 또한, Gateway Load Balancer Endpoint(GWLBE)는 시간당 $0.013이며, 2개의 엔드포인트가 24시간 x 30일 사용될 경우 약 $18.72의 비용이 청구됩니다. 여기에 GWLBE를 통해 전송되는 데이터에 대한 비용이 GB당 $0.0035로, 월 100GB x 30일 전송 기준으로 약 $10.5의 비용이 추가됩니다.
이러한 비용을 모두 합치면 월 총 약 $44 정도가 GWLB 환경 운영 비용으로 발생하게 됩니다.
ELB에서는 시간당 유지 비용, 사용량에 따른 비용 외에도 데이터 전송에 따른 비용이 추가로 존재합니다.
같은 AWS 리전(예: 서울) 내에서 Availability Zone (AZ) 간 데이터가 오갈 경우 과금됩니다. 이때 발생하는 요금은 인터넷 트래픽이 아닌, AWS 내부 네트워크 비용입니다. ALB가 ap-northeast-2a에 있고, 타겟 그룹(EC2 인스턴스)이 ap-northeast-2b에 있다면, 클라이언트 요청이 ALB를 거쳐 EC2로 전달될 때 AZ 간 데이터 전송이 발생하며 이 항목으로 과금됩니다.
요금은 약 $0.01/GB 수준이며, 사용량에 따라 청구됩니다. ALB와 타겟 EC2를 같은 AZ에 배치하면 해당 비용을 줄일 수 있습니다.
AWS 리전 간(예: 서울 → 프랑크푸르트)으로 트래픽을 전송할 때 아웃바운드 요금이 발생합니다. 이는 AWS 내부망을 통하더라도 인터넷 전송과 유사하게 요금이 부과됩니다. 서울 리전의 ALB → 유럽 리전의 EC2, S3, 또는 CloudFront 엔드포인트로 데이터 전송 시, 또는 AWS 글로벌 서비스가 다른 리전과 동기화하거나, 멀티리전 아키텍처를 구성할 때 비용이 발생할 수 있습니다.
Cross-region 전송은 일반 인터넷 전송보다 약간 높은 수준에서 과금됩니다. (예: $0.02~$0.05/GB, 리전 조합에 따라 다름) 리전 간 비즈니스 연동이 필요한 경우 S3 Transfer Acceleration, CloudFront, DataSync 같은 비용 최적화 옵션을 검토해야 합니다. 꼭 필요한 리전 간 통신 외에는 지역 내 리소스 간 통신으로 리팩토링이 중요합니다.
ELB와 연결된 백엔드 서비스(예: EC2, ECS, Lambda 등)에서 클라이언트에게 데이터를 전송할 때, 이 항목의 비용이 발생합니다. 요금은 전송량(GB) 단위로 부과되며, 서울리전 기준 $0.114/GB가 부과됩니다.
ALB 또는 NLB를 통해 사용자 웹 브라우저에 HTML, 이미지, JS 파일을 전송할 때, API 요청 응답으로 JSON 데이터를 외부 클라이언트에게 전송할 때, 또는 모바일 앱 클라이언트가 ELB 경유로 데이터를 다운로드할 때 비용이 발생할 수 있습니다. 즉, 외부 요청에 대한 응답이 있을 때 이 항목이 증가하며, 서비스 트래픽이 많을수록 이 비용이 급증할 수 있습니다.
ALB, NLB, GWLB는 각각의 목적과 기능이 명확히 다르기 때문에 용도에 따라 적절하게 선택하거나 병행 사용하게 됩니다. 아래는 구조별 차이와 교차 활용 가능성에 대한 설명입니다.
ALB (Application Load Balancer)
주요 목적: HTTP/HTTPS 기반 트래픽 처리
특화 기능: 경로 기반 라우팅 (Path-Based Routing), 호스트 기반 라우팅 (Host-Based Routing), WebSocket 지원, HTTP/2, HTTPS 리스너 제공
NLB (Network Load Balancer)
주요 목적: 초고속 TCP/UDP 레벨 연결 처리
특화 기능: 초저지연, 초고성능 처리, 정적 IP 제공, TLS 패스스루 지원, 수백만 개의 동시 연결 처리 가능
GWLB (Gateway Load Balancer)
주요 목적: 보안 트래픽 처리 및 미러링
특화 기능: VPC 내부 트래픽을 보안 장비(VM/Appliance)로 전달, 보안 어플라이언스의 수평 확장 지원, VPC Traffic Mirroring과 연계하여 보안 분석 및 포렌식 가능
다만 용도에 따라 교차 사용이 가능합니다. 각 로드 밸런서는 기능, 성능, 과금 구조가 달라서 적절한 위치에 배치해야 하며, 임의의 대체는 불가능하고, 목적에 따라 병렬 사용 또는 계층 분리가 일반적입니다.
예시 1 - ALB + NLB
외부 트래픽을 ALB가 처리한 뒤, 내부 고속 처리용 백엔드에는 NLB로 라우팅
ALB로 HTTPS 요청을 받아 경로 기반으로 각 마이크로서비스에 전달하고, 일부 서비스는 고속 통신 위해 NLB 사용
예시 2 - NLB + GWLB
외부 트래픽이 NLB를 통해 들어오고, 이 트래픽을 GWLB를 통해 보안 장비로 전달
외부 TLS 트래픽 → NLB 수신 → GWLB 통해 IDS/IPS 장비 분석 → 다시 내부 서비스 전달
예시 3 - ALB + GWLB
사용자 요청은 ALB로 받아 마이크로서비스에 분기하고, 일부 민감한 트래픽은 GWLB 경유로 보안 검사를 거쳐서 내부에 전달
금융/결제 시스템에서 사용자 로그인은 ALB → 결제는 GWLB 경유
Elastic Load Balancing(ELB)은 단순한 로드 밸런싱 도구가 아니라, 트래픽의 성격과 목적, 계층에 따라 맞춤 사용이 필요한 핵심 구성 요소입니다. ALB, NLB, GWLB는 각각의 특징과 비용 구조가 명확히 다르며, 어떤 ELB를 선택하고 어떻게 사용하느냐에 따라 매달 지출하는 AWS 비용이 크게 달라질 수 있습니다.
이번 글에서 설명한 시간 요금, 사용량 기반 요금, 데이터 전송 비용 구조를 이해하고, 트래픽 흐름과 사용량을 기반으로 모니터링 및 최적화를 이어가는 것이 중요합니다. 필요하다면 AZ 간 비용을 줄이기 위한 구조 개선, GLCU/LCU 사용량의 주기적 점검, 불필요한 로드 밸런서 정리 등을 통해 비용을 줄일 수 있습니다.
ELB는 잘만 쓰면 높은 가용성과 유연성을 제공하는 강력한 무기가 되지만, 무심코 쓰면 예상치 못한 비용의 주범이 될 수 있습니다. 따라서 비용 구조를 이해하고, 목적에 맞는 구성으로 운영하면서 지속적으로 모니터링·최적화해 나가는 것이 AWS 운영자의 필수 역량입니다.