카테고리 없음

[GCP-6] Cloud Load Balancing & Auto Scaling

솜정 2022. 1. 15. 09:00

0. 지난 글

[GCP-1] 구글 클라우드 기본 개념

https://ejtag.tistory.com/23

[GCP-2] 구글 클라우드 실습 준비

https://ejtag.tistory.com/24

[GCP-3] 구글 클라우드 IAM

https://ejtag.tistory.com/25

[GCP-4] Compute Engine

https://ejtag.tistory.com/26

[GCP-5] VPC

https://ejtag.tistory.com/27

 

7. Cloud Load Balancing & Auto Scaling

로드 밸런싱은 한 번에 많은 요청으로 트래픽이 증가했을 때 이를 처리할 수 있을 만큼 여러 대의 VM에 트래픽을 분산해서 보내 부하 발생 시 처리를 하는 기술이다.

cloud load balancing은 모든 트래픽(https, tcp, udp)에 적용할 수 있다.

cloud load balancing은 가동 준비 과정 없이 compute engine에서 애플리케이션을 최대 범위까지 확장할 수 있다.

============================================================================

* 가동 준비 과정이란?

갑자기 높은 부하가 들어왔을 때 그것을 받아내지 못하는 경우를 대비해 그만한 부하를 일정 시간 주어 로드 밸런싱 크기를 키우는 작업

============================================================================

트래픽 증가 크기에 따라 자동으로 확장되어 가까운 지역을 우선적으로 라우팅하고, 그곳도 장애가 발생한다면 자동으로 다른 지역으로 차례로 라우팅을 해준다.

 

7.1.1 global VS regional 차이

- global load balancing : 글로벌하게 서비스가 이뤄져야 할 때, 하나의 애니캐스트 IP를 통해서 전역으로 부하 분산이 이뤄지고 IPv6를 지원한다.

* 지원 종류 : HTTP(s)  load balancing, SSL Proxy, TCP Proxy

- regional load balancing : 하나의 지역에 집중적으로 트래픽이 발생할때, IPv4 만 지원한다.

* 지원 종류 : Network TCP/UDP  load balancing, internal TCP/UDP load balancing

 

7.1.2. External VS Internal 차이

- 내부(Internal) : 다른 네트워크 사용 없이 VPC 네트워크 내에서만 트래픽이 발생하는 경우 사용한다.

* 지원 종류 : internal TCP/UDP load balancing

- 외부(External) : VPC 네트워크가 아닌 다른 네트워크를 통해서 트래픽이 발생하는 경우 사용한다.

* 지원 종류 : HTTP(s)  load balancing, SSL Proxy, Network TCP/UDP  load balancing, TCP Proxy

 

7.2 Auto Scaling이란?

오토 스케일링은 리소스 사용량에 따라서 VM이 자도응로 증가하고 감소하는 기능이다.

GCP에서는 인스턴스 그룹을 통해서 설정할 수 있다.

인스턴스 템플릿을 통해서 관리형 인스턴스 그룹을 만들면 동종의 인스턴스들이 만들어지기 때문에 애플리케이션에서 트래픽 증가와 감소를 원활하게 처리할 수 있다.

 

오토 스케일링 작동 기준

- CPU 사용률 : 원하는 CPU 사용률을 유지하도록 인스턴스 그룹에 VM 인스턴스를 추가하거나 삭제한다.

- 로드 밸런싱 사용량 : cloud load balancing 의 백엔드 서비스에서 정의한다.

- stackerdriver monitoring 

- 3가지가 조합된 사용자 기준 

* stackerdriver : GCP 내의 리소스들을 자동으로 또는 맞춤으로 모니터링하고 로깅해 줄 수 있는 서비스

 

[실습 7.1 - VM 인스턴스에 오토 스케일링과 로드 밸런서 달기]

[실습 순서]

아파치 서버 설정이 된 VM 인스턴스 만들기 > 스냅샷찍기 > 디스크 만들기 > 이미지 만들기 > 인스턴스 템플릿 만들기 > 인스턴스 그룹 만들기 > 로그 밸런서 달기

1. 아파치 서버 설정이 된 VM 인스턴스 만들기

VM 인스턴스 만들기
관리 > 시작 스크립트에 VM 인스턴스가 생성되면 자동으로 apache2를 설치해 index.html을 설정하게 한다.
VM 인스턴스가 생성되었다.

 

외부 IP로 접속하면 index가 잘 성정된것을 확인할 수 있다.

2. 스냅샷 만들기

compute engine > 스냅샷 > 스냅샷만들기 메뉴에 접근해 위와 같이 설정 후 스냅샷을 만든다.
스냅샷이 두번째 란에 만들어짐

3. 디스크 만들기

compute engine > 디스크 > 디스크 만들기 메뉴에 접근해 위와 같이 설정 후 디스크를 만든다.

4. 이미지 만들기

compute engine > 이미지 > 이미지 만들기 메뉴에 접근해 위와 같이 설정 후 이미지를 만든다.

5. 인스턴스 템플릿 만들기

compute engine > 인스턴스 템플릿 > 인스턴스 템플릿 만들기 메뉴에 접근해 위와 같이 설정 후 인스턴스 템플릿을 만든다.

6. 인스턴스 그룹 1(US) 만들기 

compute engine > 인스턴스 그룹 > 인스턴스 그룹 만들기에 접근해 위와 같이 설정한다. 

위 설정 중 자동확장 기능을 켜면 Autoscaling기능이 활성화되며, 이때 자동 확장 정책을 CPU 사용량/부하분산 사용률/stackdriver모니터링 측정항목 중 선택하고 기준을 정하여 autoscaling이 되도록 설정할 수 있다.

 

6. 인스턴스 그룹2(Europe) 만들기 

5번과 같이 설정하고 지역만 Europe으로 변경해서 인스턴스 그룹을 총 2개 만든다.

 

7. 로드 밸런서 달기

네트워크 서비스 > 부하 분산 > 부하 분산기 만들기 에서 https부하분산 구성 시작을 클릭한다.

백엔드 구성백엔드 서비스를 2개 생성한다.

백엔드를 europe, us 2개 생성
상태확인 > 상태확인생성
호스트 및 경로 규칙 메뉴에서는 특정 규칙에 따라서 라우팅 방식을 지정할 수 있지만, 설정하지 않고 넘어간다.
프런트엔드 구성을 위와 같이 하고 만들기 클릭한다.
부하 분산기 생성 완료
부하 분산기의 IP주소를 입력해도 apache server에 접근 가능하다.