Αυτοματισμός Google Cloud Platform με Terraform Εύκολα
Μπορείς να κάνεις deploy τον load balancer, το instance template, το instance group και τους firewall rules εύκολα με terraform.

Μια φορά κι έναν καιρό, όταν μάθαινα το Google Cloud Platform, ήθελα απλά να αυτοματοποιήσω τη ροή εργασίας και τα deployments μου με terraform και έγραψα αυτό το IaaC (Infrastructure as a Code) για να διαχειρίζομαι την υποδομή μου εύκολα και γρήγορα.
Τι μπορεί να κάνει αυτό;
Δημιουργεί έναν ασφαλή load balancer με SSL και μετατρέπει τα HTTP requests σε HTTPS με κωδικό ανακατεύθυνσης 301.
Δημιουργεί ένα Instance Template και ρυθμίζει τα πάντα σχετικά με το δίκτυο, το subnet, το startup script.
Δημιουργεί ένα Instance Group και το διαχειρίζεται. Αν η CPU του instance group σου είναι περισσότερο ή λιγότερο από μια τιμή, ο instance group manager θα κάνει αυτόματα scale up ή scale down τα VMs.
Τα VM instances τρέχουν με private IP και η project-wide πρόσβαση SSH δεν επιτρέπεται εξ ορισμού. Διαχείριση του firewall rule για τον health check του load balancer.
Απαιτήσεις
- Ενεργοποίησε το Compute Engine API αν δεν είναι ενεργοποιημένο.
- Δημιούργησε Service account με ρόλο `
Editor(ή ό,τι θέλεις) και εξήγαγε το αρχείο κλειδιού. - Δημιούργησε Cloud Google Storage Bucket για να διατηρείς το terraform state. Αν θέλεις, μπορείς να προσθέσεις το service account σου ως μέλος στο bucket.
- Δημιούργησε Compute Engine Image Μπορείς να δημιουργήσεις ένα VM βασισμένο σε Debian 10 και να εγκαταστήσεις nginx μέσω
sudo apt install -y nginxκαι να δοκιμάσεις αυτόν τον terraform κώδικα. Μην ξεχάσεις την εντολήsudo systemctl enable nginxπριν μετατρέψεις το VM σου σε image.
Χρήση
Ορίστε τα βήματα...
- Κάνε clone το repository
git clone git@github.com:flightlesstux/gcp-instance-group-and-loadbalancer-w-terraform.git - Αυθεντικοποίηση στο Google Platform ακόμα κι αν το google-sdk δεν είναι εγκατεστημένο. Είναι πραγματικά χρήσιμο για CI/CD pipelines! Αν έχεις ήδη συνδεθεί στο Google Cloud Platform project σου όπως
gcloud auth login, μπορείς να παραλείψεις αυτό το βήμα.export GOOGLE_APPLICATION_CREDENTIALS=service-account-key.json - Το Project ID δηλώνεται επίσης μέσω terraform, αλλά αν δεν εξάγεις την τιμή, πιθανότατα θα λάβεις ένα σφάλμα όπως παρακάτω.
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" { - Επεξεργασία τιμών μεταβλητών
αρχείο variables.tf. - Ρυθμίσεις Πιστοποιητικού SSL
Επικόλλησε το πιστοποιητικό SSL και το αρχείο κλειδιού κάτω από τον φάκελοcerts. Ο load balancer πρέπει να είναι ασφαλής! Μπορείς να επικολλήσεις τοPublic key certificateκαι τοCertificate chainστοcertificate.crt. - Μπορείς να παρακολουθείς την έκδοση του production environment σου εύκολα με αυτή τη μεταβλητή. Και επίσης, το Instance group χρειάζεται τη νέα έκδοση για να κάνει rolling update.
export TF_VAR_deploy_version=v1 - Αρχικοποίηση
terraform init - Ας κάνουμε Deploy
terraform applyήterraform apply -auto-approve
Διεύθυνση Repository
https://github.com/flightlesstux/gcp-instance-group-and-loadbalancer-w-terraform
Ελπίζω αυτό το άρθρο να σε βοηθήσει.
Περισσότερα από τον Ercan
Δύο ακόμη ιστότοποι, ίδιος συγγραφέας, διαφορετικό έδαφος.
AI, LLMs, agents, εφαρμοσμένη ML.
Σημειώσεις πεδίου για AI workloads. Ανάλυση κόστους Bedrock, agent patterns, trade-offs αποθήκευσης διανυσμάτων, failure modes σε παραγωγή.
Επισκεφθείτε ercan.ai →Ο κόμβος. Σχετικά, συμβουλευτική, επικοινωνία.
Προσωπικός κόμβος και για τις δύο διαδρομές γραφής. Ποιος είμαι, πώς λειτουργεί η συμβουλευτική, πώς να επικοινωνήσετε.
Επισκεφθείτε ercanermis.com →