ELB(Elastic Load Balancing), ASG(Auto Scaling Group)

도은호·2025년 10월 7일
0

AWS SAA

목록 보기
16/46

1) Elastic Load Balancing 개요

  • 역할: 다수 Target(EC2, IP, Lambda 등)으로 트래픽을 분산하고 Health Check로 비정상 Target은 제외.

  • 종류

    • Application Load Balancer (ALB): L7(HTTP/HTTPS). Host/Path/Header/Query 기반 라우팅, OIDC/Cognito Auth, WAF 연동, HTTP/2, gRPC 지원.
    • Network Load Balancer (NLB): L4(TCP/UDP/TLS). 초저지연·고성능, Static IP/Elastic IP per AZ, TLS Pass-through/Termination.
    • Gateway Load Balancer (GWLB): L3/L4 가상 어플라이언스(방화벽/IDS 등)용. GENEVE(6081) 캡슐화 + GWLB Endpoint.

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) 자주 쓰는 기능 포인트

  • Cross-Zone Load Balancing

    • ALB: 기본적으로 AZ 간 균등 분산(비용 X).
    • NLB: 옵션(활성화 시 AZ 간 트래픽 분산, 과금/설정 주의).
  • Stickiness

    • ALB: LB Cookie 기반(세션 유착). 간단한 상태 유지 웹에 유용.
    • NLB: Connection 기반 특성상 일반적 Stickiness는 ALB만큼 유연하지 않음(설정/시나리오 확인).
  • Access Logs / Metrics

    • S3 Access Logs, CloudWatch Metrics/Alarms로 관측.
  • 보안

    • ALBSecurity Group 적용.
    • TLS: ACM 인증서로 HTTPS/TLS Termination(ALB/NLB).

4) ELB ↔ ASG 연동 흐름

  1. ASGLaunch Template(AMI, Instance Type, Security Group, UserData 등)로 Target 인스턴스 자동 생성.
  2. ASGTarget Group 등록(등록/해제는 헬스 상태에 따라 자동).
  3. ELB(주로 ALB/NLB)는 Target Group의 Healthy 대상에게만 트래픽 전달.
  4. 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 UpdateLaunch 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) 장애/배포 시나리오 체크

  • Deregistration Delay(기본 300s): Scale-in/배포 시 연결 드레이닝을 기다린 뒤 Target 해제.

  • Blue/Green / Canary

    • ALB Weighted Target Group으로 새 버전에 일부 트래픽만 전환(점진 배포).
    • 실패 시 Listener Rule 가중치 롤백.
  • 헬스 멀티 계층

    • ELB Health Check(L7/L4) + 애플리케이션 내부 Health(예: /healthz).

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무중단 전환까지 챙긴다.
profile
`•.¸¸.•´´¯`••._.• 🎀 𝒸𝓇𝒶𝓏𝓎 𝓅𝓈𝓎𝒸𝒽💞𝓅𝒶𝓉𝒽 🎀 •._.••`¯´´•.¸¸.•`

0개의 댓글