Travaux pratiques : Déployer un site Wordpress avec Terraform sur AWS

Travaux pratiques : Déployer un site Wordpress avec Terraform sur AWS

Publié le


Do not index
Do not index
Primary Keyword
Lié à Analyse sémantique (Articles liés) 1
Lié à Analyse sémantique (Articles liés)
Statut rédaction
Terminé
Lié à Analyse sémantique (Articles liés) 2

Introduction

Bonjour à toi,
 
Ta mission, si tu l’acceptes, est de déployer un CMS Wordpress avec sa base de données sur AWS via Terraform en haute disponibilité.
 
Afin de maximiser tes chances de réussite, nous avons préparé pour toi un dossier complet avec l’ensemble des informations dont tu auras besoin pour cette mission.
N’hésites pas à bien prendre le temps de tout lire afin de bien comprendre le sujet.
 
Bonne chance !

Prérequis pour faire le projet

  • Avoir Terraform installé sur son PC
  • Avoir accès à un compte AWS en admin
  • Connaître les bases d’AWS et de Terraform

Schéma d’infrastructure de la solution à déployer pendant le TP

notion image

Les services AWS à utiliser dans ce TP

  • AWS VPC : Service d’isolation de réseaux virtuel d’AWS
  • AWS Subnets : Service de réseaux d’AWS
  • AWS Route table : Table de routage AWS
  • AWS Internet Gateway : An internet gateway enables resources (like EC2 instances) in your public subnets to connect to the internet if the resource has a public IPv4 address
  • AWS NAT Gateway : Service de gateway AWS
  • AWS Security Group : Service AWS pour contrôler le trafic entrant et sortant des interfaces réseaux connectées
  • AWS Elastic Load balancer : Load balancer frontal du Wordpress
  • AWS Target Group : Service qui va connecter le load balancer avec les groupes d’auto scaling
  • AWS Autoscaling group : Service d’autoscaling d’AWS
  • AWS EC2 : Service de compute qui va héberger le Wordpress
  • AWS RDS : Base de données du Wordpress
  • AWS S3 : Système de stockage ou seront persisté les données du Wordpress
  • AWS Cloudfront : CDN utilisé qui mets à disposition les assets du Wordpress
  • AWS Certificate manager : Outil qui va générer le certificat pour le Wordpress
  • AWS Route 53 : DNS provider qui sera utilisé pour

Étapes à suivre

  • Création un backend S3 avec une table de lock Dynamodb pour le tfstate Terrraform
  • Créer un bucket S3 pour les assets statique du Wordpress
  • Créer une distribution Cloudfront pour être le CDN frontal devant le bucket S3
  • Créer une base de données RDS en Terraform
  • Créer le socle réseau (VPC, Public Subnets, Private Subnets, Route Table, Internet Gateway)
  • Créer une image AMI avec :
    • Wordpress installé
    • Apache installé et configuré pour se lancer au démarrage de l’instance
  • Créer un autoscaling group utilisant l’image AMI créé précédemment qui :
    • Dans ses user data à un script pour persister et synchroniser les fichiers du Wordpress sur S3
    • Lance le service Wordpress au démarrage de la vm
    • Expose le Wordpress avec Apache sur le port 8080
  • Créer un certificat pour l’application
  • Valider le certificat avec la création d’un record DNS de la sous zone
  • Créer un load balancer et un target group pointant vers le port exposé du Wordpress sur l’autoscaling group
  • Créer un enregistrement DNS pointant vers le loadbalancer

Critères d’acceptation pour valider le TP

Toutes les actions réalisées doivent être réalisées en Terraform
Le code doit être push sur un repo git
Le Wordpress doit fonctionner correctement sur l’enregistrement DNS fourni
En cas de suppression ou scale d’un nœud, les assets statiques fonctionnent toujours
 

S'inscrire à la newsletter DevSecOps Keltio

Pour recevoir tous les mois des articles d'expertise du domaine

S'inscrire

Écrit par

Kévin Didelot
Kévin Didelot

Kévin est notre super expert DevSecOps et le fondateur de Keltio 👨🏻‍💻