IT/Public Cloud

AWS Auto Scaling Group 알아보기 (feat. 정책, 튜토리얼)

엘티엘 2022. 3. 11. 19:16

 AWS Auto Scaling Group이란?

사용자가 정의한 조건에 맞춰 EC2 개수가 늘어나거나 줄어드는 기능이다. 일반적으로 ASG(Auto Scaling Group)앞에 LB(Load Balancer)를 연결해서 사용한다.

Scaling 정책

아래와 같이 3가지 방식을 지원한다.

1) Dynamic scaling policies

사전에 정의한 metric 또는 알람에 따라서 scaling 하는 방식이다. CPU, Network In/Out 이나 Cloud Watch의 알람 등으로 설정할 수 있다.

2) Predictive scaling policies

예측값에 따라 scaling 하는 방식이다. 

3) Scheduled actions

특정 시간 또는 정해진 주기에 따라 scaling 하는 방식이다. 한번(Once) 또는 주기적으로 scaling을 할수 있다.

Auto Scaling 튜토리얼

1) ASG 생성

EC2 -> Auto Scailing Group -> Create Auto Scaling Group -> 이름 및 template 입력 -> VPC, AZ 등 입력 -> LB 연결 (추가하지 않아도 상관없다) -> Maximum Capacity=5 -> Scaling Policy는 None -> 생성

생성한 ASG 클릭 -> Automatic scaling -> Create dynamic scaling policy -> CPU 30 으로 설정 및 저장

2) stress 프로그램 설치 및 부하 발생

위와 같이 하면 1개의 instance가 실행됨을 확인할수 있다. 해당 인스턴스 접속후 아래와 같이 실행하면 CPU 부하를 발생시키는 프로그램이 설치된다.

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

사용방법은 아래와 같다.

아래와 같이 실행하면 EC2에 CPU 부하가 발생한다.

stress -c 4

3) 결과 확인

해당 EC2의 Montoring 탭을 살펴보면 아래와 같이 CPU사용량이 증가하는것을 확인할수 있다.

ASG의 Monitoring 탭을 보면 아래와 같은데, 처음에는 1개의 점만 찍히다가, 인스턴스가 증가하면서 동일 시간에 여러개의 점이 찍히는것을 확인할 수 있다.

ASG의 Activty 탭의 Activity History를 살펴보면 아래처럼 인스턴스 개수가 증가한것을 확인할 수 있다. Fail 은 선택한 AZ에서 t2.micro 인스턴스를 지원하지 않아서 발생한 에러이다. 이렇게 에러가 발생하면 다른 AZ에서 인스턴스를 생성한다.

반응형