728x90
반응형




Auto Scaling Group (ASG)

  • Auto Scaling Group (ASG) : 트래픽의 변동에 따라 자동으로 AWS API를 호출하여 EC2 인스턴스를 늘리거나 줄여주는 기능 (자동 Scale out/in)


  • 특징

  1. 매개변수를 통해 EC2 인스턴스의 최대/최소/희망 갯수를 조절할 수 있음
  2. ASG를 Load Balancer와 연결할 경우, ASG내의 인스턴스가 추가될 때 자동으로 Load Balancer와 연결됨
  3. ASG내 특정 인스턴스의 상태가 비정상일 경우, 해당 인스턴스를 종료하고 새로운 인스턴스를 생성함 (희망갯수 유지)
  4. ASG is free
  5. scale out/in 시, 희망갯수는 최대/최소 갯수 내에서 설정됨
  6. ELB가 비정상이라고 판단하는 인스턴스가 ASG내에 있을 경우, ASG는 해당 인스턴스를 자동으로 종료하고 새로운 인스턴스를 생성
  7. Launch Template : EC2 인스턴스를 시작하는 방법에 대한 정보가 포함되어 있음
    • AMI
    • Instance Type
    • EC2 User Data
    • EBS Volumes
    • Security Groups
    • SSH key pair
    • IAM Roles for your EC2 Instances
    • Network + Subnets Information
    • Load Balancer Information
    • etc...
  8. Scaling 정책 정의 필요
    • CloudWatch : 모니터링 지표(metric, CPU사용량 등)을 기반으로 Alarm을 울리는 기능 -> CloudWatch Alarm 기반으로 scale out/in을 수행할 수 있음 -> Alarm기반 Scaling 정책


  • Capacity




  • Load Balancer + ASG is good




  • Dynamic Scaling Policies
  1. Target Tracking Scaling
    • CloudWatch를 생성할 수 있음
    • case : EC2 인스턴스의 CPU사용량을 추적하여 수치가 40%에 머무를 수 있도록 조정 (기준치 설정 필요)
  2. Simple/Step Scaling
    • 기생성된 CloudWatch 활용
    • case 1 : CloudWatch Alarm을 설정하고 전체 ASG의 CPU사용량이 70%를 초과하는 경우, 인스턴스 두개 추가
    • case 2 : CloudWatch Alarm을 설정하고 전체 ASG의 CPU사용량이 30%를 미달하는 경우, 인스턴스 한개 삭제
    • CloudWatch 설정 시, 인스턴스를 몇개 추가하고 삭제할 것인지에 대한 설정 필요
    • Step Scaling : 다수의 경보 값을 기준으로 여러 Scaling Step을 진행하도록 할 수 있음


  • Scheduled Actions

    • 사용자 트래픽 증감의 예측이 가능할 때
    • case : 금요일 오후 5시에 큰 이벤트가 예정되어 있으니 많은 사람들의 사용을 대비하여 ASG의 최소용량을 매주 금요일 오후 5시마다 자동으로 10으로 늘려줌 -> Scaling 작업을 예약


  • Predictive Scaling

    • AWS내 Auto Scaling 서비스를 활용하여 지속적으로 트래픽 이력을 생성
    • 머신러닝 기반
    • 생성된 트래픽 이력을 보고 다음 트래픽을 예측하여 Scaling 진행 -> 자동 Scaling 작업 예약


  • Scaling을 위한 Metics

  1. CPU 사용량
  2. 타겟당 요청 수 (Request Count per Target)
  3. 평균 네트워크 입출력량 (Average Network In/Out) -> 네트워크에 연결되어 있는 상태에서 네트워크 병목을 방지를 위함
  4. Any Custom Metrics (CloudWatch 활용)


  • Request Count per Target




  • Scaling Cooldown : 스케일링 작업이 끝날 때마다 기본적으로 5분 or 300초의 Cooldown 시간을 갖는 기능
  1. 인스턴스의 안정적인 생성과 새롭게 기록되는 지표(metric)들의 양상을 정확하게 확인하기 위함
  2. Cooldown 시간 동안에는 ASG가 인스턴스를 생성하거나 종료시킬 수 없음
  3. 인스턴스 구성 시간을 단축시킬 수 있는 AMI를 활용하여 인스턴스를 보다 빠르게 생성하여 요청을 받을 수 있는 상태로 만드는 것이 좋음 -> 별도 cooldown 시간을 단축시킬 수 있음 -> ASG상의 더 많은 Scaling 작업을 진행할 수 있음


  • stress amazone linux2 설치를 통해 임의로 인스턴스의 CPU사용량을 늘릴 수 있음
반응형

'개발 > AWS' 카테고리의 다른 글

[AWS] Route 53  (0) 2024.05.18
[AWS] Amazon RDS/Aurora/ElastiCache  (1) 2024.05.10
[AWS] Load Balancer  (0) 2024.05.06
[AWS] EC2 (3)  (0) 2024.05.03
[AWS] EC2 (2)  (1) 2024.04.30

+ Recent posts