목차
Toggle[AWS 입문] 프론트엔드의 AWS 걸음마: AWS 로드 밸런서란? 트래픽 분산과 고가용성 이해하기
웹 프론트엔드 개발자의 AWS 입문기 입니다.
EC2에 이어서 로드밸런서란 무엇이고 어떤 역할을 하는지 정리해보았습니다.
그리고 EC2 인스턴스를 조정하는 상황별 예시를 추가해봤습니다.
AWS 입문 - 로드 밸런서 란 무엇일까?
AWS 로드 밸런서는 트래픽(사용자 요청)을 적절히 분산하는 도구입니다.
ex.) 하나의 사이트에 사용자가 몰리게 된다면 단일 서버가 모든 요청을 처리하기 힘듭니다.
이런 상황에서 로드 밸런서는 요청을 여러 서버(EC2 인스턴스)에 골고루 분배해서 각 서버가 과부하 없이 잘 작동하도록 도와줍니다.
+ 뿐만 아니라, 로드 밸런서는 서버의 상태를 실시간으로 점검(헬스 체크)하여 문제가 있는 서버를 제외하고 정상적인 서버에만 요청을 보내는 기능도 가지고 있습니다.
로드 밸런서를 사용하는 이유
- 서버 과부하 방지
한 서버에 모든 요청이 몰리면 서버가 다운될 가능성이 높아집니다. 로드 밸런서를 통해 요청을 여러 서버에 분산하면 이런 문제를 효과적으로 해결할 수 있습니다. - 무중단 운영 및 확장성
서비스를 중단하지 않고도 서버를 추가/제거할 수 있습니다.
트래픽이 많아지면 인스턴스를 늘리고, 트래픽이 줄면 다시 줄이는 식으로 유연하게 대처 가능합니다. - 보안 강화를 위한 SSL 인증서 관리
로드 밸런서는 SSL 인증서를 통해 HTTPS 보안을 제공하며, 중앙에서 인증서를 관리하여 서버 간 복잡성을 줄일 수 있습니다.
로드 밸런서의 핵심 역할
- 트래픽 분산: 들어오는 트래픽을 여러 서버에 골고루 나눠줍니다. 이를 통해 서버가 과부하로 다운되는 것을 방지하고 모든 요청이 빠르고 안정적으로 처리되도록 돕습니다.
- 장애/부하 핸들링: 만약 서버 중 하나가 장애를 일으키거나 트래픽이 몰려서 느려진다면?
로드 밸런서는 이를 감지하고 문제가 없는 다른 서버로 요청을 보내 안정성을 유지합니다. - 고가용성 확보: 서버가 고장/점검 중 이어도 다른 서버로 요청을 분산해 서비스 중단을 최소화 할 수 있습니다.
- 인스턴스 헬스 체크: 서버(EC2 인스턴스)의 상태를 주기적으로 점검합니다.
고가용성이란?
서비스가 멈추지 않고 언제나 사용 가능하도록 만드는 것을 말합니다.
AWS 로드 밸런서 작동 방식
로드 밸런서는 사용자가 요청을 보낼 때 중앙에서 요청을 받고
-> 이 요청을 적절한 서버로 분산합니다. (서버의 상태를 실시간으로 확인해 문제가 있는 서버는 제외)
Public vs Private 트래픽 관리
- Public 로드 밸런서: 외부에서 접근할 수 있는 요청을 처리.
예) 사용자가 브라우저에서 웹사이트를 열 때 Public 로드 밸런서를 통해 서버에 요청이 전달 도비니다. - Private 로드 밸런서: 외부 접근 X. 내부 네트워크에서만 요청 처리.
예) 내부에서 실행되는 데이터베이스 요청이나 사내 시스템 같은 경우에 사용됩니다.
EC2 인스턴스를 조정하는 상황별 예시 (3가지)
1. 애플리케이션 처리량이 증가하는 상황
- 상황: 하나의 애플리케이션이 처리해야 할 작업이 복잡해지고, 단일 작업당 리로스 소모량이 늘어나는 경우.
- 조치: 인스턴스의 크기(Tier) 업그레이드
더 많은 CPU, 메모리, 네트워크 대역폭을 제공하는 상위 타입의 인스턴스로 전환. - 이유: 단일 요청이 많은 리소스를 요구하기 때문에 여러 인스턴스를 띄워도 각 인스턴스가 처리에 실패할 가능성이 큼.
한 인스턴스에서 충분히 큰 리소스를 제공하여 작업을 안정적으로 처리하는 것이 적합.
2. 대량의 사용자 요청이 동시에 발생하는 상황
- 상황: 짧은 시간 동안 사용자 요청(트래픽)이 폭발적으로 증가하는 경우. (예 온라인 쇼핑몰의 이벤트 기간)
- 조치: Auto Scaling 그룹을 사용해 인스턴스 수를 자동으로 늘림. 트래픽이 증가할 때 여러 작은 인스턴스를 추가 배포.
- 이유: 요청당 리소스 소모량이 크지 않은 경우, 작은 인스턴스 여러 개로 수평적으로 확장하는 방식이 비용 효율적. Auto Scaling은 필요하지 않을 때 자동으로 인스턴스를 줄여 비용을 절약할 수 있음.
3. 특정 작업에 대해 짧은 시간 동안 높은 성능이 필요한 상황
- 상황: 데이터 분석작업, 동영상 렌더링처럼 특정 시간대에만 높은 성능이 필요한 경우.
- 조치:
- 스팟 인스턴스(Spot Instance) 사용: 짧은 시간 동안 임시로 높은 리소스를 제공.
- Burstable Performance Instance 사용: 짧은 시간 동안 CPU 성능이 급증하도록 설계된 인스턴스 활용.
- 이유: 특정 시간대에만 리소스를 사용하는 작업은 스팟 인스턴스로 비요을 절약할 수 있음.
작업 종료 후 인스턴스를 종료해 필요 없는 리소스 사용을 최소화 할 수 있음.
정리
- 작업당 리소스 요구 크다? -> 티어 업그레이드
- 사용자 요청 급증? -> Auto Scaling으로 인스턴스 수 확장
- 짧은 시간 동안 고성능? -> 스팟 인스턴스 또는 Burstable 인스턴스 사용



