1) Elastic Load Balancing 개요
2) Listener / Rule / Target Group
-
Listener: Port/Protocol(예: 80/HTTP, 443/HTTPS)을 수신.
-
Rules(ALB): 조건(Host/Path/Header/Query/Method) → Forward/Redirect/Fixed-response 액션.
-
Target Group
- Target type: Instance / IP / Lambda(ALB). (NLB는 Instance/IP 주로)
- Health Check: Protocol/Path/Port/Interval/Threshold. HTTP 200–399을 성공으로 간주(설정 가능).
- Attributes: Deregistration delay(연결 드레이닝), Stickiness(ALB Cookie).
3) 자주 쓰는 기능 포인트
4) ELB ↔ ASG 연동 흐름
- ASG가 Launch Template(AMI, Instance Type, Security Group, UserData 등)로 Target 인스턴스 자동 생성.
- ASG가 Target Group 등록(등록/해제는 헬스 상태에 따라 자동).
- ELB(주로 ALB/NLB)는 Target Group의 Healthy 대상에게만 트래픽 전달.
- Scale-out/Scale-in 시 ASG가 인스턴스를 추가/제거하고, ELB는 Health Check & Deregistration Delay로 안전 전환.
Client → (Route 53 Alias) → ALB/NLB Listener → Target Group → EC2(ASG)
5) Auto Scaling Group (ASG) 핵심
- Desired / Min / Max Capacity: 원하는 인스턴스 수를 자동 유지.
- Launch Template(권장) / Launch Configuration(레거시).
- Subnet(여러 AZ) 지정: 다중 AZ로 분산되어 내결함성↑.
- Health Check: EC2 또는 ELB 선택. ELB Health를 쓰면 실제 서비스 상태 기준으로 교체가 더 정확.
- Termination Policy: AZ 균형을 우선하며 가장 오래된 인스턴스/템플릿 기반 등 규칙을 적용(기본 정책 사용이 일반적).
6) Scaling 정책
- Target Tracking Scaling(권장): 지표(예: ALB RequestCountPerTarget, CPUUtilization)를 목표 값으로 자동 추종.
- Step Scaling: 임계값 초과 정도에 따라 단계적으로 증감.
- Simple/Scheduled Scaling: 정해진 시간대 증감(예약 스케일링).
- Predictive Scaling(선택): 패턴 학습 기반 선제 확장.
Cooldown / Warm-up 조정으로 급격한 진동(Ping-Pong) 방지.
7) 운영 기능(현업에서 자주 쓰는 것)
- Instance Refresh: Rolling Update로 Launch Template 변경분(AMI 패치 등)을 무중단 교체.
- Mixed Instances Policy: 여러 Instance Type + On-Demand/Spot 믹스로 비용/가용성 최적화.
- Capacity Rebalance: Spot 회수 신호 시 미리 보충.
- Instance Protection: Scale-in에서 특정 인스턴스 보호.
- Warm Pools: 예열된 인스턴스를 풀에 유지 → 급격한 Scale-out 지연 감소.
- Lifecycle Hooks: Launching/Terminating 단계에서 초기화/드레인 스크립트 실행(예: NLB/ALB에서 Connection Drain 후 종료).
8) 패턴별 설계 팁
-
ALB + ASG(웹/앱 계층 표준)
- Listener Rule로 /api, /admin 등 경로 분리.
- Target Group Stickiness는 필요할 때만(수평 확장에 지장 가능).
- ELB Health Check + ASG Instance Refresh로 안전 배포.
-
NLB + ASG(저지연/고성능/비HTTP)
- Static IP/EIP per AZ 필요, Cross-Zone 옵션은 비용/경로 고려.
- L4 Health Check(간단) → 애플리케이션 레벨 Health는 별도 경량 Endpoint 구성.
-
GWLB + ASG(가상 어플라이언스)
- GWLB Endpoint를 트래픽 경로에 배치, ASG로 어플라이언스 수평 확장.
- Lifecycle Hook으로 정책/시그니처 업데이트 후 등록.
9) 장애/배포 시나리오 체크
10) 시험/인터뷰 포인트 (암기)
- ALB = L7 라우팅(Host/Path/Rule), WAF/OIDC 연동
- NLB = L4 초저지연, Static IP, TLS Termination/Pass-through
- GWLB = GENEVE + 어플라이언스 인서트, GWLBE
- ASG = Desired/Min/Max, Target Tracking Scaling, Instance Refresh, Mixed Instances Policy
- ELB Health Check + Deregistration Delay로 안전한 Scale-in/배포
요약
- ELB로 트래픽을 올바른 Target에 안전하게 분산하고,
- ASG로 원하는 용량을 자동 유지하며 정교한 스케일링/배포를 수행,
- Target Group Health/Deregistration Delay로 무중단 전환까지 챙긴다.