본문 바로가기

GCP

GCP-로드밸런싱

로드밸런싱은 트래픽을 사용가능한 서버에 분산시켜주는 역할을 한다.

예를 들어 A, B, C 세 개의 사용가능한 서버가 트래픽을 처리하는데 "A=70%, B=50%, C=10%" CPU를 사용하고 있을 때 서버로 새로운 요청(트래픽)이 들어오면 로드밸런싱은 서버들의 상태를 보고 적절하게 C로 트래픽을 전달한다.

 

 

로드밸런서가 있는 서버의 구성도

 

로드밸런서는 사용자로부터 오는 요청을 서버 앞에서 취하기 때문에 프런트 엔드와 백엔드 2가지 구성을 모두 갖는다.

요청이 들어오면 로드밸런서 프런트엔드는 HTTP 트래픽을 수신하고, 백엔드에 있는 서버로 요청을 전달한다. 서버가 요청에 대한 응답을 로드밸런서로 보내면 로드밸런서는 요청이 들어왔던 연결을 통해 응답을 전달한다.

 

 

 

로드밸런서 생성실습

*실습환경: Ubuntu

 

Step1. 백엔드 구성

 

백엔드는 현재 인스턴스 그룹만을 참고하기 때문에 백엔드 구성에 앞서 인스턴스 템플릿과 인스턴스 그룹을 만들어야 한다. 이번 실습에서는 백엔드에 아파치 웹서버를 두기 때문에 HTTP/HTTPS 트래픽 허용 설정과 시작 스크립트에 아파치 패키지를 설치하는 명령어를 입력한다. 

 

 

 

 

 

여기서 인스턴스 그룹은 Auto Scaling 역할을 담당한다. 인스턴스가 응답하지 않거나 예기치 않게 종료된 경우 새 인스턴스로 교체하고, 설정한 임계치보다 CPU 사용량이 높아질 경우 인스턴스를 추가 생성하도록 설정할 수 있다.

자동확장 기능을 사용하지 않는 경우 임의로 인스턴스 수를 설정해서 생성하면 된다. 

 

  • 인스턴스 최소 개수: 항상 그룹에 포함되는 인스턴스 개수 (2로 지정하면 CPU 사용량과 무관하게 항상 인스턴스 그룹에 2개의 인스턴스가 남아있다)
  • 인스턴스 최대 개수: 설정한 CPU 사용량 임계치를 초과하더라도 최대로 증가할 수 있는 인스턴스 개수

 

이제 백엔드 구성을 위한 준비가 끝났으므로 백엔드를 만들 수 있다.

 

 

 

 

백엔드 설정 사항에 포트번호와 분산모드가 있다. 포트번호는 백엔드에서 요청을 수신하는 포트번호를 선택하는 것이고, 분산모드는 로드밸런서에서 어떻게 인스턴스 그룹에 요청을 분산하는지를 선택하는 것이다

 

 

상태확인은 실행중인 인스턴스로만 요청이 전달되도록 로드밸런서에서 설정한 시간 간격마다 인스턴스가 정상적으로 실행되는지를 확인하는 설정이다.

 

 

Step2. 프런트 엔드 구성

 

백엔드 구성이 끝났으면 프런트 엔드 구성을 해야한다.

프런트 엔드 구성은 백엔드 구성만큼 복잡하지 않고 단순히 프런트 엔드 이름과 사용할 프로토콜

그리고 네트워크 서비스 계층을 설정하면 된다. 

 

 

로드밸런서(부하 분산기)가 생성된 것을 확인할 수 있다

'GCP' 카테고리의 다른 글

App Engine  (0) 2021.02.09
GCP-Cloud Datastore  (0) 2021.02.07
GCP-영구디스크 생성 및 사용 / 스냅샷  (0) 2021.02.04
Cloud Spanner  (0) 2021.02.03
구글 클라우드를 이용하여 워드프레스 배포  (0) 2021.02.01