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

hi·2024년 8월 8일
0

AWS-SAA

목록 보기
30/91
post-custom-banner

애플리케이션 로드 밸런서(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는 가장 적합한 로드 밸런서로 자리 잡고 있습니다.

post-custom-banner

0개의 댓글