AWS Auto Scaling
AWS에서 제공하는 애플리케이션을 모니터링하고 용량을 자동으로 조정하여, 안정적이고 예측 가능한 성능을 유지할 수 있는 서비스
AWS Auto Scaling을 사용하면 몇 분 만에 손쉽게 여러 서비스 전체에서 여러 리소스에 대해 애플리케이션 규모 조정을 설정할 수 있다.
AWS에서 제공하는 Auto Scaling 장점
규모 조정을 신속하게 설정
AWS Auto Scaling을 사용하면 직관적인 단일 인터페이스에서 여러 리소스에 대한 목표 사용률 수준을 설정할 수 있습니다. 다른 콘솔로 이동할 필요 없이 모든 확장 가능한 리소스의 평균 사용률을 신속하게 확인할 수 있습니다. 예를 들어, 애플리케이션에서 Amazon EC2와 Amazon DynamoDB를 사용하는 경우, AWS Auto Scaling을 사용해 애플리케이션의 모든 EC2 Auto Scaling 그룹과 데이터베이스 테이블에 대한 리소스 프로비저닝을 관리할 수 있습니다.
똑똑한 규모 조정 의사 결정
AWS Auto Scaling을 사용하면 서로 다른 리소스 그룹이 수요 변화에 대응하는 방법을 자동화하는 규모 조정 계획을 수립할 수 있습니다. 가용성과 비용을 최적화하거나 둘 사이의 균형을 적절하게 유지할 수 있습니다. AWS Auto Scaling에서는 사용자의 기본 설정에 따라 자동으로 모든 규모 조정 정책을 생성하고 목표를 설정합니다. AWS Auto Scaling에서는 애플리케이션을 모니터링하고, 수요 변화에 따라 실시간으로 리소스 그룹에 용량을 자동으로 추가하거나 제거합니다.
자동으로 성능 유지
AWS Auto Scaling을 사용하면 워크로드가 주기적으로, 예측 불가능하게 또는 지속적으로 변해도 최적의 애플리케이션 성능과 가용성을 유지할 수 있습니다. AWS Auto Scaling에서는 사용자가 원하는 성능 수준으로 운영되도록 애플리케이션을 지속적으로 모니터링합니다. 수요가 급증하면 AWS Auto Scaling이 제한된 리소스 용량을 자동으로 늘려 높은 서비스 품질을 유지합니다.
작동 방식

1. AutoScaling 생성 전 실습 환경 구성
1.1. 인스턴스 생성
2022.06.21 - [Cloud/AWS] - 4. AWS : 3tier Architecture 구성
4. AWS : 3tier Architecture 구성
3tier Archtecture 애플리케이션을 3개의 논리적 및 물리적 컴퓨팅 계층으로 분리하는 것을 의미하며, 기존의 클라이언트 서버 애플리케이션을 위한 주요 소프트웨어 아키텍처이다. 3tier Architecture로
mh-itstudy.tistory.com
※ 위 포스팅을 참고하여 Bastion Server와 WEB-A 인스턴스를 생성한다.
1.2. RDS 생성
2022.06.28 - [Cloud/AWS] - 12. AWS : RDS (Relational Database Service)
※ 위 포스팅을 참고하여 RDS를 생성한다.
※ RDS 생성 시 초기 데이터베이스를 wordpress로 생성
1.3. Bastion Server 설정
※ 호스트에서 각 인스턴스에 접속하기 위한 private key Bastion 으로 보내기
※ Bastion에서 key 확인
※ 키 권한 변경
$ chmod 600 .ssh/id_rsa
1.4. WEB-A 인스턴스에 wordpress 설치
※ Bastion Server에서 WEB-A 인스턴스 접속 후 root 로그인
$ ssh ec2-user@10.0.0.148
$ sudo su -
※ wordpress 설치 스크립트 작성 후 실행
#! /bin/bash
yum install -y wget httpd
amazon-linux-extras enable lamp-mariadb10.2-php7.2
amazon-linux-extras install lamp-mariadb10.2-php7.2
wget https://ko.wordpress.org/latest-ko_KR.tar.gz
tar zxvf latest-ko_KR.tar.gz
cp -a wordpress/* /var/www/html/
sed -i 's/DirectoryIndex index.html/DirectoryIndex index.php/g' /etc/httpd/conf/httpd.conf
cp /var/www/html/wp-config-sample.php /var/www/html/wp-config.php
chown apache.apache /var/www/html/*
sed -i 's/database_name_here/wordpress/g' /var/www/html/wp-config.php
sed -i 's/username_here/admin/g' /var/www/html/wp-config.php
sed -i 's/password_here/It12345!/g' /var/www/html/wp-config.php
sed -i 's/localhost/RDS엔드포인트/g' /var/www/html/wp-config.php
cat > /var/www/html/health.html << EOF
<html><body><h1>MHAN WEBSERVER-health</h1></body></html>
EOF
systemctl enable httpd
systemctl start httpd
※ 참고) DB 접속
# mysql -uadmin -p -h [RDS 엔드포인트]
1.5. 웹 브라우저 접속
※ 웹 브라우저에서 접속하여 워드프레스 설치
2. Auto Scaling 생성
2.1. 이미지 생성
※ Auto Scaling으로 생성할 인스턴스의 이미지를 생성한다.
※ 설정 후 이미지 생성
※ 좌측 EC2 탭 → AMI → 생성 확인
2.2. 시작 템플릿 생성
※ 인스턴스 → 시작 템플릿 생성
※ 시작 템플릿 설정
※ 위에서 생성한 AMI 선택
※ 키 페어, 서브넷 설정
※ 설정 완료했으면 시작 템플릿 생성
※ 생성 확인
2.3. Auto Scaling 생성
※ Auto Scaling 그룹 → Auto Scaling 그룹 생성
※ Auto Scaling 그룹 이름 설정
※ 위에서 생성한 시작 템플릿 선택
※ VPC, 가용 영역 설정
※ 상태 확인 유예기간 설정
※ 최소/최대 용량 설정 - 초반에는 무조건 최소 용량 이상의 개수로 인스턴스가 생성됨
※ 크기 조정 정책 설정 - CPU 평균 사용률이 50% 가 넘어가면 인스턴스가 생성된다.
※ 검토 후 Auto Scaling 그룹 생성
※ 생성된 Auto Scaling 그룹 확인
※ Auto Scaling으로 생성된 인스턴스에 public IP 할당
※ 웹 브라우저에서 접속해보기 - 위에서 이미지로 생성한 인스턴스 그대로 생성된 것을 확인할 수 있다.
3. Auto Scaling Test
※ Bastion 서버에서 Auto Scaling으로 생성된 인스턴스 접속
※ root 로그인 후 epel, stress 설치
$ sudo su -
# amazon-linux-extras enable epel
# amazon-linux-extras intall epel
# yum install -y stress
※ stress 이용하여 stress 테스트를 진행
※ 세션 복제하여 top 명령어로 CPU 점유율 확인
※ 시간이 조금 지난 후에 Auto Scaling 그룹에서 확인해보면 인스턴스가 자동으로 생성된 것을 확인할 수 있다.
※ 생성된 인스턴스 중 한 대에 퍼블릭 IP 연결
※ 웹 브라우저에서 Auto Scaling으로 새로 생성된 인스턴스에 접속해보면 위에서 생성한 인스턴스와 동일하게 웹 페이지가 나오는 것을 확인할 수 있다.
Reference.
AWS Auto Scaling
AWS Auto Scaling은 애플리케이션을 모니터링하고 용량을 자동으로 조정하여, 최대한 저렴한 비용으로 안정적이고 예측 가능한 성능을 유지합니다. AWS Auto Scaling을 사용하면 몇 분 만에 손쉽게 여러
aws.amazon.com
'Cloud > AWS' 카테고리의 다른 글
15. AWS : LoadBalancer AutoScaling (0) | 2022.07.04 |
---|---|
14. AWS : Bastion Host 만들기 / CLI key 생성 (0) | 2022.07.01 |
12. AWS : RDS (Relational Database Service) (0) | 2022.06.28 |
11. AWS : EC2(Instance) - mariaDB 설치 (0) | 2022.06.28 |
10. AWS : Instance - wordpress 설치 (0) | 2022.06.28 |