안녕하세요,
베스핀글로벌 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에 문의해 주시기 바랍니다.
감사합니다.