[AWS 입문] 프론트엔드의 AWS 걸음마: AWS 로드 밸런서란? 트래픽 분산과 고가용성 이해하기

웹 프론트엔드 개발자의 AWS 입문기 입니다.
EC2에 이어서 로드밸런서란 무엇이고 어떤 역할을 하는지 정리해보았습니다.
그리고 EC2 인스턴스를 조정하는 상황별 예시를 추가해봤습니다.

AWS 입문 - 로드 밸런서 란 무엇일까?

AWS 로드 밸런서는 트래픽(사용자 요청)을 적절히 분산하는 도구입니다.

ex.) 하나의 사이트에 사용자가 몰리게 된다면 단일 서버가 모든 요청을 처리하기 힘듭니다.
이런 상황에서 로드 밸런서는 요청을 여러 서버(EC2 인스턴스)에 골고루 분배해서 각 서버가 과부하 없이 잘 작동하도록 도와줍니다.

+ 뿐만 아니라, 로드 밸런서는 서버의 상태를 실시간으로 점검(헬스 체크)하여 문제가 있는 서버를 제외하고 정상적인 서버에만 요청을 보내는 기능도 가지고 있습니다.

로드 밸런서를 사용하는 이유

  1. 서버 과부하 방지
    한 서버에 모든 요청이 몰리면 서버가 다운될 가능성이 높아집니다. 로드 밸런서를 통해 요청을 여러 서버에 분산하면 이런 문제를 효과적으로 해결할 수 있습니다.
  2. 무중단 운영 및 확장성
    서비스를 중단하지 않고도 서버를 추가/제거할 수 있습니다.
    트래픽이 많아지면 인스턴스를 늘리고, 트래픽이 줄면 다시 줄이는 식으로 유연하게 대처 가능합니다.
  3. 보안 강화를 위한 SSL 인증서 관리
    로드 밸런서는 SSL 인증서를 통해 HTTPS 보안을 제공하며, 중앙에서 인증서를 관리하여 서버 간 복잡성을 줄일 수 있습니다.

로드 밸런서의 핵심 역할

  1. 트래픽 분산: 들어오는 트래픽을 여러 서버에 골고루 나눠줍니다. 이를 통해 서버가 과부하로 다운되는 것을 방지하고 모든 요청이 빠르고 안정적으로 처리되도록 돕습니다.
  2. 장애/부하 핸들링: 만약 서버 중 하나가 장애를 일으키거나 트래픽이 몰려서 느려진다면?
    로드 밸런서는 이를 감지하고 문제가 없는 다른 서버로 요청을 보내 안정성을 유지합니다.
  3. 고가용성 확보: 서버가 고장/점검 중 이어도 다른 서버로 요청을 분산해 서비스 중단을 최소화 할 수 있습니다.
  4. 인스턴스 헬스 체크: 서버(EC2 인스턴스)의 상태를 주기적으로 점검합니다.

고가용성이란?

서비스가 멈추지 않고 언제나 사용 가능하도록 만드는 것을 말합니다.

AWS 로드 밸런서 작동 방식

로드 밸런서는 사용자가 요청을 보낼 때 중앙에서 요청을 받고
-> 이 요청을 적절한 서버로 분산합니다. (서버의 상태를 실시간으로 확인해 문제가 있는 서버는 제외)

AWS 입문 - 로드밸런서

Public vs Private 트래픽 관리

  1. Public 로드 밸런서: 외부에서 접근할 수 있는 요청을 처리.
    예) 사용자가 브라우저에서 웹사이트를 열 때 Public 로드 밸런서를 통해 서버에 요청이 전달 도비니다.
  2. Private 로드 밸런서: 외부 접근 X. 내부 네트워크에서만 요청 처리.
    예) 내부에서 실행되는 데이터베이스 요청이나 사내 시스템 같은 경우에 사용됩니다.

EC2 인스턴스를 조정하는 상황별 예시 (3가지)

1. 애플리케이션 처리량이 증가하는 상황

  • 상황: 하나의 애플리케이션이 처리해야 할 작업이 복잡해지고, 단일 작업당 리로스 소모량이 늘어나는 경우.
  • 조치: 인스턴스의 크기(Tier) 업그레이드
    더 많은 CPU, 메모리, 네트워크 대역폭을 제공하는 상위 타입의 인스턴스로 전환.
  • 이유: 단일 요청이 많은 리소스를 요구하기 때문에 여러 인스턴스를 띄워도 각 인스턴스가 처리에 실패할 가능성이 큼.
    한 인스턴스에서 충분히 큰 리소스를 제공하여 작업을 안정적으로 처리하는 것이 적합.
2. 대량의 사용자 요청이 동시에 발생하는 상황
  • 상황: 짧은 시간 동안 사용자 요청(트래픽)이 폭발적으로 증가하는 경우. (예 온라인 쇼핑몰의 이벤트 기간)
  • 조치: Auto Scaling 그룹을 사용해 인스턴스 수를 자동으로 늘림. 트래픽이 증가할 때 여러 작은 인스턴스를 추가 배포.
  • 이유: 요청당 리소스 소모량이 크지 않은 경우, 작은 인스턴스 여러 개로 수평적으로 확장하는 방식이 비용 효율적. Auto Scaling은 필요하지 않을 때 자동으로 인스턴스를 줄여 비용을 절약할 수 있음.

3. 특정 작업에 대해 짧은 시간 동안 높은 성능이 필요한 상황

  • 상황: 데이터 분석작업, 동영상 렌더링처럼 특정 시간대에만 높은 성능이 필요한 경우.
  • 조치: 
    • 스팟 인스턴스(Spot Instance) 사용: 짧은 시간 동안 임시로 높은 리소스를 제공.
    • Burstable Performance Instance 사용: 짧은 시간 동안 CPU 성능이 급증하도록 설계된 인스턴스 활용.
  • 이유: 특정 시간대에만 리소스를 사용하는 작업은 스팟 인스턴스로 비요을 절약할 수 있음.
    작업 종료 후 인스턴스를 종료해 필요 없는 리소스 사용을 최소화 할 수 있음.

정리

  1. 작업당 리소스 요구 크다? -> 티어 업그레이드
  2. 사용자 요청 급증? -> Auto Scaling으로 인스턴스 수 확장
  3. 짧은 시간 동안 고성능? -> 스팟 인스턴스 또는 Burstable 인스턴스 사용

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Scroll to Top