본문 바로가기
Infra, Cloud/AWS

[AWS] ALB - Application Load Balancer

by 광진구뚝배기 2024. 3. 19.

 

ALB에 대한 설명을 하기 전에, Load Balancer(LB) 및 Elastic Load Balancer(ELB) 에 대해 간단히 살펴보겠다.

 

Load Balancer (LB)

 

Scale-up / Scale out

특정 인터넷 서비스에 동시에 접근하려는 클라이언트가 수천만 명이 될 경우, 트래픽이 증가하여 서비스가 느려지거나 멈출 수 있다. 이러한

 트래픽의 부하 해결을 위한 방법으로는 Scale-up과 Scale-out이 있다.

 

# 스케일 업(Scale-up)     

 : 수직확장의 개념으로, 기존 서버의 성능을 향상시키기 위해 CPU나 메모리를 업그레이드 하는 방법

# 스케일 아웃(Scale-out)

 : 수평확장의 개념으로, 트래픽을 여러 대의 컴퓨터나 서버에 분산하여 처리하는 방법

 

서버 스펙을 늘리는 Scale-up방식과 서버의 개수를 늘리는 Scale-up 방식 중, 주로 비용이 더 저렴하고 안정성이 높은 scale-out 방식으로 문제를 해결한다.

 

Load Balancer

그러나 Scale-out 만으로는 문제가 완전히 해결되지 않는다. 여러 대의 서버에 트래픽을 분산시켜 서비스의 부하와 속도 저하를 해결해야 한다. 이러한 역할을 하는 것이  로드 밸런서이다.

 

Listener / Target Group

AWS에서 제공하는 로드 밸런서는 서비스를 정의하는 리스너(Listener)와 부하 분산 대상을 정의하는 대상그룹(Target Group)으로 구성되어 있다.

 

# 리스너(Listener)

 : 프로토콜 및 포트를 사용하여 연결 요청을 확인하는 프로세스로, 이를 지정하는 규칙(Rule)을 생성한다.

# 대상그룹(Target Group)

 : 하나 이상의 대상을 라우팅하여 부하를 분산한다. 여러대의 서버나 컨테이너 인스턴스가 포함될 수 있으며, 모든 대상은 상태 검사(Health Check)가 수행된다.

 

로드 밸런서는 요청을 받으면 우선순위에 따라 리스너 규칙을 평가하고 적용할 규칙을 결정한 후, 규칙 작업의 대상 그룹에서 대상을 선택한다.

 

 

Application Load Balancer (ALB)

AWS에서 제공하는 Application Load Balancer는 OSI Layer7인 애플리케이션 계층에서 동작하는 로드밸런서이다. 때문에, HTTP 및 HTTPS 트래픽을 로드 밸런싱하여 서버로 효율적으로 분산시킨다. 

 

(출처 : AWS docs)

 

 

ALB 주요 특징

# 리스너 규칙 기반 라우팅

ALB는 클라이언트의 요청을 어떤 대상 그룹으로 라우팅할지 결정하는 역할이다. HTTP 헤더에 담긴 다양한 정보를 활용하여 정의된다. 예를들어, HTTP 요청의 특정 경로나 호스트명에 따라 요청을 다른 대상 그룹으로 라우팅할 수 있다. 예를들어, HTTP 프로토콜과 80번 포트를 사용하는 요청을 받아들이는 리스너를 설정하고, 이를 통해 HTTP 트래픽을 처리한다. 또한, SSL 종단점(SSL Termination) 설정과 같은 고급 설정도 가능하다.

 

# 라우팅 조건 활용

HTTP 요청 메서드를 기반으로 규칙을 생성할 수 있다. GET,POST,PUT,DELETE 등에 따라 다른 대상 그룹으로 요청을 라우팅할 수 있으며, X-Forwarded-For 헤더를 통해 사용자의 IP를 서버에 전달하여 요청을 처리할 수 있다.

 

# ETC.

- AWS의 보안 그룹과 통합되어 네트워크 보안을 강화할 수 있다.

- ALB는 요청된 로그를 기록하고, CloudWatch와 통합하여 성능 모니터링 및 문제 해결을 지원한다. 

- EC2 인스턴스, AWS 람다, 그리고 IP등 다양한 대상에 연결을 지원한다.

- 포트 단위로 연결을 관리하여 도커와 같은 컨테이너 환경에서 유용하게 작동한다.

- 하나의 대상그룹에 여러 컨테이너를 배치함으로써 비용을 최적화할 수 있다.

 

 

참고자료

AWS 설명서

https://yainii.tistory.com/47

 

 

반응형

'Infra, Cloud > AWS' 카테고리의 다른 글

[AWS] RDS 와 애플리케이션의 VPC 분리 이유  (0) 2024.04.13
[AWS] CloudFront  (0) 2024.03.27
[AWS] NLB - Network Load Balancer  (0) 2024.03.23
AWS 서버 구축하기  (1) 2021.06.29

댓글