Automazione di Google Cloud Platform con Terraform Facilmente
Puoi distribuire il tuo load balancer, template di istanza, gruppo di istanze e regole firewall facilmente con terraform.

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
- Abilita Compute Engine API se non è abilitata.
- Crea un Service Account con ruolo `
Editor(o quello che preferisci) ed esporta il file della chiave. - Crea un Cloud Google Storage Bucket per mantenere lo stato di terraform. Se vuoi, puoi aggiungere il tuo service account come membro al bucket.
- Crea un'Immagine Compute Engine Puoi creare una VM basata su Debian 10 e installare nginx via
sudo apt install -y nginxe testare questo codice terraform. Non dimenticare il comandosudo systemctl enable nginxprima di trasformare la tua VM in immagine.
Utilizzo
Ecco i passaggi...
- Clona il repository
git clone git@github.com:flightlesstux/gcp-instance-group-and-loadbalancer-w-terraform.git - 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 - 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" { - Modifica i valori delle variabili
file variables.tf. - Impostazioni del Certificato SSL
Incolla il tuo certificato SSL e il file della chiave sotto la cartellacerts. Il Load Balancer deve essere sicuro! Puoi incollare la tuaPublic key certificateeCertificate chainincertificate.crt. - 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 - Inizializza
terraform init - Distribuiamo!
terraform applyoterraform 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.
Altro da Ercan
Altri due siti, stesso autore, terreno diverso.
IA, LLMs, agenti, ML applicato.
Note sul campo su workload IA. Analisi dei costi Bedrock, pattern di agenti, trade-off di storage vettoriale, failure mode in produzione.
Visita ercan.ai →L'hub. Chi sono, consulenza, contatti.
Hub personale per entrambe le tracce di scrittura. Chi sono, come funziona la consulenza, come contattarmi.
Visita ercanermis.com →