여기 정리하는 내용들은 Udemy 강의를 통해 배운 내용들을 정리하였습니다.
출처 - Udemy AWS Certified Developer Associate 2022 - New!


load의 증가 또는 감소 따라 EC2 instance를 더하거나 빼는 서비스입니다.
Scale out/in 이라고 표현합니다.
이때, 최소량과 최대량을 지정해주어야 합니다. 그리고, 감사하게도 새로운 Instance는 자동으로 load balancer에 등록된다고 하네요.


Attributes

  • launch configuration
    • AMI + Instance Type
    • EC2 User Data
    • EBS Volume
    • Security Group
    • SSH Key Pair
  • Min / Max Size
  • Initial Capacity
  • Network + Subnets Information
  • Define Load Balancer Information
  • Scaling Policies (무엇이 Trigger가 되어 Scale out/in 되는지 정해줍니다.)


Auto Scaling Alarms

기본적으로 CloudWatch alarms에 의해 scale 됩니다.


Auto Scaling New Rules

EC2에서 직접적으로 관여하는 Auto Scaling Rules를 만들 수 있습니다.

  • Target Average CPU Usage
  • Number of requests on the ELB
  • Average Network In/Out


Auto Scaling Custom Metric

Custom Metric에 의해 Scale 될 수 있습니다.


ASG 추가 정보

  • 무료입니다. Underlying resource 에 대해서는 비용 지불
  • instance 가 unhealthy 되면 ASG가 자동으로 그 instance를 terminate하고 새로운 instance로 대체합니다.
  • 어떤 이유로든 instance가 terminated 되면 새로운 instance를 만들어서 대체합니다.
  • IAM roles가 적용된 ASG는 같은 roles를 EC2에 자동으로 적용합니다.


Automatic Scaling Policies

  1. Dynamic Scaling Policies
    • Target Tracking Scaling
    • 가장 간단하고 쉬운 셋업입니다.
      - Simple / Step Scaling
    • CloudWatch alarm 이 CPU 사용 범위를 벗어날때 unit 생성/제거
      - Scheduled Action
    • 이용 패턴에 따른 scaling policy
    • 특정 시간/시기에 필요한 만큼의 최소 capacity 를 정할 수 있다.


  1. Predictive Scaling
    과거 load를 분석하고 예측하여 미리 Schedule scaling actions를 하는 policy (머신러닝 기반의 policy 입니다.)

  2. Scale에 효과적인 metrics
    • CPUUtilization : CPU 평균 사용량
    • RequestCountPerTarget : Target에 들어가는 traffic의 일정한 분배
    • Average Network In/Out : 네트워크에서…
    • Any custom metric : CloudWatch 사용 권장
  3. Scaling Cooldowns
    • Scale out/in이 이루어졌을 때 metrics가 안정적으로 실행되게 하기 위해 ASG이 instances를 launch/terminate 하지 않게 하는 시간 (default 300 seconds)

      ready-to-use AMI를 사용하기를 권장합니다.
      더 빠른 serving request와 cooldown period를 줄이기 위한 configuration time 을 줄일 수 있습니다.


Auto Scaling 의 CPU 사용량으로 실험해보고 싶다면 Linux stress 명령어를 사용해봅시다. ()

sudo amazon-linux-extras install epel -y
sudo yum install stress -y  # stress  install

# stress 명령어 설명
stress --help

stress -c 4  # 4개의 프로세스를 만들어 CPU 100% 사용


NEXT

다음 포스트에서는 RDS, Aurora, ElastiCache에 대한 포스팅을 시작하려고 합니다.
부족한 글 도움이 되셨길 바랍니다.
문제가 있다면 이해해주시고 가능하면 알려주시면….(조만간 댓글 기능 추가할 예정)