본문 바로가기
AWS

Launch Template (시작 템플릿) / Auto-scaling

by YUNZEE 2025. 2. 24.
728x90

📌 Launch Template

- EC2 인스턴스를 만들 때 필요한 설정을 미리 저장해 둔 템플릿

- 자동으로 스케일링을 하기 위해 그전에 시작 템플릿을 만들어주는 것

- 만약 EC2를 여러 개 만들 때 매번 수동으로 설정하면 비효율적임
- Launch Template을 사용하면 한 번만 설정하고 재사용 가능하므로 편리함.

📌 Auto-scaling

AWS Auto Scaling트래픽 변화에 따라 EC2 인스턴스를 자동으로 늘리거나 줄이는 기능임. 즉, 사용자가 많아지면 서버를 추가하고, 사용자가 적어지면 서버를 줄여서 비용을 절약하면서도 서비스 성능을 유지할 수 있음.


📌 Auto Scaling 주요 개념

✅ Launch Template (또는 Launch Configuration)

  • 새로운 EC2 인스턴스를 생성할 때 사용할 기본 설정(AMI, 인스턴스 타입, 보안 그룹 등)을 정의한 것.
  • Launch Configuration은 기존 방식이고, 지금은 Launch Template을 더 많이 사용함

✅ Auto Scaling Group (ASG)

  • Auto Scaling이 관리하는 EC2 인스턴스 그룹
  • 최소, 최대, 원하는 인스턴스 개수를 설정할 수 있음.

✅ Scaling Policies (스케일링 정책)

Auto Scaling Group이 언제 EC2 인스턴스를 늘리거나 줄일지를 결정하는 규칙임.

  • CPU 사용률이 70% 이상이면 인스턴스 추가
  • CPU 사용률이 30% 이하이면 인스턴스 제거
  • ELB(로드 밸런서)와 연결해서 요청량이 많아지면 자동 확장

📌 Auto Scaling 동작 방식

1️⃣ Auto Scaling Group을 생성
2️⃣ Launch Template에서 인스턴스 설정을 정함
3️⃣ Scaling Policy를 설정해서 트래픽 변화에 따라 EC2를 늘리거나 줄임
4️⃣ 필요하면 ELB(로드 밸런서)와 연결해서 자동으로 트래픽을 분산함

 

실습

인스턴스 생성

더보기

root@ip-10-10-1-73:~# sudo -i

root@ip-10-10-1-73:~# apt update

root@ip-10-10-1-73:~# apt install -y nginx

 root@ip-10-10-1-73:~# echo 'template test' > /var/www/html/index.html
root@ip-10-10-1-73:~# curl localhost
template test
root@ip-10-10-1-73:~# systemctl restart nginx
root@ip-10-10-1-73:~# systemctl enable nginx

root@ip-10-10-1-73:~# apt install -y stress

root@ip-10-10-1-31:~# apt update -y && apt install -y stress

update랑 같이 하고 싶다면?

 

web-tem 세션을 복사

root@ip-10-10-1-73:~# stress -c 1 -t 600


- 10분 동안 1 core(cpu)에 대한 부하가 100% 발생

-> 컴퓨터가 어떤 작업을 하는데 CPU가 10분 동안 계속 최대한 가동되었다는  

- 나중에 오토스케일링을 하면, CPU 사용량을 지표로 해서 scale in-out이 트리거도 되도록 하고 싶기 때문에 설정해 줌.

cpu가 99.9 정도로 높음

 

인스턴스 중지 -> 작업 -> 이미지 및 템플릿 -> 이미지 생성

시작 템플릿

더보기

- 서브넷은 지정하지 않음. 왜냐하면 생성되는 서버들이 여러 서브넷에 고루 배치되도록 하고 싶기 때문임.

구성 순서

1.ELB를 생성하면서 ‘빈 타깃그룹’을 생성.

2. 빈 타겟그룹으로 로드밸런서를 완성.

3. 오토스케일링 그룹을 만든 후 빈 타겟그룹에 넣어줌.

로드 밸런서 생성

더보기

로드 밸런서 생성

오토스케일링 그룹 생성 

더보기

- 오토스케일링으로 인해 생성되는 웹서버들이 놓일 서브넷을 선택

- 현재 ALB와 타겟그룹은 이미 만들어져 있는 상태이기 때문에 이 오토스케일링 그룹을 넣어줄 로드밸런서와 타겟 그룹을 지정함.

- 헬스체크와 비슷한 기능 활성화

- 원하는 용량 -> 초기값

- 실제 값이랑 원하는 값이랑 다를 수 있음

- 원하는 최소 용량: 적어도 CPU사용량이 최소 1대 이상 있었으면 좋겠음.

- 원하는 최대 용량: 아무리 CPU사용량이 많아도 최대 4대 이상 있었으면 좋겠음.

 

- 확대 정책 생성: '대상 추적 크기 조정'으로 '확대 정책' 생성

-> 확대만 하는 정책 설정

- 위에서 동적 크기 조정 정책을 만들었음에도 불구하고 존재하지 않음. 따라서 다시 만들어주자.

 

- 지표 및 조건 지정에서 AutoScalingGroupName이랑 실제 AutoScalingGroup이름이랑 같아야 됨

 

 

- tcp 명령으로 cpu 사용량도 동시에 확인

- 10분 이상 걸릴 수 있음.

- scale-out 정책을 ‘대상추적크기조정’ 이렇게 만드셔서 cloudwatch에 ‘경보’가 뜨고, 인스턴스가 증가하는지 확인해 보자.

- 안 되는 경우

1. 경보를 만들 때 오토스케일링 그룹을 잘못 지정하는 경우

2. CPU 사용량 모니터링 방식이 내가 생각했던 것과는 달라서

3. 서버가 문제가 있어서 부하가 충분히 주어지지 않는 경우.

=> 한 번 싹 다시.

축소 정책(scale-in)

더보기

# 2개 감소

# 3개 감소

오류/ 해결 방안

더보기

이것저것 만들다 보면 보안 그룹에 똑같은 VPC가 생성되는 경우가 있음

 

여기랑 번호가 같은지 확인해 주면 됨

728x90

'AWS' 카테고리의 다른 글

Route53  (4) 2025.02.25
커스텀 AMI(Amazon Machine Image)/ Auto-Scaling/ELB(Elastic Load Balancer)/ systemd  (2) 2025.02.22
NAT-GW  (0) 2025.02.21
AWS 기본(VPC,EC2,RDS)  (4) 2025.02.21
AWS 클라우드 기초 개념  (2) 2024.12.14