Era uma vez, quando eu estava aprendendo Google Cloud Platform, eu queria automatizar meu fluxo de trabalho e deploys com terraform e escrevi esta IaaC (Infraestrutura como Codigo) para gerenciar minha infraestrutura de forma facil e rapida.

O que isso pode fazer?

Criar um load balancer seguro com SSL e transformar as requisicoes HTTP em HTTPS com codigo de redirecionamento 301.
Criar um Instance Template e configurar tudo sobre rede, subnet, script de inicializacao.
Criar um Instance Group e gerencia-los. Se a CPU do seu instance group estiver acima ou abaixo de um valor, o gerenciador do instance group automaticamente aumentara ou diminuira a escala das VMs.
As instancias VM rodam com IP privado e o acesso SSH em todo o projeto nao e permitido por padrao. Gerenciar a regra de firewall para health check do load balancer.

Requisitos

Uso

Aqui estao os passos...

  1. Clone o repositorio


    git clone git@github.com:flightlesstux/gcp-instance-group-and-loadbalancer-w-terraform.git

  2. Autentique-se na Google Platform mesmo se o google-sdk nao estiver instalado. E realmente util para pipelines CI/CD! Se voce ja fez login no seu projeto Google Cloud Platform como gcloud auth login, pode pular este passo.


    export GOOGLE_APPLICATION_CREDENTIALS=service-account-key.json

  3. O Project ID tambem e declarado via terraform, mas se voce nao exportar o valor, provavelmente recebera um erro como abaixo.


    export GOOGLE_PROJECT="0123456789012"

    │ Error: project: required field is not set

    │ with google_compute_instance_group_manager.this,
    │ on group_manager.tf line 1, in resource "google_compute_instance_group_manager" "this":
    │ 1: resource "google_compute_instance_group_manager" "this" {



  4. Editar valores das variaveis


    arquivo variables.tf.

  5. Configuracoes do Certificado SSL


    Cole seu certificado SSL e o arquivo de chave na pasta certs. O Loadbalancer precisa ser seguro! Voce pode colar seu Public key certificate e Certificate chain em certificate.crt.


  6. Voce pode acompanhar a versao do seu ambiente de producao facilmente com esta variavel. E tambem, o Instance group precisa da nova versao para fazer um rolling update.


    export TF_VAR_deploy_version=v1

  7. Inicializar


    terraform init

  8. Vamos Implantar


    terraform apply ou terraform apply -auto-approve


Endereco do Repositorio

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

Espero que este artigo ajude voce.