Cloud_AWS AutoScaling 실습

목표 아키텍처


실습 단계

  1. CloudFormation 이용하여 실습 인프라 배포
  2. 기본 인프라 환경 검증 수행
  3. EC2 인스턴스 시작 템플릿 구성
  4. 오토 스케일링 그룹 생성
  5. 오토 스케일링으로 생성된 인스턴스에 CPU 부하를 발생하고 동작 확인

실습 1단계(CloudFormation 이용하여 실습 인프라 배포)

생성 자원 이름 정보
VPC MyVPC 10.0.0.0/16
CH9-VPC 10.9.0.0/16
서브넷 My-Public-SN MyVPC에 위치
CH9-Public-SN1 CH9-VPC에 위치
CH9-Public-SN2 CH9-VPC에 위치
EC2 인스턴스 MyEC2 My-Public-SN에 위치
보안 그룹 My-SG TCP 22/88, ICMP 허용
CH9-SG TCP 22/88, ICMP 허용
ALB CH9-ALB CH9-Public-SN1,2 대상
ALB Target Group CH0-ALBTG  

인프라 생성 완료


실습 2단계(기본 인프라 환경 검증 수행)

  • 생성한 EC2 서버에는 CLI 툴(AWS를 명령어로 실행 가능하도록 해주는 도구)과 웹 서버의 부하(트래픽)를 생성하기 위한 ApatcheBench 설치되어 있음. 이를 확인 작업

ApacheBench 정보 및 CLI로 생성된 인스턴스 정보 확인


실습 3단계(EC2 인스턴스 시작 템플릿 생성)

시작 템플릿 생성

  • 시작 템플릿 설정 내용 ↓

코드설명

curl http://169.254.169.254/latest/meta-data/... EC2 메타데이터(가용 영역, 인스턴스 ID, IP) 가져오기
amazon-linux-extras install -y php8.0 PHP 8.0 설치
yum install httpd htop tmux -y Apache 웹 서버 및 유틸리티 설치
systemctl start httpd && systemctl enable httpd Apache 시작 및 자동 실행 설정
echo "<h1>...</h1>" > /var/www/html/index.html 기본 웹 페이지 생성
echo "1" > /var/www/html/HealthCheck.txt 헬스 체크 파일 생성
curl -o /var/www/html/load.php ... S3에서 load.php 다운로드

 


실습 4단계(EC2 오토 스케일링 그룹 생성)

오토 스케일링 그룹 생성
CloudWatch 경보 생성
단순 크기 조정 정책 사용하여 동적으로 서버 생성


실습 5단계(MyEC2에 접속하여 인스턴스에 CPU 부하 발생 시키기)

오토 스케일링 기능 확인 위한 CloudWatch 대시보드 설정 완료
현재 웹 서버 CPU 사용률 5% 미만

 

CPU 부하 명령어 실행
CPU 사용률 100% 됨
오토 스케일링이 자동으로 EC2 서버를 3개로 늘림

  • 위 과정을 통해 오토 스케일링을 활용하여 서버가 과부하 되어 서비스 장애가 발생하는 현상을 방지할 수 있음.