Search
Duplicate

클라우드 컴퓨팅 과제 1

부하 분산기 생성 및 운영

ref) 수형님
부하분산기_생성_및_운영.pdf.zip
4502.9KB
컴퓨터공학과 21913660 김형준

부하분산기

부하분산 또는 로드 밸런싱(Load balancing)은 컴퓨터 네트워크 기술의 일종으로 둘 혹은 셋 이상의 CPU 혹은 저장 장치와 같은 컴퓨터 자원들에게 작업을 나누는 것을 의미한다. 이렇게 작업을 나눔으로서 서비스의 가용성 및 응답시간을 최적화 시킬 수가 있다. 부하분산을 위한 대부분의 응용 프로그램 서비스들은 다수의 서버를 가지고 하나의 클라이언트 서비스를 지원하는 방식이다. 만약 부하분산을 하지 않으면 클라이언트가 소규모일 경우에는 감당이 가능하겠지만, 서비스가 늘어나 대규모로 변화할 경우에는 정상적인 운영이 불가능할 것이다. 이러한 부하분산은 트래픽이 많이 발생하는 웹 사이트, IRC 네트워크, FTP 사이트, NNTP 서버 그리고 DNS 서버에 적용이 되고 있다. 이번 실습에서는 클라우드 서비스로 GCP (Google Cloud Platform)을 사용하였고, 그 중 활용한 서비스로는 VM 인스턴스, 인스턴스 그룹, 고정 ip, 로드 밸런서 서비스이다.

실습 과정

1. 인스턴스 생성

실습을 위해 먼저 VM 인스턴스를 생성해준다. 교수님이 보여주신 대로 먼저 머신 유형을 제일 작은 e2-micro로 설정하고, HTTP와 HTTPS 트래픽을 허용하여 인터넷에 들어오는 특정 네트워크 트래픽을 허용한다. 마지막으로 기본 내부 IP와 외부 IPv4 주소를 임시로 설정해주었다.

2. 인스턴스 그룹 생성 & 고정 IP 주소 생성

그리고 두 개의 인스턴스의 부하 분산 여부를 비교해주기 위해 두 인스턴스를 하나의 그룹으로 묶어주었다.
그 후, 부하 분산기로 접속해 줄 고정 IP를 생성해준다.

3. 부하 분산기 생성

먼저 HTTP(S) 부하 분산으로 만들어준다.
먼저 백엔드를 구성해준다
그 후 상태 체크를 할 health-check를 만들어준다.
상태 기준으로 확인 간격 10초, 제한 시간 5초로 구성해준다.
다음으로 프런트엔드를 구성해준다.
또한 IP address로 고정 IP 주소를 지정한다.
이렇게 세팅하여 부하 분산기를 만들어주었다.
1.
초기 세팅으로 백엔드 nodejs를 설치한다.
2.
npm을 설치하고 인스턴스 각각 리액트 프로젝트를 생성한다.
3.
run build를 하여 부하 분산을 측정한다.
4.
고정 IP주소 34.120.207.76 로 접속하여 새로고침을 반복적으로 눌러 부하 분산을 측정한다.
→ first와 second 각각 로그가 찍혀있는 것을 볼 수 있다.
→ 그리고 Stress 테스트도 해보았는데, CPU 사용률을 끝까지 올려두고 쉴새없이 새로고침을 누른 결과 인스턴스 1에서는 거의 평균적으로 1ns와 2ns가 골고루 찍혀있는데, 인스턴스 2에서는 거의 다 1ns로 처리되는 것을 볼 수가 있었다.
→ Stress 테스트 결과
:) 시행착오가 있어 인스턴스, ip주소이름 등을 여러번 지우고 다시 만들었어서 이름이 약간 차이가 났을 수도 있습니다.