마이크로서비스별 트래픽 분배가 어렵습니다
여러 마이크로서비스가 동일 도메인 아래 운영될 때, 요청 경로·호스트·헤더 등 L7 속성에 따라 트래픽을 분리하려면 별도의 리버스 프록시를 직접 구축하고 운영해야 합니다. 확장 시 프록시 자체가 병목이 될 수 있습니다.
Application Load Balancer · L7 로드 밸런싱
Application Load Balancer는 OSI 7계층에서 동작하며, 호스트, 경로, HTTP 헤더, 쿼리 문자열, 소스 IP 등 요청 내용을 기준으로 트래픽을 라우팅합니다. EC2 인스턴스, 컨테이너, IP 주소, Lambda 함수를 대상으로 등록할 수 있어 마이크로서비스 및 컨테이너 기반 아키텍처에 적합합니다.
Customer challenges
여러 마이크로서비스가 동일 도메인 아래 운영될 때, 요청 경로·호스트·헤더 등 L7 속성에 따라 트래픽을 분리하려면 별도의 리버스 프록시를 직접 구축하고 운영해야 합니다. 확장 시 프록시 자체가 병목이 될 수 있습니다.
Security
여러 도메인을 운영하면 인증서 발급·갱신·배포를 각 서버에서 개별 처리해야 합니다. 인증서 만료로 인한 서비스 장애 위험이 있으며, 최신 TLS 프로토콜 적용도 서버마다 수동으로 관리해야 합니다.
Operations
컨테이너 오케스트레이터가 동적으로 할당하는 포트를 로드 밸런서에 수동으로 등록·해제해야 합니다. 배포 빈도가 높을수록 구성 오류와 다운타임 위험이 증가합니다.
Benefits
Routing
호스트, 경로, HTTP 헤더, HTTP 메서드, 쿼리 문자열, 소스 IP CIDR 등 다양한 조건을 조합하여 요청을 서로 다른 대상 그룹으로 라우팅할 수 있습니다. 하나의 로드 밸런서로 여러 서비스를 운영할 수 있습니다.
Flexibility
EC2 인스턴스, 컨테이너, IP 주소, Lambda 함수를 대상으로 등록할 수 있습니다. IP 주소 대상을 사용하면 온프레미스 서버(Direct Connect 또는 VPN 연결)나 피어링된 VPC의 리소스도 로드 밸런싱할 수 있습니다.
Security
AWS WAF 통합, Mutual TLS 지원, Amazon Cognito 및 OIDC 기반 사용자 인증 오프로드, SNI를 통한 다중 인증서 관리, Desync 보호 등 보안 기능이 로드 밸런서에 내장되어 있습니다.
How it works
리스너는 클라이언트의 연결 요청을 프로토콜과 포트로 수신합니다. 각 리스너에는 하나 이상의 규칙이 정의되며, 규칙은 우선순위·조건·액션으로 구성됩니다. 조건이 충족되면 해당 액션(forward, redirect, fixed-response, authenticate)이 실행됩니다.
대상 그룹은 하나 이상의 등록된 대상(EC2, 컨테이너, IP, Lambda)에 지정된 프로토콜과 포트로 요청을 라우팅합니다. 대상을 여러 대상 그룹에 등록할 수 있으며, 대상 그룹 단위로 상태 확인을 구성합니다.
LCU는 ALB가 트래픽을 처리하는 규모를 측정하는 단위입니다. 새 연결 수, 활성 연결 수, 처리 바이트, 규칙 평가 수의 4가지 차원 중 가장 사용량이 높은 차원으로 과금됩니다.
요청의 Host 필드, URL 경로, HTTP 헤더, HTTP 메서드, 쿼리 문자열, 소스 IP CIDR을 조건으로 사용하여 서로 다른 대상 그룹으로 트래픽을 라우팅합니다. 하나의 ALB에서 여러 서비스를 호스팅할 수 있습니다.
Key features
HTTP/HTTPS 트래픽을 X-Forwarded-For 헤더 등 요청 속성 기반으로 EC2 인스턴스, 마이크로서비스, 컨테이너에 분산합니다.
출처Host, Path, HTTP 헤더, HTTP 메서드, 쿼리 문자열, 소스 IP CIDR 등 6가지 조건을 조합하여 요청을 서로 다른 서비스로 라우팅합니다.
출처x509 인증서 기반의 양방향 인증을 지원합니다. ALB가 클라이언트 인증서를 인증하고 폐기 확인을 수행하며, 인증서 정보를 대상에 전달하여 애플리케이션에서 인가 결정에 활용할 수 있습니다.
출처가중 랜덤 로드 밸런싱 알고리즘을 사용하여 HTTP 상태 코드와 TCP/TLS 오류율을 분석합니다. 오류율이 높은 대상의 트래픽을 자동으로 줄여 장애 대상이 복구될 수 있도록 합니다.
출처HTTP/2를 기본 지원하며, gRPC 트래픽의 라우팅과 로드 밸런싱을 제공합니다. 마이크로서비스 간 gRPC 통신을 인프라 변경 없이 관리할 수 있습니다.
출처Lambda 함수를 대상으로 등록하여 HTTP(S) 요청을 처리할 수 있습니다. EC2 인스턴스, 컨테이너, 온프레미스 서버, Lambda 함수를 조합한 애플리케이션 구성이 가능합니다.
출처Amazon Cognito 통합을 통해 Google, Facebook, Amazon 등 소셜 IdP와 SAML 기반 엔터프라이즈 IdP, 또는 OpenID Connect 호환 IdP로 사용자 인증을 ALB에서 오프로드할 수 있습니다.
출처AWS WAF를 ALB에 연결하여 IP 주소, HTTP 헤더, URI 문자열 기반 규칙으로 웹 요청을 차단, 허용 또는 모니터링할 수 있습니다.
출처단일 EC2 인스턴스의 여러 포트에 걸쳐 로드 밸런싱을 지원합니다. Amazon ECS와 통합되어 태스크 정의의 동적 포트를 자동으로 로드 밸런서에 등록합니다.
출처대상에 엄격한 동시성 제한을 적용합니다. 에이전트를 대상에 설치하고 최대 동시 요청 수를 설정하면, 낮은 동시성 워크로드에서 요청 성공률과 대상 효율성을 높일 수 있습니다.
출처Compare
| 항목 | Application Load Balancer | Network Load Balancer | Gateway Load Balancer | Classic Load Balancer |
|---|---|---|---|---|
| 동작 계층 | Layer 7 | Layer 4 | Layer 3 Gateway + Layer 4 LB | Layer 4/7 |
| 프로토콜 | HTTP, HTTPS, gRPC | TCP, UDP, TLS | IP | TCP, SSL/TLS, HTTP, HTTPS |
| 대상 유형 | IP, Instance, Lambda | IP, Instance, ALB | IP, Instance | - |
| 콘텐츠 기반 라우팅 | 지원 (Host, Path, 헤더, 메서드, 쿼리, 소스 IP) | 미지원 | 미지원 | 미지원 |
| 고정 IP / 탄력적 IP 주소 | 미지원 | 지원 | 미지원 | 미지원 |
| PrivateLink | 미지원 (NLB 경유 가능) | 지원 (TCP, TLS) | 지원 (GWLBE) | 미지원 |
| User Authentication | 지원 | 미지원 | 미지원 | 미지원 |
| AWS WAF 통합 | 지원 | 미지원 | 미지원 | 미지원 |
| SNI | 지원 | 지원 | 미지원 | 미지원 |
| Outpost 지원 | 지원 | 미지원 | 미지원 | 미지원 |
Use cases
하나의 ALB에서 Host, Path, HTTP 헤더 등 조건을 조합하여 여러 마이크로서비스로 요청을 분배합니다. 각 서비스를 별도의 대상 그룹으로 구성하고 독립적으로 상태 확인과 Auto Scaling을 적용할 수 있습니다.
AWS 제품 페이지에서 보기 ↗Amazon ECS와 통합하여 태스크의 동적 포트를 자동으로 ALB에 등록합니다. 단일 EC2 인스턴스에서 여러 컨테이너를 서로 다른 포트로 운영하며 효율적으로 클러스터를 활용할 수 있습니다.
AWS 제품 페이지에서 보기 ↗Lambda 함수를 ALB 대상으로 등록하여 웹 브라우저를 포함한 모든 HTTP 클라이언트에서 서버리스 애플리케이션에 접근할 수 있습니다. EC2, 컨테이너, Lambda를 조합한 하이브리드 구성도 가능합니다.
AWS 제품 페이지에서 보기 ↗IP 주소를 대상으로 사용하여 Direct Connect 또는 VPN으로 연결된 온프레미스 서버와 AWS 리소스를 동일한 대상 그룹에 등록할 수 있습니다. 클라우드 마이그레이션, 버스트, 장애 조치 시나리오에 활용됩니다.
AWS 제품 페이지에서 보기 ↗Reference architecture
클라이언트가 ALB의 DNS 엔드포인트로 HTTPS 요청을 보냅니다. ALB의 HTTPS 리스너(포트 443)가 요청을 수신하고 TLS를 종료합니다. 리스너에 정의된 규칙이 요청의 Host 헤더와 URL 경로를 평가합니다. 예를 들어 api.example.com/orders/* 조건에 일치하면 Orders 대상 그룹으로, api.example.com/users/* 조건에 일치하면 Users 대상 그룹으로 전달합니다. 각 대상 그룹은 Amazon ECS 태스크 또는 EC2 인스턴스로 구성되며, 대상 그룹 단위로 상태 확인이 수행됩니다. 어떤 규칙에도 일치하지 않는 요청은 기본 규칙에 의해 기본 대상 그룹으로 전달되거나 고정 응답(예: 404)을 반환합니다. AWS WAF가 ALB 앞단에서 웹 ACL 규칙을 적용하여 악성 요청을 차단합니다.
출처클라이언트 요청이 ALB로 도달합니다. ALB의 리스너 규칙이 요청을 평가하여 대상 그룹으로 전달합니다. 대상 그룹에는 VPC 내 EC2 인스턴스의 인스턴스 ID와 온프레미스 서버의 IP 주소가 함께 등록되어 있습니다. 온프레미스 서버는 Direct Connect 또는 VPN 연결을 통해 VPC와 통신합니다. ALB는 등록된 모든 대상에 상태 확인을 수행하고 정상 대상에만 트래픽을 분산합니다. 클라우드 마이그레이션 시 VPC 대상을 점진적으로 추가하고 온프레미스 대상을 제거하여 무중단 전환이 가능합니다.
출처Pricing
ALB는 로드 밸런서 실행 시간(시간 단위)과 Load Balancer Capacity Unit(LCU) 사용량을 기준으로 과금됩니다. LCU는 새 연결 수, 활성 연결 수, 처리 바이트, 규칙 평가 수 중 가장 높은 차원으로 계산됩니다. LCU Reservation을 사용하면 예약된 LCU와 초과 사용 LCU에 대해 별도로 과금됩니다. AWS Free Tier에서 신규 고객에게 월 750시간(Classic/Application 공유)과 15 LCU가 제공됩니다.
Getting started
애플리케이션의 각 서비스를 식별하고, 서비스별로 대상 그룹을 생성합니다. 대상 유형(Instance, IP, Lambda)을 결정하고, 상태 확인 경로와 프로토콜을 서비스에 맞게 설정합니다.
HTTP(80) 및 HTTPS(443) 리스너를 생성합니다. HTTP에서 HTTPS로의 리디렉션 규칙을 설정합니다. HTTPS 리스너에 Host, Path 등 조건 기반 규칙을 우선순위에 따라 정의하고, 기본 규칙을 설정합니다.
AWS Certificate Manager(ACM)에서 인증서를 발급하거나 기존 인증서를 가져와 HTTPS 리스너에 연결합니다. 여러 도메인이 있으면 SNI를 활용합니다. 보안 그룹을 구성하고, 필요 시 AWS WAF 웹 ACL을 연결합니다.
대상 그룹을 Auto Scaling 그룹에 연결하여 트래픽 변화에 따라 대상을 자동으로 추가·제거합니다. Amazon CloudWatch에서 ALB 지표(요청 수, 오류 수, 지연 시간 등)를 모니터링하고, AWS CloudTrail로 API 호출 이력을 기록합니다.
각 라우팅 규칙이 의도한 대상 그룹으로 트래픽을 전달하는지 확인합니다. 상태 확인이 정상 동작하는지 검증합니다. 운영 환경에서는 ALB의 삭제 보호(Deletion Protection)를 활성화하여 실수로 인한 삭제를 방지합니다.
Next steps
ALB의 구성 요소, 리스너 설정, 대상 그룹 관리, 상태 확인 구성 등 상세 가이드를 확인할 수 있습니다.
ALB의 시간당 요금과 LCU 기반 과금 구조, 요금 예시를 확인할 수 있습니다.
예상 트래픽 패턴을 입력하여 ALB 운영 비용을 사전에 추정할 수 있습니다.
ALB 지원 프로토콜, 로드 밸런서 유형 선택 기준, 인증서 관리, 하이브리드 로드 밸런싱 등 자주 묻는 질문을 확인할 수 있습니다.
Resources
이 페이지는 아래 AWS 공식 자료를 바탕으로 정리했습니다. 마지막 갱신 2026-10-17.