
로드 밸런서는 트래픽 분산 유지, 서버 장애 감지, 클라이언트 요청을 사용 가능한 서버로 무중단 리디렉션하는 아마존 웹 서비스(Amazon Web Services, AWS) 시스템의 핵심 역할을 합니다. 적절한 로드 밸런서의 선택은 애플리케이션의 성능과 확장성을 최적화하는 데 매우 중요하기 때문에, 어떤 AWS 로드 밸런서를 선택할지 결정하는 일은 쉽지 않을 수 있습니다.
사용 사례에 따라 ELB(Elastic Load Balancer)와 ALB(Application Load Balancer) 중 하나가 더 적합할 수 있습니다. 두 서비스는 유사한 기능을 공유하지만, AWS ALB는 보다 세분화된 특화 기능을 제공하므로 AWS 인프라 환경에 따라 더 적합할 수 있습니다. 그렇다면 현재 사용 중인 AWS 환경에는 어떤 로드 밸런서가 적합할까요?
AWS ELB(Elastic Load Balancer)란 무엇인가?
2009년에 출시된 AWS ELB는 소프트웨어 기반 로드 밸런서로, 진입되는 트래픽을 여러 Amazon EC2 인스턴스에 분산시키는 역할을 합니다. 즉, Amazon EC2 인스턴스를 사용하는 사용자에게 단일 진입점(single entry point) 역할을 하는 것입니다.
ELB는 단순한 트래픽 분산을 넘어 서비스의 안정성을 유지하는 역할도 합니다. 등록된 모든 대상(Target)에 대해 지속적인 상태 점검(Health Check)을 수행하여, 트래픽이 활성 상태의 인스턴스로만 전달되도록 보장하므로 다운타임을 최소화하고 애플리케이션 성능을 향상시킬 수 있습니다.
AWS Monitoring에 대해 더 알아보세요.
AWS ALB(Application Load Balancer)란 무엇인가?
2016년, AWS는 기존의 클래식 ELB 기능을 확장하면서 ALB(Application Load Balancer)를 도입했습니다. 클래식 ELB와 ALB는 공통된 기능을 갖고 있지만, ALB는 고급 기능을 제공하기 위해 특화된 것입니다.
ALB는 클래식 ELB의 기능 외에도 사용자가 정의한 규칙을 기반으로 라우팅을 수행합니다. 즉, 단일 ALB가 호스트 기반 또는 경로 기반 규칙에 따라 여러 서비스로 트래픽을 분산시킬 수 있으므로 현대적 클라우드 애플리케이션 환경에서는 매우 유용한 기능입니다.
ELB와 ALB의 요청 처리 및 라우팅 방식의 차이
AWS ELB와 ALB의 근본적인 차이점은 요청을 처리하고 라우팅하는 방식에 있습니다. 이를 이해하려면 개방형 시스템 간 상호 접속(OSI) 모델을 참고하는 것이 가장 좋습니다. OSI 모델은 서로 다른 컴퓨팅 시스템을 7개의 계층으로 나누어 서로 다른 컴퓨팅 시스템 간의 통신을 설명하는 개념적 프레임워크입니다.
OSI 모델의 각 계층은 바로 아래 계층의 지원을 받게 됩니다. 이러한 계층 모델은 광섬유나 CAT-5 케이블과 같은 전송 매체를 나타내는 1계층(물리 계층)에서 웹 애플리케이션 요청을 처리하는 7계층(애플리케이션 계층)까지 확장되는 것입니다.
클래식 ELB는 전송 계층인 4계층에서 작동하며, TCP/IP 또는 UDP 프로토콜을 기반으로 네트워크 트래픽을 관리합니다. 즉, 클래식 ELB는 네트워크 장치 역할을 하며 수신 요청의 프로토콜과 포트를 읽고, 이를 하나 이상의 Amazon EC2 인스턴스로 전달하는 것입니다. 따라서 클래식 ELB는 요청 내용이 아닌 네트워크 수준의 매개변수를 기반으로 트래픽을 분산하는 단순한 로드 밸런싱 환경에 적합합니다.
반면, AWS ALB는 애플리케이션 계층인 7계층에서 작동하며, 요청의 콘텐츠 기반으로 트래픽을 라우팅합니다. ALB는 수신 요청의 URL 경로, 헤더, 쿼리 문자열 등을 분석해 해당 요청을 적절한 대상 그룹으로 전달합니다. 즉, 모든 요청을 하나의 동일한 서버 그룹으로 보내는 대신, 애플리케이션별 규칙에 따라 여러 대상 그룹으로 분배할 수 있습니다.
클래식 ELB: AWS 오리지널 로드 밸런서
클래식 ELB는 단순하지만 효과적인 로드 밸런서입니다. 설정이 간단해 AWS 엔지니어들이 익숙하게 사용하는 옵션이기도 합니다. 환경이 명확히 정의되어 있고, 각 서비스가 고정된 주소에 매핑되어 있다면 클래식 ELB가 합리적인 선택입니다.
고급 기능의 ALB와 마찬가지로 클래식 ELB는 아래와 같은 기능을 지원합니다.
- SSL 종료
- 스티키 세션
- 유휴 세션 종료
- 비정상 인스턴스로 표시되는 동안 요청 완료 처리
ALB: 콘텐츠 기반 라우팅에 최적화된 선택
조직에서 마이크로서비스 아키텍처와 컨테이너 기반 인프라를 채택함에 따라 단일 주소를 특정 서비스에 매핑하는 작업이 더욱 복잡해지고 유지 관리가 어려워지고 있습니다. 프로토콜과 포트만을 기준으로 요청을 라우팅하는 클래식 ELB와 달리 ALB는 요청 콘텐츠를 기반으로 트래픽을 분산시킵니다.
ALB 주요 기능
AWS ALB를 설정하면 AWS 관리 콘솔에서 고급 설정을 구성할 수 있습니다. EC2 홈페이지의 로드 밸런서 섹션으로 이동하면, 필요에 따라 로드 밸런서를 생성하거나 수정할 수 있습니다.
클래식 ELB와 마찬가지로 리스너(listener)를 추가하고 서로 다른 대상(Target)으로 지정할 수 있습니다. 하지만 ALB는 규칙 보기/편집(View/Edit Rules) 기능을 추가로 지원해, 더욱 세밀하게 트래픽 라우팅 로직을 제어할 수 있습니다.

규칙 보기/편집 링크를 클릭하면 규칙을 추가, 수정, 삭제할 수 있는데, 각 규칙은 경로 기반(path-based)인지 헤더 기반(header-based)인지에 따라 특정 대상 그룹으로 전달됩니다. 또한, 이전 규칙과 일치하지 않는 요청은 기본 작업(Default Action)에 따라 사전에 정의된 대상 그룹으로 라우팅됩니다.

ALB와 ELB 중 어떤 것을 선택해야 할까?
AWS ALB와 ELB 중 어느 것을 선택할지는 AWS 환경 구성과 애플리케이션 요구사항에 따라 다릅니다.
인프라가 각 서비스별로 구분된 URL에 매핑되어 있고, 기본적인 로드 밸런싱만 필요하다면, 클래식 ELB를 선택하는 것이 좋습니다. 간단하고 효과적이며 AWS 엔지니어들이 널리 사용하고 있습니다.
반면, 마이크로서비스나 컨테이너형 애플리케이션을 운영 중이거나 고급 라우팅 기능이 필요하다면 ALB가 더 적합합니다. ALB는 콘텐츠 기반 라우팅, 여러 대상 그룹 구성, 그리고 AWS 서비스와의 깊은 통합을 통해 현대적인 클라우드 네이티브 환경에 최적화된 유연성과 확장성을 제공합니다.
결국 ALB와 ELB는 모두 애플리케이션 성능과 가용성을 강화하는 강력한 도구입니다. Sumo Logic 계정에서도 두 로드 밸런서가 모두 완벽히 지원됩니다.
적절한 로드 밸런서를 선택하면 트래픽 분산과 시스템 효율성을 극대화할 수 있습니다.
오늘 바로 이 로드 밸런서들을 활용해 보세요.등록하고 Sumo Logic 30일 무료 평가판을 이용해 보세요



