Instance Group과 전역 Load Balancer를 사용하여 Google Compute Engine를 전역적으로 확장할 수 있습니다.



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주소로 접속하여 웹 서비스 상태 확인