Il etait une fois, quand j'apprenais Google Cloud Platform, je voulais simplement automatiser mon workflow et mes deploiements avec terraform et j'ai ecrit cet IaaC (Infrastructure as a Code) pour gerer mon infrastructure facilement et rapidement.

Que peut faire cela ?

Creer un load balancer securise avec SSL et transformer les requetes HTTP en HTTPS avec le code de redirection 301.
Creer un Instance Template et tout configurer concernant le reseau, le sous-reseau, le script de demarrage.
Creer un groupe d'instances et le gerer. Si le CPU de votre groupe d'instances est superieur ou inferieur a une valeur, le gestionnaire de groupe d'instances augmentera ou reduira automatiquement le nombre de VMs.
Les instances VM fonctionnent avec une IP privee et l'acces SSH a l'echelle du projet n'est pas autorise par defaut. Gerer la regle de pare-feu pour le health check du load balancer.

Prerequis

Utilisation

Voici les etapes...

  1. Cloner le depot


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

  2. S'authentifier a Google Platform meme si le google-sdk n'est pas installe. C'est vraiment utile pour les pipelines CI/CD ! Si vous etes deja connecte a votre projet Google Cloud Platform avec gcloud auth login, vous pouvez sauter cette etape.


    export GOOGLE_APPLICATION_CREDENTIALS=service-account-key.json

  3. L'ID du projet est egalement declare via terraform mais si vous n'exportez pas la valeur, vous obtiendrez probablement une erreur comme ci-dessous.


    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. Modifier les valeurs des variables


    fichier variables.tf.

  5. Parametres du certificat SSL


    Collez votre certificat SSL et le fichier de cle dans le dossier certs. Le Loadbalancer doit etre securise ! Vous pouvez coller votre Public key certificate et Certificate chain dans certificate.crt.


  6. Vous pouvez suivre facilement la version de votre environnement de production avec cette variable. Et aussi, le groupe d'instances a besoin de la nouvelle version pour faire une mise a jour progressive.


    export TF_VAR_deploy_version=v1

  7. Initialiser


    terraform init

  8. Deployons


    terraform apply ou terraform apply -auto-approve


Adresse du Depot

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

J'espere que cet article vous aidera.