AWS ELB & ASG — 고가용성과 확장성
클라우드 인프라를 설계할 때 가장 자주 마주치는 과제 중 하나는 트래픽 변동에 안정적으로 대응하는 것입니다. AWS는 이를 위해 Elastic Load Balancer(ELB)와 Auto Scaling Group(ASG)을 제공하며, 두 서비스를 결합하면 고가용성과 자동 확장성을 동시에 달성할 수 있습니다. CLF-C02 시험에서도 이 두 서비스의 유형과 동작 방식이 자주 출제됩니다.
---
확장성, 탄력성, 고가용성의 차이
세 용어는 서로 밀접하게 연관되어 있지만 의미가 다릅니다. 시험에서는 각각의 정의를 구분할 수 있어야 합니다.
| 용어 | 정의 | 핵심 특징 | |------|------|-----------| | 확장성 (Scalability) | 부하 증가에 따라 시스템 용량을 늘리거나 줄이는 능력 | 필요할 때 용량을 조정한다 | | 탄력성 (Elasticity) | 실시간 부하에 따라 자원을 자동으로 조정하는 능력 | 자동화된 확장성 | | 민첩성 (Agility) | 변화하는 요구에 빠르게 자원을 배포·관리하는 능력 | 빠른 자원 준비 |
탄력성은 확장성의 자동화된 형태입니다. ASG가 탄력성의 대표적인 사례이며, 트래픽 변화에 따라 인스턴스 수를 자동으로 조정합니다.
---
수직 확장과 수평 확장
확장 방식은 크게 두 가지로 나뉩니다. 어떤 방식이 어떤 상황에 적합한지 이해하는 것이 중요합니다.
수직 확장 (Vertical Scaling) — Scale Up/Down
단일 인스턴스의 크기를 키우는 방식입니다. 예를 들어 에서 로 업그레이드하는 것이 해당합니다. 데이터베이스처럼 분산이 어려운 서비스에 주로 사용되지만, 하드웨어 한계로 인해 무한 확장은 불가능합니다.
수평 확장 (Horizontal Scaling) — Scale Out/In
인스턴스 수를 늘리는 방식입니다. 서버 1대에서 10대로 늘리는 식입니다. Auto Scaling Group(ASG)과 Elastic Load Balancer(ELB)를 조합하여 구현하며, 분산 시스템에 적합하고 이론적으로 무한 확장이 가능합니다.
고가용성 (High Availability)
고가용성은 다중 AZ(Multi-AZ)에 인스턴스를 배포하여 장애가 발생해도 서비스가 중단되지 않도록 하는 설계 원칙입니다. 수평 확장과 함께 적용하는 것이 일반적입니다.
시험에서 자주 혼동되는 개념을 정리하면 다음과 같습니다.
수직 확장 = Scale Up/Down (인스턴스 크기 변경) 수평 확장 = Scale Out/In (인스턴스 수 변경) 고가용성 = Multi-AZ 배포
---
로드 밸런서란 무엇인가
로드 밸런서는 들어오는 트래픽을 여러 EC2 인스턴스에 균등하게 분산시켜 단일 서버의 과부하를 방지하는 장치입니다.
로드 밸런서를 사용하면 얻을 수 있는 주요 이점은 다음과 같습니다.
단일 서버 과부하 방지 장애 발생 시 자동으로 정상 인스턴스로 트래픽 전환 인스턴스 헬스 체크 자동 수행 SSL 종료(HTTPS) 처리
AWS Elastic Load Balancer(ELB)는 AWS가 완전 관리하는 로드 밸런서 서비스입니다. 업그레이드, 유지보수, 고가용성 확보를 AWS가 담당하므로 별도 서버를 운영할 필요가 없습니다.
---
ELB의 세 가지 유형
ELB는 세 가지 유형으로 제공됩니다. 각 유형의 동작 계층과 프로토콜, 적합한 사용 사례를 구분하는 것이 중요합니다.
| 유형 | 계층 | 프로토콜 | 주요 특징 | |------|------|---------|----------| | ALB (Application Load Balancer) | 7계층 (애플리케이션) | HTTP, HTTPS | URL 경로/호스트 기반 라우팅, 마이크로서비스에 적합 | | NLB (Network Load Balancer) | 4계층 (전송) | TCP, UDP | 초고성능, 낮은 지연시간, 초당 수백만 요청 처리 | | CLB (Classic Load Balancer) | 4/7계층 | HTTP, HTTPS, TCP | 레거시 — 신규 사용 비권장 |
선택 기준은 다음과 같습니다.
HTTP/HTTPS 트래픽에는 ALB(Layer 7)를 사용합니다. 고성능 TCP/UDP 트래픽에는 NLB(Layer 4)를 사용합니다. CLB는 점차 사용 중단되고 있으므로 신규 워크로드에는 권장되지 않습니다.
---
Auto Scaling Group(ASG)란 무엇인가
ASG는 부하에 따라 EC2 인스턴스 수를 자동으로 조절하는 서비스입니다. ELB와 통합하여 신규 인스턴스를 로드 밸런서에 자동으로 등록하고, 헬스 체크 실패 시 비정상 인스턴스를 자동으로 교체합니다.
ASG의 핵심 기능은 다음과 같습니다.
| 기능 | 설명 | |------|------| | 스케일 아웃 | 부하 증가 시 인스턴스 추가 | | 스케일 인 | 부하 감소 시 인스턴스 제거 | | 최소/최대 수 설정 | 항상 일정 범위의 인스턴스 수 유지 | | 로드 밸런서 자동 등록 | 신규 인스턴스를 ELB에 자동 연결 | | 비정상 인스턴스 교체 | 헬스 체크 실패 시 자동 교체 | | 비용 최적화 | 필요한 만큼만 실행하여 과잉 프로비저닝 방지 |
ASG 스케일링 전략 네 가지
수동 스케일링 (Manual Scaling)
관리자가 직접 인스턴스 수를 지정합니다. 트래픽 패턴이 명확히 예측되지 않거나 일시적인 조정이 필요할 때 사용합니다.
동적 스케일링 (Dynamic Scaling)
CloudWatch 알람을 기반으로 자동 조정합니다. 단순/단계 스케일링은 CPU 사용률이 70%를 초과하면 인스턴스 2개를 추가하고 30% 미만이면 1개를 제거하는 방식입니다. 대상 추적 스케일링은 평균 CPU를 40%로 유지하도록 자동으로 인스턴스 수를 조정합니다.
예약 스케일링 (Scheduled Scaling)
예측 가능한 트래픽 패턴에 맞춰 사전에 스케일링을 예약합니다. 예를 들어 매주 금요일 오후 5시에 최소 인스턴스 수를 10개로 늘리도록 설정할 수 있습니다.
예측 스케일링 (Predictive Scaling)
머신러닝(ML)을 활용해 과거 트래픽 패턴을 분석하고 미래 수요를 예측하여 선제적으로 스케일링합니다. 시험에서 "ML 기반 선제적 스케일링"이라는 설명이 나오면 예측 스케일링을 가리킵니다.
---
ELB와 ASG를 함께 사용하기
ELB와 ASG를 결합하면 완전 자동화된 고가용성 아키텍처를 구성할 수 있습니다. 트래픽이 증가하면 ASG가 인스턴스를 추가하고, ELB는 새 인스턴스를 자동으로 등록하여 트래픽을 분산합니다. 인스턴스에 장애가 발생하면 ELB가 트래픽을 정상 인스턴스로 전환하고, ASG가 비정상 인스턴스를 새 인스턴스로 교체합니다.
이 조합은 AWS 클라우드 아키텍처의 핵심 패턴이며, 비용 효율성과 안정성을 동시에 달성하는 표준 설계입니다.