ELB (AWS Elastic Load Balancer) 라고? 너 누군데?

2SEONGA·2025년 2월 14일

AWS

목록 보기
1/6
post-thumbnail


[사진 출처 : A Guide to setup Amazon AWS VPC, Subnet, Load Balancer, Route Table, Security Group, NAT and EC2. Just to run your simple app 🤯]

AWS VPC 구성에서의 Load Balance는 ELB

ELB (Elastic Load Balancer) 역할은?

  • 트래픽 분산
    인터넷 게이트웨이(IGW)를 통해 들어오는 요청을 받아 백엔드 EC2 인스턴스로 분산
    사설 서브넷(Private Subnet) 내 EC2 인스턴스로 요청을 전달

  • 보안
    외부에서 직접 Private Subnet의 EC2에 접근하지 못하도록 보호
    Public Subnet에서만 인터넷과 직접 통신하도록 구성

  • 고가용성 및 확장성
    여러 가용 영역(AZ)에 걸쳐 EC2 인스턴스를 배포하여 트래픽 부하를 분산
    장애 발생 시 자동으로 다른 인스턴스로 트래픽을 라우팅하여 서비스 안정성 유지

내가 아는 Load Balancer는 Nginx인데..


AWS ELB 와 Nginx LB 의 차이가 뭐야?

1. AWS ELB

클라우드 네이티브한 관리형 서비스

역할

  • AWS에서 클라우드 네이티브하게 제공하는 로드 밸런서
  • 외부 트래픽을 받아서 Private Subnet 내부의 EC2 인스턴스로 전달
  • AWS에서 자동으로 관리, 뛰어난 확장성과 가용성
  • Auto Scaling 그룹과 연동 가능하여 EC2 인스턴스를 자동으로 추가/삭제 가능

사용 목적

  • 공용 트래픽 분산 : 인터넷에서 오는 요청을 여러 EC2로 분배
  • 고가용성 보장 : 특정 인스턴스가 다운되면 자동으로 다른 인스턴스로 트래픽 전달
  • AWS 관리형 서비스 : 유지보수 부담이 적고, AWS 내부에서 최적화

아키텍처 예시

인터넷 → ELB (Public Subnet) → EC2 (Private Subnet)

2. Nginx LB

더 세부적인 트래픽 제어와 내부 로드 밸런싱을 위한 소프트웨어

역할

  • Nginx는 소프트웨어 기반 로드 밸런서로, 직접 EC2 인스턴스에 설치하는 방식
  • 내부 트래픽을 분산하거나, ELB의 보조 역할 수행
  • 커스텀 설정이 가능, 정적인 콘텐츠 제공, 리버스 프록시 기능도 수행 가능
  • ELB와 달리, 직접 서버 운영 및 설정이 필요

사용 목적

  • 내부 로드 밸런싱: ELB에서 받은 요청을 내부의 여러 EC2 인스턴스로 추가 분배
  • 리버스 프록시 역할: 캐싱, 압축, 보안 등 추가 기능 수행 가능
  • 세부적인 트래픽 컨트롤: 특정 API 요청을 특정 서버로 보내는 등 커스텀 가능

아키텍처 예시

인터넷 → ELB (Public Subnet) → Nginx (Private Subnet) → 여러 EC2 인스턴스

주요 차이점 비교

항목AWS ELBNginx LB
운영 방식AWS에서 관리직접 EC2에 설치
트래픽 유형외부 트래픽(인터넷 → EC2)내부 트래픽(서버 간 부하 분산)
자동 확장자동 지원직접 구성 필요
보안 및 인증AWS 보안 설정 활용 (IAM, WAF)직접 SSL/TLS 설정 필요
추가 기능ALB/WAF/Lambda와 연동 가능캐싱, 리버스 프록시, API Gateway 역할 수행 가능
설정 및 유지보수AWS가 관리 (설정 간단)직접 설정하고 유지보수해야 함
비용사용량 기반 과금EC2 비용만 발생

각각 언제 사용해야해?

1. ELB를 사용해야 할 경우

  • AWS에서 자동으로 관리되는 로드 밸런서가 필요할 때
  • 외부에서 오는 트래픽을 처리해야 할 때
  • Auto Scaling과 연동하여 가용성을 극대화하고 싶을 때

2. Nginx 로드 밸런서를 사용해야 할 경우

  • 내부 서비스 간 트래픽을 분산해야 할 때 (Private Subnet 내에서)
  • 캐싱, 압축, API Gateway 역할을 추가로 수행해야 할 때
  • 세부적인 로드 밸런싱 설정이 필요할 때 (예: 특정 API 요청을 특정 서버로 분배)

3. 둘을 함께 사용해야 할 경우

  • ELB를 퍼블릭 엔드포인트로 사용하고, 내부에서는 Nginx를 사용
  • ELB → Nginx → EC2 구조로 배포하여 트래픽을 2단계로 최적화
  • ELB는 인터넷 트래픽 처리, Nginx는 내부 서비스 로드 밸런싱 + 추가 기능 수행
profile
(와.. 정말 Chill하다..)

0개의 댓글