본문 바로가기
Amazon Web Service

[AWS] Auto Scaling 기본 개념/특징, EC2 생성 후 오토스케일링 실습하기. Stress 프로그램으로 부하 테스트 후 서버 생성

by 클수저 2024. 1. 11.
728x90
반응형

Auto Scaling 기본 개념과 특징

AWS EC2 Auto Scaling

클라우드 컴퓨팅에서 가장 중요한 특징 중 하나인 필요에 따라 서비스를 빠르게 확장하거나 축소할 수 있는 유연성이다.

그중, 오토스케일링(Auto Scaling)은 클라우드의 유연성을 돋보이게 하는 핵심기술이다.
즉, 서버 사이즈를 자동으로 조절 하는 서비스를 말한다.

 

이를 통해 사용자는 예상치 못한 서비스 부하에 효과적으로 대응하고, 최대한 저렴한 비용으로 안정적이고 예측 가능한 성능을 유지 할수 있다.

 

Amazon EC2 Auto Scaling이란 무엇입니까? - Amazon EC2 Auto Scaling

Amazon EC2 Auto Scaling이란 무엇입니까? Amazon EC2 Auto Scaling을 사용하면 애플리케이션의 로드를 처리할 수 있는 정확한 수의 Amazon EC2 인스턴스를 유지할 수 있습니다. Auto Scaling 그룹이라는 EC2 인스턴

docs.aws.amazon.com

 

즉, 정리하자면 가용성을 위해서 EC2 인스턴스를 자동 크기조정 서비스이다.

 

Auto Scaling 구성요소

 

수직적 확장

 

EC2의 성능을 올려주는 것으로 생각하면 된다. 용량/메모리를 향상시켜 올린다 해서 Scale-Up이다.

(Upgrade랑 비슷하다고 생각하면 된다.)

수평적 확장

오토스케일링의 경우는 Scale-Out에 해당한다.

기존의 스펙 서버를 똑같은 스펙으로 갯수를 늘리는 것이다. 확장을 한다고 생각하자.


Auto Scaling 실습해보기

VPC 생성

VPC생성 시 가용영역 2개로 설정해야 오토스케일링 테스트를 원활하게 할 수 있다.

아래의 링크를 통해서 EC2 설치를 확인해서 실습할 수 있다.

2023.11.06 - [Amazon Web Service] - AWS EC2 인스턴스 개념 및 서버 구축하기

 

AWS EC2 인스턴스 개념 및 서버 구축하기

AWS EC2 아마존에서 제공하는 클라우드 컴퓨팅서비스! EC2는 Elastic Compute Cloud의 줄임말로서 AWS에서 제공하는 대표적인 클라우드 컴퓨팅 서비스이다. 즉, 우리가 흔히 보는 컴퓨터를 가상으로 빌려

cloudjs.tistory.com

 

EC2 서버 생성 후, SSH로 접속 후에 아파치 설치

웹에서 테스트를 해봐야 하기 때문에, EC2 서버를 SSH로 접속 후에 아파치를 설치한다.

오토스케일링 테스트를 위해서 Stress 프로그램 설치

 

오토스케일링 테스트를 하기 위해 스트레스 프로그램 설치

스트레스 프로그램으로 강제로 EC2에 과부화를 줘서 Auto-Scaling 동작하게끔 한다.

아파치 데몬 실행

아파치 설치한 EC2 서버 접속완료

EC2 서버 접속완료


이번에는 로드밸런서에서 대상그룹 생성 후, 대상그룹 안으로 오토스케일링이 동작하게끔 해서 대상그룹 안으로 설정하는 실습을 진행하려고 한다.

Load Balancer DNS로 접속

위에 그림에서 확인할 수 있듯이, pjs-lb 라는 로드밸런서 DNS로 아파치 서버에 접속하는 것을 확인 해볼 수 있다.

로드밸런서 DNS로 접속완료!

 

여기까지 오토스케일링을 테스트하기 위한 기본적인 세팅이 완료되었다.


AMI 생성

 

오토스케일링 테스트를 위한 이미지 생성한다.

Why? 이미지?
오토스케링일을 테스트 하기 위해서는 시작 템플릿을 사용해야한다. 그 시작템플릿에는 AMI를 넣어야하기 때문에 AMI를 생성해주는 것이 필수이다.

시작 템플릿 생성
생성한 AMI를 선택하고, 인스턴스 유형 선택

Auto Scaling에 가보면 좌측 카테고리에 시작템플릿을 확인해볼 수 있다.

시작 템플릿을 생성 👉  생성한 이미지를 선택 👉  인스턴스 유형을 선택

나머지는 EC2랑 생성하는 방법이 똑같다.

 

서브넷은 선택X 👉 오토스케일링 그룹에서 진행 할 예정

시작템플릿 생성 완료!

시작템플릿 생성 완료!

시작템플릿으로 오토스케일링뿐 아니라 인스턴스 생성도 가능하다.

테스트용 서버를 사용할 때, 테스트 서버를 다시 이용하고 싶을 때 테스트 서버를 새로 만들지않고, 시작템플릿을 활용해서 빠르게 간단하게 구축이 가능하다.

Auto Scaling 그룹 생성

오토스케일링 그룹을 생성한다.

위에서 생성한 시작템플릿 선택 후 오토스케일링 그룹을 생성한다.

 

인스턴스 옵션 선

네트워크에서 서브넷 2개 선택

서브넷을 2개 선택해야지 오토스케일링이 원활하게 진행될 수 있다. = 이중화 구성

로드밸런싱 설정

로드밸런서 선택시, 앞에서 만든 로드밸런서 그룹을 선택

오토스케일링을 통해서 서버가 올라 갈때, 동작했는지 확인하는 시간 = 상태 확인 유예기간

그룹크기 설정

 

그룹크기에서 원하는 용량 = 원하는 최소용량은 같아야한다.

 

Auto Scaling 그룹 생성완료

오토스케일링 그룹 생성완료!

 

기존에 생성해놓은 EC2를 오토스케일링 그룹에 연결하는 작업이다.

즉, 오토스케일링 그룹을 만들 때 설정할 필요없이 EC2에서도 설정이 가능하다.

 

인스턴스 축소보호 설정

오토스케일링으로 서버를 생성 시 삭제를 방지하기 위한, 인스턴스 축소 보호 설정을 할 수 있다.


Auto Scaling 테스트

CPU 상태 확인 터미널

top

top 라는 명령어를 통해서 현재 EC2 VM의 상태를 확인 할 수 있는 창 설정.

Stress 명령어 실행

stress --cpu 1

위 명령어로 스트레스를 준다. 해당 EC2 VM에 Stress 실행

Sterss로 인한 CPU 부

맨처음 top 명령어를 했을 때는 Cpu 값이 0인 것을 확인 할 수 있다.

하지만,. Stress 이후에는 CPU 상태가 0에서 100이 되었고, stress가 되었다는 상태를 밑에서 확인이 가능하다.

 

Auto Scaling으로 서버가 생성되는 화면

위와 같이 이름없는 새로운 서버가 하나 더 생성 된 것을 확인 할 수 있다.

 

728x90
반응형