AWS ALB

아투·2025년 11월 19일
post-thumbnail

1. AWS ALB(Application Load Balancer)란?

애플리케이션 계층(L7)에서 HTTP/HTTPS 요청을 받아 대상 그룹(EC2 인스턴스, 컨테이너, IP 주소, Lambda 등)으로 트래픽을 분산하는 AWS의 관리형 로드밸런서이다.

1.1 배경

1.1.1 왜 L7 로드밸런서가 필요한가

현대 웹/클라우드 애플리케이션은 단순히 IP 주소 + 포트만으로 동작하지 않는다. HTTP(S) 요청 안에 포함된 URL 경로, 쿠키, 헤더, 사용자 세션 정보, 모바일 vs 데스크탑 구분 등 애플리케이션 계층(Application Layer)의 맥락이 중요해졌다.

단일 서버가 급격히 증가하는 트래픽이나 요청 유형(예시 : 정적 리소스, API, 파일 업로드, 웹소켓 등)변화, 다양한 디바이스/브라우저 대응, A/B 테스트, 버전릴리즈 복합 운영 등을 감당해야 한다.

또한 보안 및 운영 측면에서 끝단에서 암호화된 요청을 해독해 내용을 보고 판단해야 한다., 세션 유지, 쿠키 기반 sticky session 처리가 필요하다.는 요구가 많아졌다.

이러한 맥락에서 내용까지 보고 판단하는 로드밸런서, 즉 L7 로드밸런서가 유리해졌다.

1.1.2 4계층과 7계층 부하 분산의 차이점

4계층 부하 분산은 메시지 내용과는 관계없이 메시지 전달을 담당하는 중간 전송 계층에서 작동한다. 전송 제어 프로토콜(TCP)은 인터넷에서 하이퍼 텍스트 전송 프로토콜(HTTP) 트래픽을 위한 4계층 프로토콜이다. 4계층 부하 분산 장치는 패킷 내용읗 검사하지 않고 단순히 네트워크 패킷을사우이 서버로 전달한다. TCP 스트림의 처음 몇개의 패킷을 검사하여 제한적인 라우팅 결정을 내릴 수 있다.

7계층 부하 분산은 각 메시지의 싳제 내용을 처리하는 사우이 애플리케이션 계층에서 작동한다. HTTP는 인터넷 웹사이트 트래픽을 위한 주요 7계층 프로토콜이다. 7계층 부하 분산기는 4계층 부하 분산기보다 훨씬 정교한 방식으로 네트워크 트래픽을 라우팅하며, 특히 HTTP와 같은 TCP 기반 트래픽에 적합하다. 7계층 부하 분산기는 네트워크 트래픽을 종료하고 그 안의 메시지를 읽는다. 메시지 내용(예시 : URL 또는 쿠키)을 기반으로 부하 분산 결정을 내릴 수 있다. 그런 다음 선택한 업스트림 서버에 새로운 TCP 연결을 설정하거나 HTTP keepalive를 통해 기존 연결을 재사용하고 서버에 요청을 작성한다.

1.2 ELB 제품군(Classic/ALB/NLB) 중 ALB의 특징

1.2.1 애플리케이션 계층(L7) 처리

ALB는 OSI 모델의 7계층(애플리케이션 계층)에서 HTTP/HTTPS (및 gRPC WebSocket) 요청의 콘텐츠(URL 경로, 호스트 헤더, 쿠키 등)를 분석하여 라우팅할 수 있다.

반면 CLB는 비교적 단순하며, NLB는 전송 계층(L4)에서 동작한다.

1.2.2 콘텐츠 기반 라우팅 및 고급 리스너 규칙

ALB는 경로 기반(path-bases) 또는 호스트 기반(host-header) 라우티잉 가능하며, 여러 타겟 그룹으로 요청을 분기할 수 있다.

CLB에는 이 같은 세분화된 콘텐츠 기반 라우팅 기능이 거의 없다.

1.2.3 Target 유형의 유연성

ALB는 EC2 인스턴스뿐 아니라 컨테이너, IP 주소, 그리고 AWS lambda 함수까지 타겟으로 지정할 수 있다.

CLB는 주로 EC2 인스턴스를 대상으로 하고 시간이 지나면서 기능이 제한적이라는 평가가 많다.

1.2.4 최신 프로토콜 지원 및 애플리케이션 친화성

ALB는 HTTP/2 및 WebSocket을 지원한다. 따라서 MSA, 컨테이너 환경, API Gateway 형태의 웹 기반 시스템에 적합하다.

1.2.5 고급 기능 및 보안 통합

ALB는 HTTP 헤더 기반 라우팅, 고정 응답(fixed response), 리디렉션(redirect) 기능 등을 지원한다. 또한 AWS WAF(웹 애플리케이션 방화벽)과 통합하거나 인증 / 권한 부여 (OpenID Connect 등)를 프론트엔드에서 처리하는 구조에 적합하다.

1.2.6 자동 확장 및 고가용성 지원

ALB는 여러 가용영역(Availibility Zone)에 걸쳐 자동으로 확장 가능하며, 요청량 증가 시 새로운 노드가 자동으로 증설된다.

cross-zone load balancing이 기본적으로 활성화되어 있어 여러 가용 영역에 걸친 분산이 보다 간편하다.

1.3 L7 기반 트래픽 제어의 장점

L7 로드밸런싱은 패킷 기반 L4 로드밸런싱보다 CPU 사용량이 높지만, 최신 서버에서 성능 저하를 유발하는 경우는 드물다. 레이어 7 로드밸런싱을 통해 로드 밸런서는 더욱 스마트한 로드 밸런싱을 결정 내리고 콘텐츠 최적화 및 변경 사항(예시 : 압축 및 암호화)을 적용할 수 있다. 또한, 버퍼링을 사용하여 업스트림 서버에 느린 연결 부하를 분산하여 성능을 향상시킨다.

1.3.1 L7 기반 트래픽 제어의 예시

사용자가 트래픽이 많은 웹사이트에 접속한다고 가정해보자. 사용자 세션 동안 이미지나 비디오와 같은 정적 콘텐츠, 뉴스 피드와 같은 동적 콘텐츠, 심지어 주문 상태와 같은 거래 정보까지 요청할 수 있다. L7 로드밸런싱을 통해 로드밸런서는 요청 자체의 정보(요청되는 콘텐츠 종류 등)를 기반으로 요청을 라우팅할 수 있다.

따라서 이미지나 비디오에 대한 요청은 해당 콘텐츠를 저장하고 멀티미디어 콘텐츠를 제공하도록 고도로 최적화된 서버로 라우팅될 수 있다. 할인 가격과 같은 거래 정보에 대한 요청은 가격 관리 담당하는 애플리케이션 서버로 라우팅이 될 수 있다. L7 로드밸런싱을 통해 네트워크 및 애플리케이션 설계자는 안정적이고 효율적으로 확장하여 수요를 충족하는 고도로 조정되고 최적화된 서버 인프라 또는 에플리케이션 전송 네트워크를 구축할 수 있다.


2. ALB의 핵심 아키텍처

2.1 Listener(80/443)

2.2 Target Group

2.3 Load Balancer 노드

2.4 Cross-Zone Load Balancing

2.5 Auto Scaling과의 연동


3. ALB의 동작 원리

3.1 클라이언트 요청 수신

3.2 Listener 규칙 적용(조건 매칭)

3.3 Target Group 선택

3.4 Health Check 기반 트래픽 라우팅

3.5 Target으로 요청 전달 및 응답 반환


4. ALB의 주요 기능

4.1 L7 기반 라우팅(Path·Host 기반)

4.2 Header·Query 기반 라우팅

4.3 WebSocket 지원

4.4 HTTP/2 지원

4.5 Sticky Session(Cookie 기반)


5. 고급 라우팅 기능

5.1 Path-based Routing

5.2 Host-based Routing

5.3 Query-string 기반 Routing

5.4 Header 조건 기반 Routing

5.5 Redirect / Fixed-response 기능


6. Target Group

6.1 Instance Target

6.2 IP Target

6.3 Lambda Target

6.4 Protocol 지원(HTTP/HTTPS)

6.5 Health Check 메커니즘


7. ALB 보안

7.1 Security Group

7.2 TLS Termination(HTTPS 종료)

7.3 AWS WAF 연동

7.4 Shield Advanced(DDoS 보호)


8. ALB 성능 및 확장성

8.1 자동 스케일링되는 관리형 로드밸런서

8.2 대규모 트래픽 처리 모델

8.3 Connection Reuse

8.4 Throughput·Latency 특성


9. Access Log & 모니터링

9.1 Access Log(S3 저장)

9.2 CloudWatch Metrics

9.3 Target Response Time 모니터링

9.4 고장 감지 및 경보 설정


10. ALB와 NLB 비교

10.1 L7 vs L4

10.2 사용 목적 비교

10.3 성능·지연 시간 차이

10.4 비용 구조 차이


11. ALB의 비용 구조

11.1 LCU(Load Balancer Capacity Unit)

11.2 처리량·규칙 수·활성 연결 수 기반 과금

11.3 비용 최적화 전략(규칙 설계·Idle Timeout 관리)


12. ALB 실무 아키텍처 패턴

12.1 ALB + Auto Scaling

12.2 ALB + ECS(Service mesh 역할)

12.3 ALB + Lambda(Serverless API)

12.4 ALB + CloudFront(전 세계 글로벌 가속)


13. ALB 트러블슈팅

13.1 Health Check 실패 원인

13.2 Path 기반 라우팅 문제

13.3 인증서 오류(HTTPS)

13.4 Target Group 502/503/504 에러

13.5 Sticky Session 오작동


14. ALB 학습 로드맵

14.1 L4/L7 개념 → Listener → Rule → Target Group

14.2 Path/Host 기반 라우팅 실습

14.3 Health Check 분석

14.4 실전 아키텍처 구성


15. 결론 및 요약

15.1 ALB의 핵심 가치(유연성·L7 제어·Managed Service)

15.2 ALB가 적합한 사용 사례

15.3 ALB vs NLB 선택 기준


참고 문헌

0개의 댓글