본문 바로가기
구글 클라우드

Google 클라우드(GCP) 오토스케일링(Auto Scaling)

by 미토리야 2022. 5. 20.

안녕하세요, 내일배움캠프 클라우드 실시간 강의 자료입니다.

오늘은 Google 클라우드(GCP) 오토스케일링을 통한 서버 갯수 자동 조절에 대해 설정해보겠습니다.

 

목차

1. VM 인스턴스생성

2. 스냅샷 생성

3. 이미지 생성

4. 템플릿 생성

5. 오토스케일링 그룹 생성

6. 테스트

 

1. VM 인스턴스생성

1. VM 인스턴스GCP 콘솔에서 [Compute Engine]에서 [VM 인스턴스]를 선택한 후, [인스턴스 만들기]를 클릭해서 인스턴스를 생성합니다. VM 인스턴스는 아래와 같은 조건으로 생성합니다. 나머지

값들은 기본으로 둡니다.

VM 생성이 완료된 후, 웹서버를 만듭니다.

인증서 방식으로 로그인하기 위해 인증키를 만듭니다.

인증서 발급이 안되어 있으면 아래 링크로 연결해서 인증서 발급방법을 확인해보세요.

->인증서발급방법 확인하기

인증서 발급 후, 인증서를 활용해서 접속을 시도합니다.

아래와 같은 명령어로 접속하여 웹서버와 DB 설치를 합니다.

ssh -i gcpkey.pem rsa-key-20220519@{IP주소}

 

먼저 pip을 설치합니다.

* pip : 파이썬 패키지 소프트웨어를 설치하거나 관리하는

패키지 관리 라이브러리입니다.

sudo apt install update
sudo apt install python3-pip

 

웹서버 사용을 위해 다음 명령어로 flask를 설치합니다.

 

pip install flask

 

DB사용을 위해 다음 명령어로 pymongo를 설치합니다.

pip install pymongo

startapp.py 파일을 새로 만듭니다.

파이썬 실행파일을 작성합니다.

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == '__main__':
    app.run('0.0.0.0', port=5000, debug=True)

작성한 실행파일을 배포합니다.

배포가 정상적으로 되었나요?

웹서버를 실행 후, 브라우저에서 웹서버 접속을 확인합니다.

 

2. 스냅샷 생성

다른 리소스에서 생성한 VM 인스턴스로 엑세스하도록 스냅샷 생성을 합니다.

스냅샷 소스 디스크는 생성한 VM를 선택합니다.

 

3. 이미지 생성

생성한 스냅샷으로 VM 이미지를 생성합니다. 

Compute Engine->이미지 메뉴에서 이미지를 선택합니다.

 

 

4. Templete 생성

여기까지 진행이 되었으면, VM 이미지를 가지고 인스턴스 템플릿을 만듭니다.

Compute Engine->가상머신->인스턴스 템플릿에서 생성을 합니다.

생성한 이미지를 부팅디스크에 입력합니다.

변경한 부팅 디스크를 확인합니다.

방화벽 설정 후, 만들기를 클릭합니다.

 

 

5. 오토스케일링 그룹 생성

 

인스턴스 템플릿을 이용해서 인스턴스 그룹을 만듭니다.

Compute Engine->인스턴스 그룹->인스턴스 그룹을 선택합니다.

생성한 인스턴스 템플릿을 선택합니다.

CPU 사용량이 75%를 넘을 때 인스턴스 갯수가 자동 증가하도록 설정합니다.

오토스케일링 설정이 완료되었습니다.

이제 제대로 작동이 되는 확인을 해볼까요?

가상서버 부하 테스트를 해봅시다.

 

6. 테스트

 

가상서버에 접속을 합니다.

ssh -i gcpkey.pem rsa-key-20220519@{IP주소}

접속 후 아래 명령어를 실행해서 모듈을 설치합니다.

sudo apt install stress

아래 명령어로 스트레스 테스트를 해서 가상서버가 자동 생성이 잘 되는지 확인합니다.

아래 코드는 1개의 CPU를 300초(5분) 동안 가동률100% 를 실행합니다.

stress --cpu 1 --timeout 300 &

아래 명령어를 이용해 CPU가 부하 생기는지 확인합니다.

top

 

VM 인스턴스에서 서버가 추가되는지 확인합니다.