article thumbnail image
Published 2023. 5. 22. 20:42

Auto Scaling Group

  • ASG의 목표는 스케일 아웃, 즉 증가한 로드에 맞춰 EC2 인스턴스를 추가하거나 스케일 인, 즉 감소한 로드에 맞춰 EC2 인스턴스를 줄이는 것
  • 따라서 로드에 따라 인스턴스가 증가하고 감소하는 것을 자동화하는 것이다
  • 최소 및 최대 개수를 보장하기 위해 매개변수로 정의 가능
  • 로드 밸런서와 페어링 하는 경우 ASG에 속한 모든 EC2 인스턴스가 자동으로 로드밸런서에 연결
    • 만약 인스턴스에 문제가 생기면 새로 인스턴스를 생성한다
  • 기능 자체는 무료이고 EC2 인스턴스가 생성된 것에 대해서만 비용을 받는다

  • Minimum capacity - 최소 갯수
  • Desired capacity - ASG내의 원하는 인스턴스 갯수
  • Maximum capacity - 최대 갯수
  • 스케일 아웃이 발생하면 Desired 만큼의 인스턴스를 추가한다

 

ASG in ELB

  • 로드밸런서가 마음대로 정상적이지 않은 인스턴스를 조절할 수 있다
  • 로드밸런서와 조합이 좋기 때문에 같이 쓰는 것이 추천된다

 

Auto Scaling Group Attributes

  • 시작 템플릿을 사용해야 한다 → EC2 인스턴스를 만들 때 정하는 모든 것들이 있음
  • Min SIze / Max Size / Initial Capacity를 정의해야한다
  • 스케일링 정책

 

Auto Scaling - CloudWatch Alarms & Scaling

  • CloudWatch 경보를 기반으로 ASG를 스케일 인 및 스케일 아웃 할 수 있다
  • 알람이 울리면 스케일링이 트리거 된다
    • 지표 - metric ( 평균 CPU 혹은 커스텀 지표를 활용할 수 있다)
      • ASG 전체의 평균 CPU가 너무 높으면 지표에 따라 알림이 울리고 스케일링 활동이 발생

 

ASG 실습

 

ASG 시작 템플릿 → 기존 EC2 인스턴스를 만드는 것과 똑같다

 

ELB가 자동으로 실행 종료

트래픽을 제대로 처리할 수 없거나 문제가 생기면 인스턴스를 종료시키고 새로운 인스턴스를 만든다

 

 

이후 ASG가 인스턴스를 만들면 Activity history의 기록이 남고 Instance management에서 확인 가능

이후 ALB에 타겟 그룹으로 포함된다

 

커스텀한 스케일링을 위해 Group size를 업데이트 할 수 있다.

Desired capacity를 수정해서 새로운 인스턴스가 생김
Desired capacity를 수정해서 인스턴스가 삭제됨

이후 다시 인스턴스 개수를 조절하면 ASG 스스로 인스턴스를 종료시켜준다

복사했습니다!