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