C'era una volta, quando stavo imparando Google Cloud Platform, volevo solo automatizzare il mio flusso di lavoro e i deployment con terraform e ho scritto questo IaaC (Infrastructure as a Code) per gestire la mia infrastruttura in modo facile e veloce.

Cosa può fare?

Creare un load balancer sicuro con SSL e trasformare le richieste HTTP in HTTPS con codice di redirezione 301.
Creare un Instance Template e impostare tutto su rete, subnet, script di avvio.
Creare un Instance Group e gestirlo. Se la CPU del tuo gruppo di istanze è superiore o inferiore a un valore, il gestore del gruppo di istanze scalerà automaticamente verso l'alto o verso il basso le VM.
Le istanze VM vengono eseguite con IP privato e l'accesso SSH a livello di progetto non è consentito di default. Gestire la regola del firewall per il controllo dello stato del load balancer.

Requisiti

Utilizzo

Ecco i passaggi...

  1. Clona il repository


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

  2. Autenticati su Google Platform anche se google-sdk non è installato. È davvero utile per le pipeline CI/CD! Se hai già effettuato l'accesso al tuo progetto Google Cloud Platform con gcloud auth login, puoi saltare questo passaggio.


    export GOOGLE_APPLICATION_CREDENTIALS=service-account-key.json

  3. Il Project ID è anche dichiarato via terraform ma se non esporti il valore, probabilmente otterrai un errore come quello qui sotto.


    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. Modifica i valori delle variabili


    file variables.tf.

  5. Impostazioni del Certificato SSL


    Incolla il tuo certificato SSL e il file della chiave sotto la cartella certs. Il Load Balancer deve essere sicuro! Puoi incollare la tua Public key certificate e Certificate chain in certificate.crt.


  6. Puoi seguire facilmente la versione del tuo ambiente di produzione con questa variabile. Inoltre, l'Instance Group ha bisogno della nuova versione per fare un rolling update.


    export TF_VAR_deploy_version=v1

  7. Inizializza


    terraform init

  8. Distribuiamo!


    terraform apply o terraform apply -auto-approve


Indirizzo del Repository

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

Spero che questo articolo ti sia d'aiuto.