cloud

AWS - Elastic Load Balancer(LB)

실제 운영 환경에서는 하나의 EC2 인스턴스만으로 모든 트래픽을 처리하는 구조는 매우 위험합니다. 트래픽 증가로 인한 성능 저하, 단일 장애 지점(SPOF, Single Point of Failure), 유지보수 중단 등의 문제가 발생할 수 있기 때문입니다.

이러한 문제를 해결하기 위해 AWS에서는 Load Balancer(LB) 서비스를 제공합니다. Load Balancer는 외부 또는 내부에서 유입되는 트래픽을 여러 대상(Target)으로 분산시켜, 서비스의 가용성(Availability)확장성(Scalability) 을 보장하는 핵심 인프라 구성 요소입니다.

AWS의 Load Balancer는 ELB(Elastic Load Balancing) 라는 관리형 서비스로 제공되며, 사용자는 복잡한 네트워크 설정 없이도 고가용성 아키텍처를 손쉽게 구축할 수 있습니다. 또한 AWS가 자동으로 장애를 감지하고 트래픽을 정상 인스턴스로 우회 처리해 줍니다. On-premise 기준으로는 L4 스위치의 기능과 동일하다고 할 수 있습니다.

Load Balancer의 역할과 필요성

Load Balancer는 Load(부하) Balancing(분산) 기술을 제공해 주는 기술이나 장치를 의미합니다. 또한 Load Balancer는 단순히 트래픽을 나누는 기능을 넘어, 다음과 같은 중요한 역할을 수행합니다.

  • 다수의 EC2 인스턴스에 트래픽 분산
  • 장애가 발생한 인스턴스를 자동으로 트래픽에서 제외
  • 오토 스케일링(Auto Scaling)과 연동하여 유연한 확장
  • SSL/TLS 종료(HTTPS 처리)
  • 고정 엔드포인트(DNS) 제공으로 IP 변경 문제 해결

Elastic IP를 직접 EC2에 할당하는 방식은 인스턴스 수가 늘어날수록 관리가 복잡해지지만, Load Balancer를 사용하면 단일 엔드포인트로 여러 인스턴스를 안정적으로 관리할 수 있습니다. ELB는 단순히 부하 분산만 하는 것이 아닙니다. HTTP Header를 수정/업데이트가 가능하고 ACM의 SSL를 포함하여 EC2 부하를 줄이는 것도 가능합니다. WAF를 앞단에 붙여서 방화벽을 추가하더나 Global Accelerator(GWLB)를 활성화하는 것도 가능합니다.

AWS Load Balancer 종류

부하 분산을 OSI 7 계층 중에 어디에서 동작하는지에 따라 NLB(Network LoadBalancer)와 ALB(Application LoadBalancer)로 나누어집니다. AWS에서는 사용 목적에 따라 세 가지 주요 Load Balancer를 제공합니다. AWS에서 Type에 따라 Load Balancer의 종류가 결정됩니다.

  • application → Application Load Balancer (ALB - L7, HTTP/HTTPS)
  • network → Network Load Balancer (NLB - L4, TCP/UDP)
  • gateway → Gateway Load Balancer (GWLB)

Schema에 따라서는 아래와 같습니다.

  • internet-facing : 외부 사용자(인터넷) → LB → 서비스 (Public IP 주소를 가짐)
  • internal : VPC 내부 통신 전용 (Private IP 주소를 가짐)

Application Load Balancer (ALB)

ALB는 L7(Application Layer) 에서 동작하며, HTTP/HTTPS 트래픽의 정보를 이용하는 로드밸런서입니다. 요청 URL, 호스트 헤더, 경로(Path) 기반으로 트래픽을 분기할 수 있어 웹 서비스에 가장 널리 사용됩니다.

  • HTTP/HTTPS 트래픽 처리
  • Path 기반 / Host 기반 라우팅
  • 컨테이너(ECS, EKS)와 높은 호환성
  • WebSocket 지원

경로나 포트단위로 분기가 가능하기 때문에, 특히 도커 컨테이너를 포트단위로 연결할 때 유용합니다. 인증서 탑재가 가능해서 SSL 암호화.복화화를 대신 진행 할 수 있습니다. ALB의 IP 주소가 지속적으로 변경되기 때문에 고정 IP는 불가능하고 도메인 기반으로 사용해야합니다. DNS 이름을 통해 접속하면 ALB는 요청을 대상 그룹에 전달할 것이고 대상 그룹의 EC2가 요청을 처리하는 것이다.

Network Load Balancer (NLB)

NLB는 L4(Network Layer) 에서 동작하며, TCP/UDP 트래픽의 정보를 이용하는 로드밸런서입니다. 매우 높은 성능과 낮은 지연 시간이 요구되는 환경에 적합합니다. HTTP가 아닌 하위 Layer의 TCP Layer에서 처리하기 때문에 HTTP 헤더를 해석하지 못합니다.

  • 초당 수백만 요청 처리 가능
  • 고정 IP 또는 Elastic IP 할당 가능
  • TCP, UDP, TLS 트래픽 지원
  • 실시간 스트리밍, 게임 서버 등에 적합

Gateway Load Balancer (GWLB)

GWLB는 보안 어플라이언스(방화벽, IDS/IPS 등)를 트래픽 경로에 투명하게 삽입하기 위한 특수 목적 Load Balancer입니다.

  • 네트워크 보안 장비 연동
  • 트래픽 검사 및 필터링 용도
  • 대규모 네트워크 아키텍처에서 활용

퍼블릭 Load Balancer와 내부 Load Balancer

Load Balancer는 배치 위치에 따라 두 가지로 구분됩니다.

  • 퍼블릭 Load Balancer

    • Internet Gateway와 연결
    • 외부 인터넷에서 접근 가능
    • 웹 서비스, API 서버에 사용
  • 내부 Load Balancer

    • 프라이빗 서브넷에 배치
    • VPC 내부 통신 전용
    • 마이크로서비스, 내부 API, DB 접근 제어에 사용

일반적으로 사용자는 퍼블릭 Load Balancer를 통해 접속하고, 내부 서비스 간 통신은 내부 Load Balancer를 활용해 네트워크 보안과 구조적 분리를 유지합니다.

Load Balancer와 고가용성 아키텍처

AWS Load Balancer는 기본적으로 다중 AZ(Multi-AZ) 구조로 동작합니다. 이는 특정 가용 영역(AZ)에 장애가 발생하더라도, 다른 AZ에 위치한 인스턴스로 트래픽을 자동으로 전달함으로써 서비스 중단을 방지합니다.

또한 Auto Scaling Group(ASG)과 연계하면 트래픽 증가 시 인스턴스를 자동으로 확장하고, 감소 시 축소하는 탄력적인 인프라 구성이 가능합니다. 이러한 구조는 클라우드 환경에서 가장 권장되는 표준 아키텍처 중 하나입니다.

라운드 로빈

라운드 로빈(RR; Round Robin) 또는 라운드 로빈 스케줄링(Round Robin Scheduling)은 시분할 시스템을 위해 설계된 선점형 스케줄링의 하나로서, 프로세스들 사이에 우선순위를 두지 않고, 순서대로 시간 단위로 CPU를 할당하는 방식의 CPU 스케줄링 알고리즘입니다.

Cross-Zone Load Balancing

교차 영역 로드밸런싱(Cross Zone Load Balancing)을 사용하게 되면 가용영역을 가리지 않고 고르게 부하를 분산한다. ALB의 경우는 교차 영역 LB가 활성화 상태이며, NLB는 기본적으로 비활성화 되어 있습니다. Cross Zone Load Balancing 이 무료다. AWS는 기본적으로 AZ간 데이터 통신은 과금이 되는데, ALB는 AZ간 Load Balancing을 하더라도 별도의 데이터 통신빈용이 발생하지 않습니다.

Listener

따라서 모든 LB는 최소 1개 이상의 리스터가 필요하고 최대 10개까지 설정이 가능합니다.

Listener Rule

리스너 룰은 리스터와 대상 그룹(Target Group) 사이의 트래픽 분배를 위한 규칙입니다.

대상 그룹(Target Group)

부하 분산을 하는 타겟입니다. EC2의 정보(인스턴스 ID, Port, AZ)를 통해서, 요청 처리를 위한 헬스 체크(Health Check)와 EC2의 상태를 확인하는 모니터링이 가능합니다.

정리

AWS Load Balancer(LB)는 트래픽 분산을 통해 서비스의 안정성, 확장성, 장애 대응 능력을 극대화하는 핵심 인프라 서비스입니다. 단일 EC2와 Elastic IP 기반 구조에서 벗어나, Load Balancer를 중심으로 한 아키텍처를 구성함으로써 운영 부담을 크게 줄일 수 있습니다.

웹 서비스에는 ALB, 고성능 네트워크 처리에는 NLB, 보안 트래픽 제어에는 GWLB를 선택하는 것이 일반적인 설계 원칙입니다. IGW, 서브넷, 보안 그룹, 오토 스케일링과 함께 올바르게 구성할 때 AWS Load Balancer의 진정한 가치를 경험할 수 있습니다.

참고자료