안녕하세요,

베스핀글로벌 GCP Support팀입니다.


이번 아티클에서는 주제로 "GCE 기반 웹 서비스를 전역적(Global)으로 확장하는 방법"을 다루고자 합니다.



전역적으로 확장된 GCE 웹 서비스 아키텍쳐


단일 리전에서 서비스 중인 GCE 기반의 웹 서비스를 글로벌 서비스화 하기 위해 전역적으로 확장해야할 필요가 있을 수 있습니다.

Global Application Load Balancer[1]와 Managed Instance Group[2]을 사용하면 간단히 GCE 웹 서비스를 확장할 수 있습니다.

 

1) Global Application Load Balancer : 전세계 어디에서도 접근할 수 있는 단일 Anycast IP 주소를 진입점으로 제공합니다.

GFE(Google Front End)는 접근하는 사용자의 위치에 따라 가장 가까운 백엔드로 전달합니다.


2) Managed Instance Group : 기존 서비스를 템플릿화하여 여러 리전에 기존의 서비스와 동일한 서비스를 자동확장 기능과 함께 배포할 수 있습니다.






전역 GCE 웹 서비스 구성 방법


아래와 같이 전역 GCE 웹 서비스를 구성할 수 있습니다.


1. Compute Engine API 사용 설정



2. Network 생성 


GCP Console > VPC Network > VPC Networks > Subnets : Automatic

* 사용할 리전과 IP 범위를 특정하고 싶을 경우 Custom Subnet을 사용합니다.




3. Firewall 설정


GCP Console > VPC Network > Firewall
인스턴스에 보내는 모든 HTTP 요청을 허용하기 위한 방화벽 규칙을 생성합니다.

Network : lb-test
Target : All instances in the network
Source IP Ranges : 0.0.0.0/0
Protocols and ports : TCP(80)



4. Instance Template 생성

* Instance Group의 Instance 생성 시 사용됩니다.


GCP Console > Compute Engine > Instance templates

Networking > Network : lb-test

Manangement > Startup-script : sudo apt update && sudo apt -y install apache2

* 인스턴스 생성 시 Apache 웹서버를 설치하는 시작 스크립트를 추가합니다.






5. Instance Group 생성


GCP Console > Compute Engine > Instance groups 


Location : Multiple zones

Region : us-central1

Instance template : lb-template

Autoscaling mode : Autoscale

Autoscaling metrics : HTTP load balancing utilization 80%

Minimum number of instances : 1

Maximum number of instances : 5


Region 별 Instance groups를 추가 생성합니다.


Region : asia-east1

Region : europe-west1


그 외 설정은 동일합니다.





6. Load Balancer 생성


GCP Console > Network Services > Load Balancing HTTP(S) Load Balancing 생성



Backend 설정

Instance group : asia-east1
port numbers : 80
Balancing mode : Rate

Maximum RPS : 100



ADD Backend > europe-west1 / us-central1 추가 (설정은 동일)

Health check port : 80



Frontend 설정

IP version : IPv4
IP address : 새로 생성

* Load Balancer의 Frontend IP는 추후 DNS 설정 등을 위해 고정 IP를 사용하기를 권고드립니다.




7. Firewall 설정 변경


아래와 같은 Firewall 규칙을 추가합니다.


Network : lb-test
Target : All instances in the network
Source IP Ranges : 130.211.0.0/22 35.191.0.0/16
Protocols and ports : TCP(80)

130.211.0.0/22 : Compute Engine 부하 분산기에서 리디렉션되는 요청의 소스 IP
35.191.0.0/16 : Compute Engine 상태 확인에서 전송되는 요청의 소스 IP




8. LB IP주소로 접속하여 웹 서비스 상태 확인






참조 링크


[1] Appliation Load Balancer 개요

https://cloud.google.com/load-balancing/docs/application-load-balancer


[2] 인스턴스 그룹

https://cloud.google.com/compute/docs/instance-groups



관련 문의사항이 있으시면 Support Portal에 문의해 주시기 바랍니다.


감사합니다.