RousselTMLEARNING

TP · Cloud Computing : de la découverte à l'expertise

TP : Infrastructure as Code avec Terraform avec correction

La correction est intégrée au TP (Voir les encadrés de couleur vert)

Ce que vous allez apprendre dans ce TP
  • Décrire une ressource en HCL
  • Appliquer avec plan puis apply
  • Détecter une dérive

Terraform + LocalStack #

Ce que vous allez apprendre dans cette section
  • Décrire une ressource en HCL
  • Appliquer avec plan puis apply
  • Détecter une dérive

Contexte. Une infrastructure créée à la main est impossible à reproduire et à auditer. L'Infrastructure as Code décrit les ressources dans des fichiers versionnés : vous le pratiquez avec Terraform et détectez ce qu'est une dérive de configuration.

Prérequis : TP précédent (LocalStack), Terraform installé  ·  Durée estimée : 40 min

Un bucket versionné décrit en HCL.
  1. 1. Configurer le provider

    Pourquoi ? Le provider indique à Terraform quelle API cibler ; en le pointant sur LocalStack, le même code fonctionnerait sur le vrai AWS en retirant les surcharges.

    Pointez le provider AWS vers LocalStack.
    Voir la correction
    # main.tf
    terraform {
      required_providers { aws = { source = "hashicorp/aws", version = "~> 5.0" } }
    }
    provider "aws" {
      region = "eu-west-3"
      access_key = "test"
      secret_key = "test"
      skip_credentials_validation = true
      skip_requesting_account_id  = true
      s3_use_path_style           = true
      endpoints { s3 = "http://localhost:4566" }
    }
  2. 2. Décrire la ressource

    Pourquoi ? Décrire le versioning et les étiquettes dans le code garantit qu'ils seront identiques partout et auditables dans Git.

    Créez un bucket avec le versioning et une étiquette env=lab.
    Voir la correction
    variable "nom" { default = "rapports-tf" }
    resource "aws_s3_bucket" "b" { bucket = var.nom  tags = { env = "lab", equipe = "plateforme" } }
    resource "aws_s3_bucket_versioning" "v" {
      bucket = aws_s3_bucket.b.id
      versioning_configuration { status = "Enabled" }
    }
    output "arn" { value = aws_s3_bucket.b.arn }
  3. 3. Plan et application

    Pourquoi ? plan montre ce qui va changer avant de le faire : c'est le garde-fou qui évite les destructions accidentelles.

    Exécutez le cycle complet et observez l'état.
    Voir la correction
    terraform init
    terraform fmt -check && terraform validate
    terraform plan -out=tfplan
    terraform apply tfplan
    terraform state list && terraform output
  4. 4. Dérive et destruction

    Pourquoi ? Modifier à la main puis relancer plan fait comprendre la dérive : l'état réel s'écarte du code, et Terraform propose de le corriger.

    Modifiez la ressource à la main, détectez la dérive, puis détruisez l'infrastructure.
    Voir la correction
    aws --endpoint-url http://localhost:4566 s3api put-bucket-versioning --bucket rapports-tf --versioning-configuration Status=Suspended
    terraform plan        # montre la dérive à corriger
    terraform apply -auto-approve
    terraform destroy -auto-approve

Niveau de difficulté : ●●○○○ (2/5)

Mon suivi

  • ⏱ Durée estimée : ≈ 40 min

Connectez-vous pour suivre votre progression et prendre des notes. Se connecter

✉️ Poser une question

Articles recommandés

Bonnes pratiques Cloud : sécurité, résilience, coûts et exploitation

Bonnes pratiques du Cloud Computing : piliers d'une architecture bien conçue, IAM et moindre priv...

Les modèles de déploiement Cloud : public, privé, hybride, communautaire et multi-cloud

Comprendre les modèles de déploiement du Cloud Computing selon le NIST : cloud public, privé, com...

Arrêtez de passer au Cloud, au micro-service...

Je vais certainement choquer plus d'un dans cet article mais n'hésitez à lire jusqu'au bout en en...

CaaS état de l'art et bonnes pratiques

Le Container as a Service (CaaS) est un modèle de cloud computing qui permet aux entreprises de g...

Qu'est-ce que le Cloud Computing ? La définition du NIST

Comprenez les fondamentaux du Cloud Computing à travers les 5 caractéristiques essentielles défin...

Élasticité vs Scalabilité : Les clés de la performance

Comprenez comment le cloud s'adapte automatiquement à la charge de vos utilisateurs.

Introduction au FinOps : Maîtriser sa facture Cloud

Comment passer du CapEx à l'OpEx tout en gardant le contrôle financier.

Le Serverless : L'informatique sans serveurs à gérer

Focus sur le Function as a Service (FaaS) et l'abstraction de l'infrastructure.

Edge Computing : Amener le Cloud au plus près des données

Découvrez pourquoi le traitement à la périphérie du réseau est essentiel pour l'IoT et la latence.