Comment créer une instance EC2 avec Terraform

Avec Terraform, les développeurs peuvent s’appuyer sur des pratiques de programmation familières pour fournir les ressources sous-jacentes à leurs applications. Suivez ce tutoriel pour débuter avec l’outil d’IaC et déployer une instance Amazon EC2.

Pour tester un logiciel dans un environnement de développement, de test, ou pour déployer un logiciel en production, les développeurs peuvent être amenés à créer des instances EC2. Avec Terraform, ils peuvent utiliser du code pour rationaliser ce processus.

Une instance EC2 est une machine virtuelle qui fonctionne dans le cloud AWS. AWS gère le matériel sous-jacent, ce qui permet aux utilisateurs de se concentrer sur le logiciel qu’ils exécutent plutôt que sur les tâches de gestion de l’infrastructure. Terraform est un outil d’infrastructure as code qui permet aux administrateurs informatiques et aux développeurs de provisionner de manière programmatique les ressources d’infrastructure.

Dans ce tutoriel, découvrez les avantages de Terraform et comment l’utiliser pour lancer une instance EC2 dans AWS.

Créer une instance EC2 avec Terraform

Dans cette section, nous allons écrire le code pour créer une instance EC2. Pour ce faire, nous verrons comment configurer le fichier main.tf et les fichiers variables pour s’assurer que l’instance est reproductible dans n’importe quel environnement.

Les prérequis :

  • Avoir un compte AWS ;
  • Avoir accès aux informations d’identification IAM (Identity and Access Management) d’AWS et disposer d’un accès programmatique. Les informations d’identification IAM dont vous avez besoin pour EC2 sont disponibles ici ;
  • Configurer les informations d’identification AWS avec aws configure dans l’interface de ligne de commande AWS (CLI). Vous trouverez plus de détails ici ;
  • Un VPC configuré pour EC2. Vous pouvez trouver un modèle CloudFormation pour le faire ici ; et
  • Un éditeur de code ou de texte.

Pour les besoins de cette section, nous utiliserons Visual Studio Code comme éditeur de code. Cependant, n’importe quel éditeur de texte peut fonctionner.

Étape 1. Créer le fichier main.tf

Ouvrez votre éditeur de texte/code et créez un nouveau répertoire. Créez un fichier appelé main.tf. En configurant le fichier main.tf, vous allez créer et utiliser le fournisseur Terraform AWS – un plug-in qui permet à Terraform de communiquer avec la plateforme AWS – et l’instance EC2.

Tout d’abord, ajoutez le code du fournisseur pour vous assurer que vous utilisez le fournisseur AWS.

terraform {
  required_providers {
    aws = {
      source = "hashicorp/aws"
    }
  }
}

Ensuite, configurez votre ressource Terraform, qui décrit un objet d’infrastructure, pour l’instance EC2. Cela permettra de créer l’instance. Définissez le type d’instance et configurez le réseau.

resource "aws_instance" "" {
  ami           = var.ami
  instance_type = var.instance_type

  network_interface {
    network_interface_id = var.network_interface_id
    device_index         = 0
  }

  credit_specification {
    cpu_credits = "unlimited"
  }
}

Étape 2. Créez le fichier variables.tf

Une fois le fichier main.tf créé, il est temps de mettre en place les variables nécessaires. Ces variables vous permettent de transmettre des valeurs et garantissent la reproductibilité du code. Grâce aux variables, vous pouvez utiliser votre code dans n’importe quel environnement EC2.

Lorsque vous configurez le fichier variables.tf, incluez les trois variables suivantes :

  • L’identifiant de l’interface réseau à joindre à l’instance EC2 depuis le VPC.
  • L’image machine Amazon (AMI) d’une instance. Dans l’extrait de code ci-dessous, l’AMI est Ubuntu par défaut.
  • La taille de l’instance. Dans l’extrait de code ci-dessous, le type d’instance est par défaut une taille d’instance t2 Micro.

Dans le fichier variables.tf, créez les variables suivantes :

variable "network_interface_id" {
  type = string
  default = "network_id_from_aws"
}

variable "ami" {
    type = string
    default = "ami-005e54dee72cc1d00"
}

variable "instance_type" {
    type = string
    default = "t2.micro"
}

Étape 3. Créez l’environnement EC2

Pour déployer l’environnement EC2, assurez-vous que vous êtes dans le module/répertoire Terraform dans lequel vous écrivez le code Terraform, et exécutez les commandes suivantes :

  • terraform init. Initialise l’environnement et récupère le provider AWS.
  • terraform plan. Crée un plan d’exécution pour l’environnement et confirme qu’aucun bug n’a été trouvé.
  • terraform apply --auto-approve. Crée et approuve automatiquement l’environnement.

Étape 4. Nettoyer l’environnement

Pour détruire tous les environnements Terraform, assurez-vous que vous êtes dans le module/répertoire Terraform que vous avez utilisé pour créer l’instance EC2 et exécutez la commande terraform destroy.

Pour approfondir sur Outils de développement