Es war einmal, als ich Google Cloud Platform lernte, wollte ich einfach meinen Workflow und meine Deployments mit Terraform automatisieren und schrieb dieses IaaC (Infrastructure as a Code), um meine Infrastruktur einfach und schnell zu verwalten.

Was kann das?

Einen sicheren Load Balancer mit SSL erstellen und HTTP-Anfragen mit 301-Weiterleitungscode auf HTTPS umleiten.
Ein Instance Template erstellen und alles zu Netzwerk, Subnetz und Startskript festlegen.
Eine Instance Group erstellen und verwalten. Wenn die CPU deiner Instance Group mehr oder weniger als ein bestimmter Wert ist, wird der Instance Group Manager die VMs automatisch hoch- oder herunterskalieren.
VM-Instanzen laufen mit privater IP und projektweiter SSH-Zugriff ist standardmassig nicht erlaubt. Firewall-Regel fur den Load Balancer Health Check verwalten.

Voraussetzungen

Verwendung

Hier sind die Schritte...

  1. Repository klonen


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

  2. Bei Google Platform authentifizieren, selbst wenn das Google SDK nicht installiert ist. Das ist wirklich nutzlich fur CI/CD-Pipelines! Wenn du bereits mit gcloud auth login bei deinem Google Cloud Platform-Projekt angemeldet bist, kannst du diesen Schritt uberspringen.


    export GOOGLE_APPLICATION_CREDENTIALS=service-account-key.json

  3. Die Project ID wird ebenfalls per Terraform deklariert, aber wenn du den Wert nicht exportierst, wirst du wahrscheinlich einen Fehler wie unten erhalten.


    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. Variablenwerte bearbeiten


    variables.tf-Datei.

  5. SSL-Zertifikat-Einstellungen


    Fuge dein SSL-Zertifikat und die Schlusseldatei unter dem Ordner certs ein. Der Load Balancer muss sicher sein! Du kannst dein Public key certificate und Certificate chain in certificate.crt einfugen.


  6. Du kannst die Version deiner Produktionsumgebung einfach mit dieser Variable verfolgen. Und die Instance Group benotigt die neue Version fur ein Rolling Update.


    export TF_VAR_deploy_version=v1

  7. Initialisieren


    terraform init

  8. Lass uns deployen


    terraform apply oder terraform apply -auto-approve


Repository-Adresse

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

Ich hoffe, dieser Artikel hilft dir.