[고가용성 및 스케일링성] Application Load Balancer (ALB) 개요

IMKUNYOUNG·2024년 8월 8일
0

AWS-SAA

목록 보기
30/91

애플리케이션 로드 밸런서(ALB)는 현대적인 웹 애플리케이션에서 중요한 역할을 하는 컴포넌트 중 하나입니다. ALB는 OSI 모델의 7계층, 즉 애플리케이션 계층에서 동작하며, HTTPHTTPS 프로토콜을 기반으로 다양한 기능을 제공합니다. 이번 포스트에서는 ALB의 주요 특징과 기능에 대해 알아보겠습니다.

ALB란

애플리케이션 로드 밸런서(ALB)는 기본적으로 HTTP/HTTPS 트래픽을 여러 서버에 분산시켜 웹 애플리케이션의 부하를 효율적으로 관리합니다. 특히 컨테이너 및 마이크로서비스 아키텍처에 최적화되어 있어, 동적 포트 매핑을 통해 하나의 인스턴스에서 여러 애플리케이션을 실행할 수 있습니다.

주요 기능

  1. 다양한 라우팅 기능
    ALB는 URL 경로, 호스트 이름, 쿼리 문자열, 헤더 등에 기반한 라우팅을 지원합니다. 예를 들어, example.com/usersexample.com/posts 같은 서로 다른 경로에 따라 트래픽을 각기 다른 대상 그룹으로 분산할 수 있습니다. 이는 마이크로서비스 아키텍처에서 각 서비스가 독립적으로 트래픽을 처리할 수 있도록 돕습니다.
  1. HTTP/2 및 WebSocket 지원
    ALB는 HTTP/2와 WebSocket을 지원하여, 더 빠른 웹 통신과 실시간 양방향 통신을 가능하게 합니다. 이로 인해 사용자 경험이 크게 향상될 수 있습니다.

  2. 트래픽 리다이렉션
    HTTP에서 HTTPS로의 자동 리다이렉션은 ALB에서 쉽게 설정할 수 있습니다. 이를 통해 보안 프로토콜로의 전환이 간편해지며, 애플리케이션의 보안 수준을 높일 수 있습니다.

  3. X-Forwarded 헤더 지원
    ALB는 클라이언트의 실제 IP 주소를 X-Forwarded-For 헤더를 통해 전달합니다. 또한, X-Forwarded-PortX-Forwarded-Proto 헤더를 통해 클라이언트의 포트와 프로토콜 정보도 전달됩니다. 이를 통해 백엔드 서버는 클라이언트의 원래 요청 정보를 확인할 수 있습니다.

대상 그룹

ALB는 대상 그룹이라는 개념을 통해 여러 서버나 서비스를 묶어 관리합니다. 대상 그룹에는 EC2 인스턴스, ECS 워커, Lambda 함수, 혹은 특정 IP 주소가 포함될 수 있습니다. ALB는 이러한 대상 그룹에 트래픽을 분산시키며, 각 그룹에 대해 개별적인 상태 확인(Health Check)을 수행합니다.

활용 예시

ALB는 다양한 상황에서 활용될 수 있습니다. 예를 들어, 모바일 트래픽과 데스크탑 트래픽을 각각 다른 대상 그룹으로 라우팅하는 경우, 쿼리 문자열이나 매개변수에 기반한 라우팅 규칙을 설정할 수 있습니다. 모바일 트래픽은 ?Platform=Mobile로, 데스크탑 트래픽은 ?Platform=Desktop으로 라우팅되도록 설정하는 방식입니다.

클래식 로드 밸런서와의 비교

클래식 로드 밸런서(CLB)와 비교했을 때, ALB는 단 하나의 로드 밸런서로도 여러 애플리케이션을 처리할 수 있다는 장점이 있습니다. CLB는 각각의 애플리케이션마다 별도의 로드 밸런서가 필요하지만, ALB는 하나의 로드 밸런서로 다수의 애플리케이션을 관리할 수 있어 더욱 효율적입니다.

마치며

애플리케이션 로드 밸런서(ALB)는 현대의 마이크로서비스 및 컨테이너 기반 애플리케이션에서 필수적인 요소입니다. 다양한 라우팅 옵션과 HTTP/2, WebSocket 지원, 그리고 뛰어난 확장성 덕분에, ALB는 애플리케이션의 성능과 유연성을 크게 향상시킵니다. 특히 AWS에서 도커와 ECS를 사용하는 환경에서 ALB는 가장 적합한 로드 밸런서로 자리 잡고 있습니다.

0개의 댓글

Powered by GraphCDN, the GraphQL CDN