Programming

[AWS, Certified Developer Associate] ASG

ASG (Auto Scaling Group)

  • AWS에서 EC2 인스턴스 생성 API 호출을 통해 빠르게 서버를 생성하고 제거 가능
  • 이를 자동화하는 기능
  • ASG 목표
    • 스케일 아웃 (EC2 인스턴스 추가)을 통한 증가된 부하 감당
    • 스케일 인 (EC2 인스턴스 제거)를 통한 감소된 부하에 대해 자원 세이브
    • 최소/최대 EC2 인스턴스 개수 설정 가능
    • 새로운 EC2 인스턴스를 LB에 자동으로 등록 가능
    • 비정상적인 EC2 인스턴스를 새로운 EC2 인스턴스로 교체 가능
  • 무료
  • CloudWatch와 연동하여 스케일링 가능
    • ex) CloudWatch에서 평균 CPU Utilization이 특정 값을 넘어 경보가 전달되면 EC2 인스턴스 추가

 

스케일링 정책

  • 동적 스케일링 정책 (Dynamic Scaling Policies)
    • Target Tracking Scaling
      • 단순, 설정 쉬움
      • ex) 모든 ASG의 EC2 인스턴스의 평균 CPU 사용률이 40%가 되도록 정책 설정
    • Simple / Step Scaling
      • CloudWatch 경보 설정
      • ex) 전체 ASG에 대한 CPU 사용률이 70%를 초과하는 알림 발생 시 EC2 2개 추가
      • ex) 전체 ASG에 대한 CPU 사용률이 30% 미만인 알림 발생 시 EC2 1개 제거
      • 한번에 추가/제거 될 unit 수를 정해야함
    • Scheduled Action
      • 사용패턴을 바탕으로 스케일링 예상
      • ex) 매주 금요일 오후 5시 이벤트에 대비해 매주 금요일 오후 5시마다 자동으로 EC2 10개 추가
      • 스케일링의 필요를 미리 알고 있을 때 예약된 작업 설정
  • 예측 스케일링 (Predictive Scaling)
    • 부하를 보고 다음 스케일링을 예측
    • 시간에 걸쳐 과거 부하를 분석, 예측 데이터 생성
    • 해당 예측을 머신러닝 기반으로 사전 스케일링 작업이 예약
    • 예측 지표
      • CPU 사용률 (CPUUtilization)
      • 대상 별 요청 수 (RequestCountPerTarget)
        • EC2는 하나 타겟 당 1000개 요청까지만 stable하게 작동
      • 평균 네트워크 I/O (애플리케이션이 네트워크 위주인 경우 유용)
      • 커스텀 지표 (CloudWatch 등)
  • Scaling Cooldowns (스케일링 휴지)
    • 새로운 인스턴스의 안정화 및 새로운 지표의 생성 및 분석을 위해 스케일링 작업 이후 특정 시간동안 추가/삭제를 하지 않는 것
    • AMI를 통해 구성 시간을 단축해 요청을 신속히 처리하는 것이 좋음
      • 즉시 적용이 가능하므로 휴지시간이 짧아져 더 많은 동적 스케일링 가능
      • 지표에 대한 빠른 업데이트를 통해 예측 스케일링의 적중률 증대
  • Instance Refresh (인스턴스 새로고침)
    • 새로 업데이트 한 launch template을 모든 EC2에 적용하기 위해 모든 EC2를 새로 띄워야 하는 상황에서 유용
    • 점진적으로 기존 EC2를 제거하고 New Launch Template을 적용한 EC2를 띄우는 방식

 


Reference

Udemy - AWS Certified Developer Associate 시험 합격을 위한 모든 것!