본문 바로가기

AWS/ASG

[AWS/ASG] Auto Scaling Group (ASG) 만들기

반응형

 

 

Auto scaling group이란? 

서버에 들어오는 요청양에 따라 서버의 개수를 증가/감소시켜 Scale out 또는 Scale in을 해준다

 

과부하가 들어올 시 미리 방지할 수 있고, 불필요한 서버 사용량 또한 줄일 수 있다 

 

Scale out : 서버의 개수를 늘린다 

Scale in : 서버의 개수를 줄인다 

Scale up : 서버의 hardware 성능을 향상한다 

Scale down : 서버의 hardware 성능을 하향시킨다 

 

Auto Scaling group의 장점 : 

  • Auto Scaling group 설정을 제대로 맞추면 별도 모니터링 필요 없이 scale out/in 할 수 있다 
  • High availability & fault tolerant (트랙픽 관련하여 변수 없이 잘 운영이 된다) 

Auto Scaling group의 단점 : 

  • 갑작스러운 트랙픽 증가가 있을 시 비용이 많이 들 수 있다 
  • 설정이 조금 복잡할 수 도 있다 

 

 

Auto Scaling group 설정하는 방법 알아보도록 하겠습니다! 

 


1. Auto Scaling group 생성하기 

EC2 -> Auto Scaling -> Auto Scaling Groups -> Create Auto Scaling group 

 

 

2. Choose launch template 

ASG 이름 그리고 template을 선택해야 합니다

template은 새로 만들겠습니다 

 

3. Create launch template 

Instance 생성 페이지와 일치합니다!

Scaling out 할 때 생성할 instance template이라고 생각하면 됩니다 

 

Template 이름 + 설명 입력 

 

4. Launch template contents 

Quick Start -> Amazon Linux -> amazon linux 2023 (Free tier eligible)

 

5. Instance type

free tier t2.micro 선택 

 

기존 pem key 선택 

2024.09.02 - [AWS/EC2] - [AWS/EC2] AWS EC2 인스턴스 생성 방법 (free-tier 기준)

 

 

6. Network settings 

해당 게시글에서 사용한 security group 사용

2024.09.09 - [AWS/Load Balancer] - [AWS/ALB] AWS ALB 생성 및 ALB에 인스턴스 연결하기 (1/3)

 

 

7. User data 입력 

 처음 인스턴스 생성할 때와 동일하게 아래 script 넣어서 http 다운 및 실행 

 

#!/bin/bash 
yum update -y 
yum install -y httpd
systemctl start httpd
systemctl enable httpd
echo "<h1> hello world from $(hostname -f)</h1>" > /var/www/html/index.html

 

7. Launch template 생성 

 

8. Launch template 생성 후 다시 ASG 생성 페이지 돌아오기 

Refresh -> 생성한 launch tempalte 선택 

 

9. Choose instance launch options 

VPC 선택, az 선택

free tier t2.micro seoul az 기준으로는 2a & 2c만 있어서 2개 az만 선택했습니다! 

 

 

10. Configure advanced options

 

기존 실습할 때 사용한 alb + target group 사용하겠습니다!

생성 및 설정 방법은 아래 게시글 참고해 주세요! 

2024.09.09 - [AWS/Load Balancer] - [AWS/ALB] AWS ALB 생성 및 ALB에 인스턴스 연결하기 (1/3)

 

11. Health checks 옵션 

 

ELB가 health check를 해주는 옵션입니다! 선택해 주세요 

 

 

12. Configure group size and scaling 

 

desired capacity = 기본 instance 개수 

min = auto scaling 통해 최소 instance 개수 

max = auto scaling 통해 최대 instance 개수 

 

기본 설정 유지하겠습니다 

 

 

13. Add notifications

별도 추가 설정 없이 next 

 

14. Add tags 

별도 추가 설정 없이 next 

 

 

 

15. Review 

ASG 생성 완료 했습니다 ! 

 

 

 

16. ASG 생성 완료 확인 

생성한 asg 이름 클릭해서 확인해 보겠습니다

 

 

 

생성한 ASG Activity 탭에 보시면 default instance 수를 1로 설정해서 asg가 생성하자마자 instance 하나를 생성하고 있네요 

 

 

Instance management에 보면 지금 현재 하나의 instance가 관리되고 있는 것으로 보입니다 

 

 

 

etc. 추가 확인 

 

ASG에 연결된 target group를 확인해 볼게요 현재 1개의 instance가 healthy 상태로 보입니다 저희가 방금 ASG 통해 생성한 instance로 보이네요 

 

 

Load balancer alb의 dns주소 복사해서 브라우저에 입력해 보겠습니다 

 

 

타담 정상적으로 접근이 가능하네요! 

 

 

 

 

 


이렇게 기존에 생성한 ALB, target group를 ASG에 연결해서 ASG 생성해 봤습니다 

 

제가 예전에 했던 프로젝트들은 미리 설정이 되어서 단순히 배포만 했었는데 

이런 식으로 aws 기능도 하나식 배우고 어느 설정/원리로 서비스가 운영되는지 배워나가는 거 같네요 ㅎㅎ 

 

 

 

반응형