Elastic Load Balancing 사용

kauze98·2025년 5월 13일

AWS 실습

목록 보기
10/16

1. 개요

1. ELB란 무엇인가?

Amazon Elastic Load Balancer(ELB)는 들어오는 애플리케이션 트래픽을 여러 Amazon EC2 인스턴스 등 다양한 대상에 자동으로 분산하는 서비스입니다. 이를 통해 애플리케이션의 내결함성(가용성)과 확장성을 높이고, 트래픽 변화에 유연하게 대응할 수 있습니다.

  • 트래픽 분산: 여러 인스턴스에 트래픽을 자동으로 분산해 서버 과부하를 방지

  • 고가용성: 한 인스턴스에 장애가 발생해도 정상 인스턴스로만 트래픽을 라우팅

  • 자동 복구: 비정상 인스턴스 감지 시, 복구 전까지 트래픽을 정상 인스턴스로만 전달

 

2. 주요 특징

  • 자동 확장: 트래픽 변화에 따라 로드 밸런서와 대상 인스턴스가 자동으로 확장/축소

  • 실시간 모니터링: 애플리케이션의 상태와 성능을 실시간으로 모니터링

  • 보안: SSL/TLS 종단, 인증서 관리, 클라이언트 인증 등 보안 기능 제공

  • 크로스 존 로드 밸런싱: 여러 가용 영역(AZ)에서 트래픽을 분산하여 장애에 강함

  • 삭제 보호: 실수로 삭제되는 것을 방지하는 옵션 제공

 

3. 동작 방식

  • 리스너(Listener): 클라이언트 요청을 수신하는 프로세스(프로토콜/포트 지정)

  • 타겟 그룹(Target Group): 트래픽을 분산할 대상(EC2, 컨테이너, IP 등)을 그룹화

  • 헬스 체크: 등록된 대상의 상태를 주기적으로 확인, 비정상 대상은 트래픽에서 제외

 

4. ELB의 종류

Application Load Balancer (ALB)
-> 7계층이며, HTTP/HTTPS 트래픽, URL/호스트 기반 라우팅, 웹 애플리케이션에 적합

Network Load Balancer (NLB)
-> 4계층이며, TCP/UDP 트래픽, 초고성능, 초저지연, 고정 IP 지원, 네트워크 서비스에 적합

Gateway Load Balancer (GLB)
-> 3계층이며, 네트워크 어플라이언스(방화벽 등)와 통합, 투명 트래픽 처리

Classic Load Balancer (CLB)
-> 4/7 계층이며, 이전 세대, 단순 로드 밸런싱

 

ELB와 오토스케일링의 간단한 차이점

ELB (Elastic Load Balancer)

  • 역할: 트래픽을 여러 인스턴스에 자동으로 분산
  • 목적: 부하 분산, 가용성 향상, 단일 장애 지점 방지
  • 동작 방식: 들어오는 요청을 여러 서버에 고르게 분배
  • 주요 효과: 서버 과부하 방지, 서비스 안정성 확보
  • 함께 사용: Auto Scaling과 함께 쓰면 인스턴스 증감도 자동 반영

오토스케일링 (Auto Scaling)

  • 역할: 인스턴스 수를 자동으로 늘리거나 줄임
  • 목적: 수요 변화에 따라 리소스 자동 관리, 비용 최적화
  • 동작 방식: 트래픽/부하에 따라 EC2 인스턴스 자동 생성/종료
  • 주요 효과: 트래픽 급증/감소 대응, 장애 시 자동 복구
  • 함께 사용: ELB와 함께 쓰면 늘어난 인스턴스에도 트래픽 분산

 


2. 웹 서버에 대한 액세스 테스트

이 과정은 각 EC2 인스턴스(WebServer01, WebServer02)가 실제로 외부에서 HTTP(웹) 요청을 받아 웹 페이지를 정상적으로 제공하고 있는지 확인하기 위해 진행하였습니다.

이유와 목적

  • 웹 서버 정상 동작 확인
    EC2 인스턴스에 웹 서버(Apache, Nginx 등)가 제대로 설치되고 실행 중인지, 그리고 웹 페이지가 정상적으로 서비스되고 있는지 직접 브라우저로 접속해 확인하는 절차입니다.

  • 네트워크 및 보안 설정 검증
    퍼블릭 IP로 접속이 가능하다는 것은, 인스턴스의 네트워크(VPC, 서브넷, 라우팅)와 보안 그룹(방화벽) 설정이 HTTP(80번 포트) 트래픽을 허용하도록 올바르게 되어 있음을 의미합니다.

  • 실습 환경 검증:
    CloudFormation 등 자동화 도구로 인스턴스를 만들었을 때, 실제로 사용자가 외부에서 접근 가능한 환경이 제대로 구축됐는지 검증하는 단계입니다.

  • 문제 발생 시 원인 파악:
    만약 접속이 안 된다면, 웹 서버 미설치, 보안 그룹 미설정, 네트워크 문제 등 다양한 원인을 빠르게 진단할 수 있습니다.

 


3. Elastic Load Balancer 생성

1. 트래픽 분산 및 고가용성 확보

  • 여러 EC2 인스턴스(웹 서버)에 들어오는 트래픽을 자동으로 분산하여, 한 서버에 부하가 몰리지 않고 서비스가 안정적으로 동작하도록 하기 위해서입니다.

  • 로드 밸런서를 사용하면 특정 인스턴스에 장애가 발생해도, 정상 인스턴스로만 트래픽이 전달되어 서비스 중단 없이 운영할 수 있습니다.

2. 단일 진입점 제공

  • Network Load Balancer(NLB)는 클라이언트가 접속할 때 사용할 수 있는 단일 DNS 이름을 제공합니다.

  • 사용자는 여러 서버의 IP를 알 필요 없이, 로드 밸런서의 DNS만 알면 서비스에 접근할 수 있습니다.

3. 확장성과 유연성

  • 트래픽이 늘어나거나 줄어들 때, 인스턴스를 추가/제거해도 로드 밸런서가 자동으로 트래픽을 새 인스턴스에 분산하므로, 서비스 확장과 유지관리가 쉬워집

4. 상태 확인(Health Check) 및 장애 대응

  • 대상 그룹에 등록된 각 인스턴스의 상태를 주기적으로 확인(health check)하여, 비정상 인스턴스는 자동으로 트래픽 분산 대상에서 제외합니다.

  • 정상(healthy) 인스턴스만 서비스에 활용하므로, 장애 상황에 자동으로 대응할 수 있습니다.

 


4. 로드 밸런서 테스트


DNS ID로 들어감

1. 기본 기능 테스트

  • 목적: 생성한 Network Load Balancer(NLB)가 정상적으로 트래픽을 EC2 인스턴스에 분산하는지 확인하기 위해서입니다.
  • 설명: 로드 밸런서의 DNS 이름으로 접속해 웹 페이지가 정상적으로 표시되는지 확인함으로써, NLB가 EC2 인스턴스와 정상적으로 연결되어 트래픽을 전달하고 있음을 검증합니다

 

2. 교차 영역 로드 밸런싱(Cross-Zone Load Balancing) 테스트

  • 기능 개념- 교차 영역 로드 밸런싱은 여러 가용 영역(AZ)에 분산된 모든 인스턴스에 트래픽을 균등하게 분배하는 기능입니다.

  • 비활성화 시: 각 가용 영역의 로드 밸런서 노드는 해당 영역의 인스턴스에만 트래픽을 분배합니다.

  • 활성화 시: 모든 로드 밸런서 노드가 모든 가용 영역의 인스턴스에 트래픽을 고르게 분배합니다

 

5. 장애 시 로드 밸런서 테스트

  1. 고가용성 검증

목적

  • 특정 EC2 인스턴스에 장애(중지)가 발생했을 때, 로드 밸런서가 자동으로 트래픽을 정상 인스턴스로 전환하는지 확인하기 위함입니다.

설명

  • 인스턴스를 의도적으로 중지하면, 로드 밸런서의 헬스 체크(Health Check)가 비정상 상태를 감지합니다.

  • 로드 밸런서는 비정상 인스턴스를 트래픽 분산 대상에서 제외하고, 남은 정상 인스턴스에만 요청을 전달합니다.

  • 이를 통해 서비스가 단일 인스턴스 장애에도 중단되지 않고 지속될 수 있음을 확인합니다.

 

  1. 자동 복구 메커니즘 확인

목적

  • 장애가 해결된 인스턴스가 다시 정상화될 때, 로드 밸런서가 이를 자동으로 트래픽 분산 대상에 재포함시키는지 검증하기 위함입니다.

설명

  • 중지했던 인스턴스를 다시 시작하면, 로드 밸런서의 헬스 체크가 정상 상태로 변경된 것을 감지합니다.

  • 로드 밸런서는 해당 인스턴스를 다시 트래픽 분산 대상에 추가하여, 서버 자원을 효율적으로 활용합니다.

 

  1. 실제 운영 환경 대비

목적

  • 예기치 않은 서버 장애(하드웨어 문제, 소프트웨어 크래시 등)가 발생하거나 패치/업데이트를 위해 인스턴스를 일시적으로 중단해야 할 때, 로드 밸런서가 어떻게 대응하는지 실습합니다.

설명

  • 인프라의 내결함성(Fault Tolerance)을 직접 체험함으로써, 클라우드 환경에서 서비스 무중단 운영이 가능함을 이해합니다.

  • 인스턴스의 생명 주기(시작/중지)와 로드 밸런서의 동작을 연결해, 운영 중 발생할 수 있는 시나리오에 대비합니다.

profile

0개의 댓글