본문 바로가기

CICD/AutoScaling

AWS EC2 AutoScaling 사용하기 - 2. Hands On

앞의 글에서 말씀 드렸던 순서대로 진행해보도록 하겠습니다.

 

AutoScaling 구성 순서

 

이전 게시글 Baisc Infrastructure대로 먼저 구성해 주시면 1단계인 AMI 세팅이 끝납니다.

이때 만든 AMI를 가지고 오토스케일링을 구성하여서 서비스를 띄워보도록 하겠습니다. 

 

서비스 - EC2 - AutoScaling - 시작구성탭에서 시작구성 생성을 해보겠습니다.

기존에 EC2를 생성하거나 AMI를 통해 EC2를 생성하는 것과 굉장히 유사하므로, 똑같은 부분은 제외하고 달라지는 부분만 설명하겠습니다.

 

#!/bin/bash
sudo yum -y update
sudo sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
sudo systemctl restart sshd

 

위와 같이 직접 만든 내 AMI를 고른 후, 시작 구성에서 유저데이터 및 IP 할당부분을 설정해주고,

이후 기존에 만든 Security Group을 골라주고 타입이나 볼륨 설정을 똑같이 구성해주시면 됩니다.

 

이제 서버를 생성하는 부분에 대한 세팅이 모두 끝났으므로, 오토스케일링 그룹 탭에서 생성을 눌러줍시다.

만든 세팅한 시작구성을 골라 주시고

 

 

오토스케일링 이름 및 서버가 올라갈 Subnet을 골라줍니다.

그리고 Load Balancer에 자동으로 매핑될 수 있도록 하는 설정을 여기선 적용할 건데요

아래 나와있는 것 처럼 이후에 코드디플로이를 사용해서 CICD 자동화를 구성했을 경우 아래 옵션을 제외하니

자동화를 구축한 경우에는 저 부분을 제외하고 만들어야합니다.

 

 

SNS을 통해 오토스케일링이 시작되었을 때, 만들어 질 때, 종료될 때 알람을 받으실 수 있습니다.

SNS 주제를 만들고 구독으로 이메일을 설정한 후 링크를 클릭해주면 되는 부분인데요.

어렵지 않기도 하지만, 지금은 다루지 않고 나중에 CICD 구성에서 포함시켜 진행하겠습니다.

 

 

이제 서버에 들어갈 네임 태그를 똑같이 입력해주시면 끝납니다.

 

 

저는 오토스케일링 목표 / 최소 2 최대 4를 정해 놓아서 타겟 그룹에서 대상을 봤을 때 2개의 서버가 뜬 것을 확인 할 수 있습니다.

도메인으로 접속했을 경우도 잘 작동하는 것을 볼 수 있습니다.

 

 

이제 서비스에 직접 부하를 줘서 적용한 룰대로 서버 스케일링이 되는지 체크해보도록 하겠습니다.

 

해당 서버에 접속해서 stress를 세팅해주도록 합시다.

sudo yum -y install stress

- CPU 부하 주기
grep -c processor /proc/cpuinfo (전체 코어 개수 확인)
stress -c 2 (코어수)

- Memory, Disk 부하 주기
stress --vm 3 (프로세스 수) --vm-bytes 1024m (사용할 크기)
stress --hdd 3 (hdd 수) -hdd-bytes 1024m (사용할 크기)

 

코어 수 확인 후 CPU 부하를 주도록 하겠습니다.

 

 

Cloudwatch에서 CPU Utilization이 모니터링이 되면 AG에서 반응을 합니다.

 

이제, 오토스케일링 그룹이 해당 지표를 보고 스케일 아웃이 되는 것을 볼 수 있습니다.

 

EC2에서 오토스케일링을 어떻게 설정하는지, 작동을 어떠한 형태로 하게 되는지 알아보았습니다.

'CICD > AutoScaling' 카테고리의 다른 글

AWS EC2 AutoScaling 사용하기 - 1. Intro  (0) 2020.01.22