옛날 옛적에 Google Cloud Platform을 배우던 시절, 워크플로우와 배포를 Terraform으로 자동화하고 싶어서 인프라를 쉽고 빠르게 관리하기 위해 이 IaaC(Infrastructure as a Code)를 작성했다.

이게 무엇을 할 수 있는가?

SSL이 포함된 안전한 로드 밸런서를 생성하고 HTTP 요청을 301 리디렉션 코드로 HTTPS로 전환한다.
인스턴스 템플릿을 생성하고 네트워크, 서브넷, 시작 스크립트에 관한 모든 것을 설정한다.
인스턴스 그룹을 생성하고 관리한다. 인스턴스 그룹의 CPU가 특정 값보다 높거나 낮으면, 인스턴스 그룹 관리자가 자동으로 VM을 확장하거나 축소한다.
VM 인스턴스는 Private IP로 실행되며, 프로젝트 전체 SSH 접근은 기본적으로 허용되지 않는다. 로드 밸런서 상태 확인을 위한 방화벽 규칙을 관리한다.

요구사항

사용법

단계는 다음과 같다...

  1. 리포지토리 클론: git clone git@github.com:flightlesstux/gcp-instance-group-and-loadbalancer-w-terraform.git
  2. Google Platform 인증: export GOOGLE_APPLICATION_CREDENTIALS=service-account-key.json
  3. Project ID Export: export GOOGLE_PROJECT="0123456789012"
  4. 변수 값 편집: variables.tf 파일.
  5. SSL 인증서 설정: certs 폴더 아래에 SSL 인증서와 키 파일을 붙여넣기.
  6. 배포 버전: export TF_VAR_deploy_version=v1
  7. 초기화: terraform init
  8. 배포!: terraform apply 또는 terraform apply -auto-approve

리포지토리 주소

https://github.com/flightlesstux/gcp-instance-group-and-loadbalancer-w-terraform

이 글이 도움이 되길 바란다.