본문 바로가기
개발

[AWS] Scale Out - ELB 적용

by 마스터누누 2017. 5. 13.
728x90
반응형

Scale Out - ELB 적용




이전시간에 로드 밸런서를 만들었는데 현재는 비어있는 상태이다.

따라서 인스턴스를 장착하고 서비스를 진행해야한다.


이번시간에는 인스턴스를 만들고 웹서버를 설치해서, 스트레스 테스트를 진행한다.

이를 통해서 부하가 낮아지는지 확인해보자

위와 같이 빠르게 2개의 인스턴스를 만든다





1
2
3
sudo apt-get update;
sudo apt-get install apache2;
sudo apt-get install php5;
cs

그리고 아파치와 php를 위의 명령어를 통해 설치해준다.

php를 이용해서 서버를 열심히 일하게 하는 코드를 작성 해야한다. 




1
2
3
4
5
6
Hello AWS
<?php
    for($i=0$i<10000000$i++){
 
    }
?>
cs


위와 같이 일을 하도록 하는 코드를 작성하여 /var/www/html 안에 index.php로 저장해준다.

그러면 아파치 웹서버는 해당 포트로 접속 했을때  index.php를 실행하게 된다.






ab -n 1000 -c 10 "경로"

리퀘스트 1000개를 10개 동시접속으로 실행하는 코드를 사용하면 

cpu의 점유율이 100퍼센트에 금방 육박하는것을 볼 수 있다.

그렇다면 로드 밸런서를 이용해서 이를 해결해보도록 하자.






우선 로드 밸런서를 사용하려면 웹서버가 2개 이상이어야 한다.

따라서 원래 웹서버를 이미지로 만들고 새로운 인스턴스를 하나 만들어야한다.






그리고 이전에 만든 ELB를 찾아서

Instances -> Edit Instances 버튼을 눌러준다.






그러면 위와 같은 인스턴스 등록창이 나온다.

이때 등록하는 인스턴스들을 눌러서 Save를 클릭하면 ELB 등록이 완료된다.







한가지 조심해야할것은

초기에 Health Check를 등록해 놓았기 때문에, 이 파일이 반드시 있어야한다는 것이다.

이렇게 만들어진 로드 밸런서로 들어가기 위해서는 description에 있는 도메인 으로들어가면 된다.






정상적으로 동작한다면 ELB의 Instances의 상태(status)가 Inservice 단계에 들어오게된다.

여기서 인스턴스를 삭제하기 위해서는 Actions의  Remove from load Balancer를 누르도록 하자.




이제 생성한 2개의 인스턴스에 각각의 터미널로 원격 접속을 실행한다.


sudo tail -f /var/log/apache2/access.log

사용자가 접속할 때의 로그기록을 확인하기 위해 다음과 같은 명령어를 각각 입력한다.


그리고 테스트용 인스턴스에서 해당 로드 밸런서 도메인으로 부하를 걸어주면

2개의 인스턴스에서 균등하게 접속 로그가 갱신되는 것을 확인할 수있다.

로드 밸런서가 잘 동작하고 있는 것이다.

이렇게 ELB를 이용해서 부하를 균등하게 분산해 줄 수있다.






한가지 주의 사항으로는 데이터 베이스까지 다른 컴퓨터에서 쓰도록 나눠질경우 조회, 등록, 삭제 시

각각의 컴퓨터가 따로 데이터 베이스를 사용하기때문에 결과값이 달라진다.

따라서 이를 방지 하기위해 위와 같이 데이터 베이스는 한 컴퓨터에 지정해야한다.



출처 : 생활코딩, 아마존 웹 서비스

반응형

'개발' 카테고리의 다른 글

[AWS] Auto Scaling - 생성  (0) 2017.05.17
[AWS] Auto Scaling - Launch Configuration  (0) 2017.05.17
[AWS] Scale Out - ELB 생성  (0) 2017.05.13
[AWS] Scale Out - 흐름과 이론  (0) 2017.05.13
[AWS] Scale Up - 인스턴스 교체  (0) 2017.05.13

댓글