🚀 Mon premier serveur Cloud : de zéro à un site WordPress

☁️ Présentation du projet

Dans le cadre de mon projet Cloud-1, je découvre progressivement les bases du cloud, de la virtualisation et de la conteneurisation.

L’objectif de ce projet est de mettre en place une infrastructure capable d’héberger un site WordPress, tout en utilisant Docker pour organiser les différents services.

Ce projet m’a permis de passer de la théorie à une infrastructure réellement fonctionnelle.

🖥️ La machine virtuelle

La première étape a été de créer une instance cloud chez OVHcloud.

Cette instance fonctionne sous Linux et constitue la machine sur laquelle mon infrastructure Docker est déployée.

L’accès au serveur se fait à distance grâce au protocole SSH, avec une authentification par clé.

🐳 Pourquoi Docker ?

J’ai choisi d’utiliser Docker afin de séparer les différents composants de mon infrastructure.

Chaque service fonctionne dans son propre conteneur, ce qui permet de mieux organiser l’application et de faciliter son déploiement.

L’architecture repose principalement sur plusieurs services :

  • Nginx pour recevoir les requêtes HTTP/HTTPS ;
  • PHP-FPM pour exécuter le code PHP ;
  • WordPress pour le site ;
  • MySQL pour stocker les données.

🏗️ Architecture

L’architecture peut être représentée simplement comme ceci :

                 Internet
                     │
                 HTTP / HTTPS
                  80 / 443
                     │
                     ▼
                  Nginx
                     │
                FastCGI : 9000
                     │
                     ▼
                 PHP-FPM
                     │
                     ▼
                WordPress
                     │
                 MySQL : 3306

Les ports 80 et 443 sont utilisés pour permettre aux visiteurs d’accéder au site.

Le port 9000 est utilisé pour la communication interne avec PHP-FPM. Il n’est donc pas nécessaire de l’exposer directement sur Internet.

De la même manière, MySQL utilise généralement le port 3306, mais ce port reste destiné à la communication interne entre les services.

🔐 La sécurité

La sécurité est également une partie importante du projet.

L’accès à l’instance se fait avec SSH et des clés cryptographiques. La clé privée doit rester secrète et ne doit jamais être publiée.

J’ai également découvert l’importance du firewall et du principe consistant à n’exposer que les services qui doivent réellement être accessibles depuis Internet.

Par exemple, un visiteur doit pouvoir accéder à WordPress via les ports 80 ou 443, mais il n’a aucune raison d’accéder directement à MySQL sur le port 3306.

🧠 Ce que j’ai appris

Ce projet m’a permis de mieux comprendre plusieurs notions qui peuvent sembler abstraites au début :

  • les machines virtuelles dans le cloud ;
  • les conteneurs Docker ;
  • les réseaux Docker ;
  • les ports TCP ;
  • SSH et les clés publiques/privées ;
  • Nginx ;
  • PHP-FPM ;
  • FastCGI ;
  • MySQL ;
  • la gestion des services avec Docker Compose.

J’ai notamment compris qu’un port ne correspond pas forcément à un service accessible depuis Internet. Certains ports sont uniquement utilisés pour permettre aux différents conteneurs de communiquer entre eux.

🚀 La suite

Ce premier déploiement constitue une première étape dans mon apprentissage du cloud.

La suite du projet sera consacrée à l’amélioration de l’infrastructure, à la sécurité, à la supervision et à la compréhension plus approfondie du fonctionnement des différents services.

Ce qui me plaît particulièrement dans ce projet, c’est de pouvoir comprendre ce qui se passe réellement derrière un simple site web : plusieurs services communiquent entre eux pour rendre l’application accessible à l’utilisateur.

Et finalement, derrière une simple page WordPress, il y a toute une infrastructure à construire. ☁️🐳