GW LABS

Google Cloud StudyJam (6) - Auto Scaling 본문

Infrastructure/Cloud Computing

Google Cloud StudyJam (6) - Auto Scaling

GeonWoo Kim 2020. 12. 10. 15:57

Google Cloud StudyJam

이번 포스팅에서는 GCP의 Auto Scaling 기능에 대해 알아본다. 나는 클라우드의 막강한 기능 중 하나가 오토스케일링이라고 생각한다. 오토스케일링 기능이 없었다면 클라우드의 이점이 많이 상실되었을 것이다. 서버 트래픽의 증가에 따라 서버를 증설해야할 때 개발자가 수동으로 인스턴스를 생성하는 것도 일종의 비용으로 볼 수 있기 때문이다. 다행히 오토스케일링 기능을 이용하면 트래픽에 따라 유연하게 확장할 수 있다.


Instance Group을 통한 Auto Scaling

이전 Deployment Manager 포스팅에서 오토스케일링까지 적용했지만 직접적으로 콘솔화면에서 리소스를 생성하는 실습을 진행해보려고 한다. 순서는 다음과 같다.

 

  1. 방화벽 규칙 생성
  2. 인스턴스 템플릿 생성
  3. 인스턴스 그룹 생성
  4. 로드밸런서 생성
  5. 오토스케일링 확인

 

방화벽 규칙 생성

먼저 인스턴스 템플릿에 적용할 방화벽 규칙을 생성한다. IP 범위는 모두 접근 가능해야하므로 0.0.0.0/0으로 설정하고, 80과 22 포트를 열어주면 된다. 네트워크 태그는 webserver로 지정했다.

 

인스턴스 템플릿 생성

 

다음은 인스턴스 템플릿을 생성한다. 생성한 인스턴스를 이미지로 저장해서 이용해도 되지만 그럴필요가 없다면 바로 인스턴스 템플릿을 생성해서 인스턴스 그룹을 생성할 수 있다. 앞서 생성한 방화벽 규칙의 태그인 webserver를 지정해주고 아래의 startup script를 지정해주자.

 

#! /bin/bash
sudo apt-get update
sudo apt-get install apache2 -y
sudo service apache2 restart
echo '<!doctype html><html><body><h1>'$(hostname)'</h1></body></html>' | tee /var/www/html/index.html

 

인스턴스 그룹 생성화면

 

인스턴스 템플릿을 생성했으면 인스턴스 그룹을 생성한다. 오토스케일링 기능을 확인하기 위해 확장조건을 CPU 사용율 20% 이상으로 수정했다. 또한 기본 인스턴스 개수를 2개, 최대 인스턴스 개수를 10개로 설정했다.

 

인스턴스 그룹 목록

 

인스턴스 그룹생성이 완료되면 로드밸런서를 생성하면 된다. 이전 GCP 둘러보기 포스팅에서 로드밸런서를 생성하면 된다. 로드밸런서 타입은 http(L7) 로드밸런서를 지정하고 backend service에 생성한 인스턴스 그룹을 지정해준다. frontend service에는 고정 IP를 할당받고 지정해주면 된다.

 

로드밸런서 생성화면

 

로드밸런서 생성에 시간이 좀 걸린다. 인내심을 갖고 5분정도 기다리자. 로드밸런서의 고정 IP로 접속했을 때 접속에 성공하면 이제 오토스케일링 기능을 테스트해보자. CPU 사용률을 높이기위해 아파치 벤치마크 툴을 이용할 것이다. 로드밸런서에 트래픽을 증가시켜보고 실제로 인스턴스가 생성되는지 확인한다. 아래의 명령어로 클라우드 쉘에서 아파치 벤치마크 툴을 설치하고 트래픽을 발생시킬 수 있다.

 

sudo apt-get install apache2-tools
ab -n 200000 -c 300 http://[로드밸런서 고정IP]/

 

아파치 벤치마크 툴로 트래픽 발생 1

아파치 벤치마크 툴로 트래픽을 발생시키면 위와 같은 콘솔화면을 볼 수 있다. 좀 더 기다려보면서 인스턴스 목록을 새로고침 시켜보면 실제로 인스턴스가 확장된다!

 

아파치 벤치마크 툴로 트래픽 발생 2

 

아파치 벤치마크 툴로 트래픽 발생 3

 

수동으로 인스턴스 그룹을 생성시키고 오토스케일링 기능까지 확인해봤다. 앞으로는 Deployment Manager를 통해서도 리소스를 관리할 수 있으니 클라우드 아키텍처 설계를 완료했다면 구성파일을 직접 작성해서 자동화시킬 수 있다. 클라우드의 막강한 기능인 오토스케일링 기능을 꼭 이용하자!

Comments