카테고리 없음

AWS 11일차 AutoScalling

kiminaki 2021. 6. 15. 23:51

tAutoScalling

지난 시간이 ELB(Elastic Load Balancing에 대해 배웠다.

로드 벨런싱은 부하를 조절해주는것인데, 만약 현재있는 서버 만으로 트래필을 감당할수 없고, 이런 부하를 감당하기 위한 서버가 재생성된다면 부하를 조절할 수 있을 것이다. 또 부하가 적다면 알아서 갯수가 줄어든다면  트래픽, 서버가 낭비될일이 없다. 그것을 바로 조절해주는것이 auto scalling이다.

 

 

먼저 우분투 20.04 인스턴스를 설치하고 아파치 php를 설치한다.

 

 

sudo apt update

sudo apt install apache2 php

sudo service apache2 restart

 

/var/www/html/loadtest.php 를 저장한다.

 

 

<?php

$time = microtime(true);

password_hash('hello',CRYPT_BLOWFISH,array("cost"=>empty($_GET['cost']) ? 14 : (int)$_GET['COST']));

echo $_SERVER['SERVER_ADDR'].' : '.(microtime(true) - $time);

?>

 

 

 서버에 부하를 주는 php 파일이다.

 

 

 

htop 명령어를 통해 cpu 점유율을 알아보자

 

서버 주소와 얼마나 시간이 걸렸는지 알려준다

 

 

이렇게 코스트값으 14보다 큰숫자를 주면 더 오랫동안 실행되여 더 많이 cpu량을 소모하게된다.'

 

 

 

100%가 되는것을 볼 수 있다.

 

 

 

 

생성된 인스턴스의 이미지를 생성해보자

 

 

시작 템플릿에 가자

 

 

이름을 지정해주고 auto scaling를 체크

 

 

 

ami는 아까생성한 이미지만 저장해주고 인스턴스 유형은 프리티어로 한다음 생성해준다

 

 

대상 그룹을 생성해준다

 

 

 

생성해준다.
로드 벨런서도 생성해준다.

 

 

어플리케이션 선택

 

 

1단계에서는 가용영역을 모두 켜준다

 

 

보안그룹에서 80번 포트가 열려있게 생성해준다. 

 

 

 

 

아까 생성했던 그룹을 지정

그 후 생성

 

 

 

EC2하단에 AUTO scaling 그룹을 클릭

 

 

 

 

생성 클릭

 

 

AUTO Scaling을 지정할 인스턴스를 선택

 

 

 

 

서브넷에서 가용영역을 전부 추가해준다.

 

 

 

 

3단계 에서는 기존 로드벨런서 그룹을 연결시켜준다

 

 

 

다음 클릭

 

 

 

최소 갯수와 최대 갯수를 지정하여 한도를 지정할 수 있으며 최대에는 3대를 지정하여 3대를 최대로 생성한다. 

원하는 용량은 인스턴스가 그룹이 생성되자마자 얼마나 필요한지 선택할 수있다. 

 

 

 

조건에 대한 설정으로 전체 인스턴스의 cpu사용률이 50퍼센트가 넘으면 인스턴스를 생성하고 50퍼센트보다 적으면 삭제된다. 이후 그룹 생성을 한다.

 

 

 

클라우트 와치에 두가지 항목이 추가되는데 대시보드에 추가해보자

 

 

 

 

 

 

 

 

이런식으로 점유율을 높여주면 3개까지 생성이 되고

 

 

 

 

삭제되고 생성 되는 모습을 볼 수 있다