Comment Configurer un Serveur AWS EC2 avec Terraform sur Mac [Guide Étape par Étape]
Introduction : La Méthode Intelligente pour Lancer des Serveurs AWS depuis Mac
Si vous avez déjà créé une instance EC2 manuellement via la Console AWS, vous savez déjà combien il est facile de faire des erreurs — sélectionner la mauvaise région, oublier de configurer les groupes de sécurité ou ne pas configurer la clé SSH.
Maintenant imaginez lancer votre infrastructure cloud entière automatiquement avec une seule commande. C'est là qu'intervient Terraform.
Terraform est un puissant outil d'Infrastructure as Code (IaC) qui vous permet de définir, versionner et automatiser les déploiements cloud sur AWS, Azure, Google Cloud et plus encore. Pour les développeurs travaillant sur Mac, il offre un moyen propre, efficace et reproductible de gérer les serveurs — sans jamais toucher au tableau de bord AWS.
Dans ce guide, vous apprendrez exactement comment :
- Configurer Terraform sur votre Mac
- Le connecter avec les identifiants AWS
- Écrire un fichier de configuration Terraform pour lancer une instance EC2
- Appliquer, vérifier et gérer votre déploiement en toute confiance
À la fin, vous aurez un serveur AWS EC2 entièrement fonctionnel déployé avec Terraform — reproductible à tout moment et en tout lieu.
Étape 1 : Ce Dont Vous Avez Besoin Avant de Commencer
Avant de plonger, assurez-vous d'avoir les prérequis suivants :
🧰 Configuration Système Requise
- macOS 12+
- Homebrew (pour une installation facile des paquets)
- Un compte AWS avec des clés d'accès
- Connaissances de base d'AWS EC2
☁️ Configuration du Compte AWS
-
Connectez-vous à votre Console AWS.
-
Allez dans IAM → Users → Security Credentials.
-
Générez un Access Key ID et un Secret Access Key.
- Stockez-les en sécurité — Terraform en a besoin pour s'authentifier auprès d'AWS.
Étape 2 : Installer Terraform sur Mac
La façon la plus simple d'installer Terraform sur macOS est via Homebrew.
brew tap hashicorp/tap
brew install hashicorp/tap/terraform
Vérifiez l'installation :
terraform -version
✅ Exemple de sortie :
Terraform v1.9.0
on darwin_amd64
C'est tout ! Terraform est maintenant installé globalement sur votre système.
Étape 3 : Configurer AWS CLI
Terraform communique avec AWS via AWS CLI. Installons et configurons-le.
brew install awscli
Une fois installé, configurez-le avec vos identifiants :
aws configure
Entrez :
AWS Access Key ID: <your-access-key>
AWS Secret Access Key: <your-secret-key>
Default region name: us-east-1
Default output format: json
Cela crée un fichier de configuration dans ~/.aws/credentials, que Terraform utilisera pour l'authentification.
Étape 4 : Créer un Nouveau Projet Terraform
Nous allons maintenant créer un répertoire de projet pour vos fichiers Terraform.
mkdir terraform-ec2-setup
cd terraform-ec2-setup
Dans ce dossier, créez un nouveau fichier appelé main.tf :
touch main.tf
C'est ici que toutes vos configurations Terraform seront placées.
Étape 5 : Écrire votre Fichier de Configuration Terraform
Définissons tout ce dont Terraform a besoin pour créer une instance EC2 — fournisseur, région, AMI, type d'instance et groupes de sécurité.
Ouvrez main.tf et ajoutez le code suivant :
# Spécifier AWS comme fournisseur
provider "aws" {
region = "us-east-1"
}
# Créer une paire de clés
resource "aws_key_pair" "mac_key" {
key_name = "mac-terraform-key"
public_key = file("~/.ssh/id_rsa.pub")
}
# Créer un groupe de sécurité
resource "aws_security_group" "allow_ssh" {
name = "allow_ssh"
description = "Allow SSH inbound traffic"
ingress {
from_port = 22
to_port = 22
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
}
# Créer une instance EC2
resource "aws_instance" "my_ec2" {
ami = "ami-0c02fb55956c7d316"
instance_type = "t2.micro"
key_name = aws_key_pair.mac_key.key_name
security_groups = [aws_security_group.allow_ssh.name]
tags = {
Name = "Terraform-Mac-Instance"
}
}
Étape 6 : Initialiser Terraform
Avant d'appliquer toute configuration, initialisez Terraform. Cela télécharge tous les plugins de fournisseur nécessaires.
terraform init
✅ Sortie attendue :
Initializing the backend...
Initializing provider plugins...
Terraform has been successfully initialized!
Étape 7 : Valider la Configuration
Validez toujours vos fichiers .tf avant d'appliquer des changements.
terraform validate
Si tout est correct, vous verrez :
Success! The configuration is valid.
Étape 8 : Prévisualiser le Plan d'Infrastructure
Maintenant, voyons ce que Terraform va créer — sans encore faire de changements réels.
terraform plan
Terraform affichera un plan détaillé des ressources à créer :
+ aws_instance.my_ec2
+ aws_security_group.allow_ssh
+ aws_key_pair.mac_key
C'est votre chance de confirmer la configuration avant le déploiement.
Étape 9 : Appliquer et Créer l'Instance EC2
Une fois prêt, déployez l'instance :
terraform apply
Tapez yes quand demandé.
Terraform va :
- Créer une paire de clés
- Configurer un groupe de sécurité
- Déployer une instance EC2
✅ Sortie attendue :
Apply complete! Resources: 3 added, 0 changed, 0 destroyed.
Outputs:
instance_public_ip = "54.210.19.33"
Vous pouvez maintenant vous connecter en SSH à votre nouvelle instance :
ssh [email protected]
Étape 10 : Vérifier dans la Console AWS
Ouvrez votre Console de Gestion AWS → EC2 Dashboard, et vous verrez votre nouvelle instance en cours d'exécution sous :
Name: Terraform-Mac-Instance
Cela confirme que Terraform a déployé votre infrastructure avec succès.
Étape 11 : Nettoyer les Ressources (Optionnel)
Lorsque vous avez fini de tester, détruisez toujours l'infrastructure pour éviter des coûts AWS inutiles.
terraform destroy
Tapez yes pour confirmer.
Étape 12 : Comprendre le Flux de Travail Terraform
Voici un résumé rapide des commandes du cycle de vie Terraform que vous utiliserez fréquemment :
| Commande | Description |
|---|---|
terraform init |
Initialise le projet et installe les plugins de fournisseur |
terraform validate |
Vérifie la syntaxe de la configuration |
terraform plan |
Prévisualise les changements d'infrastructure proposés |
terraform apply |
Applique et déploie les changements sur AWS |
terraform destroy |
Supprime les ressources créées |
Étape 13 : Problèmes Courants et Solutions
❌ Erreur : Identifiants AWS Invalides
Vérifiez votre fichier ~/.aws/credentials ou relancez aws configure.
❌ Permission Denied (publickey)
Assurez-vous que votre clé SSH est correctement ajoutée dans la ressource de paire de clés Terraform et dans le répertoire ~/.ssh de votre Mac.
❌ Security Group Not Found
Terraform crée les dépendances automatiquement, mais si vous modifiez les noms de ressources, relancez terraform init.
❌ Conflits de Fichier d'État
Ne modifiez jamais manuellement terraform.tfstate. Utilisez des backends distants comme S3 pour les environnements d'équipe.
Étape 14 : Meilleures Pratiques pour Terraform + AWS sur Mac
✅ Utiliser le Stockage d'État Distant
Stockez l'état Terraform dans AWS S3 avec verrouillage DynamoDB pour éviter les conflits :
terraform {
backend "s3" {
bucket = "terraform-state-bucket"
key = "ec2/terraform.tfstate"
region = "us-east-1"
}
}
✅ Contrôle de Version
Ajoutez .terraform/ à votre .gitignore et stockez les fichiers .tf dans Git pour la collaboration.
✅ Modulariser l'Infrastructure
Utilisez les modules Terraform pour des configurations réutilisables — comme vpc, ec2 et security_groups.
✅ Tout Étiqueter
Étiquetez toujours les ressources AWS pour faciliter la gestion, la facturation et l'audit.
Étape 15 : Automatiser la Configuration EC2 avec des Variables
Créez un fichier variables.tf pour rendre les configurations réutilisables :
variable "instance_type" {
default = "t2.micro"
}
variable "region" {
default = "us-east-1"
}
Puis mettez à jour main.tf :
provider "aws" {
region = var.region
}
resource "aws_instance" "my_ec2" {
ami = "ami-0c02fb55956c7d316"
instance_type = var.instance_type
}
Exécutez :
terraform plan
terraform apply
Cela rend votre déploiement flexible et indépendant de l'environnement.
Étape 16 : Bonus – Automatiser avec GitHub Actions (CI/CD)
Pour les utilisateurs avancés, automatisez les déploiements Terraform directement depuis GitHub.
Créez .github/workflows/deploy.yml :
name: Terraform AWS Deploy
on:
push:
branches: [ "main" ]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Terraform
uses: hashicorp/setup-terraform@v2
- name: Terraform Init
run: terraform init
- name: Terraform Apply
run: terraform apply -auto-approve
Ce pipeline exécute Terraform automatiquement à chaque push sur main — parfait pour l'automatisation en équipe.
Points Clés
- 💻 Terraform vous permet d'automatiser la configuration AWS EC2 depuis votre Mac avec du code propre et réutilisable.
- 🔐 Utilisez les clés d'accès IAM pour l'authentification — ne codez jamais les identifiants en dur.
- 🧠 Validez et prévisualisez les plans avant d'appliquer.
- 🧩 Modularisez votre configuration Terraform pour la scalabilité.
- ☁️ Nettoyez les ressources inutilisées pour contrôler les coûts AWS.
Appel à l'Action
Prêt à amener votre automatisation AWS au niveau supérieur ? Maîtriser Terraform sur Mac n'est que le début — à partir de là, vous pouvez vous étendre à la gestion de déploiements multi-environnements, de buckets S3, de VPCs et même de clusters Kubernetes — le tout par le code.
👉 Commencez maintenant en configurant votre première instance EC2 gérée par Terraform, et découvrez à quel point l'automatisation cloud peut être simple.
FAQ
Q : À quoi sert Terraform ?
Terraform automatise le déploiement d'infrastructure sur les plateformes cloud comme AWS, Azure et Google Cloud à travers de simples fichiers de configuration.
Q : Terraform est-il gratuit ?
Oui. Terraform CLI est open source, bien que HashiCorp propose des versions payantes pour les équipes et l'automatisation en entreprise.
Q : Puis-je utiliser Terraform sur Windows ou Linux aussi ?
Absolument. Terraform fonctionne sur tous les principaux systèmes d'exploitation. Les commandes de configuration varient légèrement selon la plateforme.
Q : Comment me connecter en SSH à mon instance EC2 Terraform ?
Utilisez votre clé SSH privée et l'IP publique de l'instance :
ssh ec2-user@<instance_ip>
Q : Dois-je supprimer les ressources après les tests ?
Oui — exécutez toujours terraform destroy après les tests pour éviter une facturation AWS inattendue.