Avant de nous plonger dans les entrailles d'AWS, je vous propose une petite entrée en matière. En effet, AWS est tellement riche et complexe qu'ils ont créé un service qui... simplifie l'usage d'autres services ! Je pense que c'est mieux de commencer ainsi. Nous aurons tout le loisir ensuite de nous perdre dans les profondeurs d'AWS. 😉
Le service que je souhaite vous présenter s'appelle Amazon Elastic Beanstalk. Il s'agit d'une interface simplifiée qui vous aide à créer vos serveurs Amazon EC2, sans que vous ayez à vous préoccuper des détails.
Pour les grands débutants, notez qu'il existe une interface encore plus simplifiée : Amazon Lightsail. Il y a des gros boutons, encore moins d'options, tout est géré pour vous. Cette interface est utile pour celles et ceux qui voudraient juste un serveur dédié sans avoir à se prendre la tête. C'est en gros comparable à louer un serveur dédié virtuel (VPS) chez OVH, mais il n'y a pas d'offre gratuite.

Rendez-vous donc dans la section "Elastic Beanstalk" et vérifiez bien dans quelle zone géographique vous vous trouvez (regardez le menu en haut à droite). Cela indique où vos serveurs seront lancés.
Si un jour vous ne retrouvez pas vos serveurs dans la console AWS, pas de panique : vérifiez juste que vous êtes en train de naviguer dans la bonne zone géographique !
La première fois, Elastic Beanstalk vous explique en quelques mots son fonctionnement :

Cliquez sur Démarrer, puis sur la page qui s'ouvre remplissez le formulaire :

Vous devez donner un nom à votre application. C'est le nom du projet que vous aimeriez héberger en ligne. Si vous n'avez pas d'idée et que vous voulez juste expérimenter avec moi, vous pouvez simplement l'appeler "Test".
Choisissez ensuite la plateforme de votre application. Vous avez le choix entre de nombreuses plateformes : PHP, Python, Ruby, Java, Go... Ca dépend en quoi votre site web est codé !
En fonction de votre choix Elastic Beanstalk va démarrer un serveur préconfiguré pour vos besoins (ce qui vous fera gagner du temps !).
Enfin, on vous demande si vous avez déjà le code de l'application que vous voulez héberger. Si c'est le cas, vous pouvez envoyer un ZIP. Si vous êtes simplement là pour tester comme moi, vous pouvez laisser "Exemple d'application" coché : une application par défaut sera lancée.
Cliquez ensuite sur "Créer une application". Une console s'affiche pour vous indiquer la progression du lancement du serveur :

Sous le capot, Elastic Beanstalk va démarrer un serveur virtuel EC2... mais ce n'est pas tout ! Il configure aussi plusieurs éléments, comme les groupes de sécurité et les IP dédiées. Cela nous évite d'avoir à réfléchir à ces choses-là pour l'instant et c'est très bien. Sachez que vous pourrez ensuite voir ce qu'a fait Elastic Beanstalk et le modifier sans aucun problème !
Patientez quelques minutes, le lancement de tous ces services prend un petit moment. Lorsque ça sera terminé, vous serez automatiquement redirigés vers l'accueil de votre application sur Elastic Beanstalk.
Voici à quoi ressemble l'accueil d'une application sur Elastic Beanstalk :

Vous pouvez y voir :

Si la page s'affiche, c'est que votre serveur fonctionne normalement et qu'il est capable d'envoyer une page PHP. Celle-ci ne fait vraiment rien de spécial, mais elle a le mérite de montrer que ça marche.
L'adresse du site web générée pour vous n'est évidemment pas pratique à retenir (qui a envie de dire "Eh retrouve mon site sur http://test-env.umpm3qms3k.us-east-2.elasticbeanstalk.com" ? 😝).
Si on veut, on peut rediriger un nom de domaine (ex : monsite.com) vers ce serveur, pour que ça soit plus simple d'accès. Cela se fait depuis AWS Route 53, ou depuis le registrar chez qui vous avez acheté votre nom de domaine (ex : OVH, Gandi...). C'est cependant un autre sujet qu'on ne verra pas ici.
Enfin, sur le côté gauche de l'interface d'administration d'Elastic Beanstalk, vous avez quelques menus que je vous laisse parcourir. Il est par exemple possible de configurer l'environnement pour changer la puissance du serveur et même d'y ajouter un serveur de base de données (ça utilise RDS, le service AWS qui fournit les bases de données). Attention néanmoins, car ça peut vite devenir compliqué pour nous qui débutons !

Elastic Beanstalk se veut simplifié. Il n'y a pas beaucoup d'options en réalité, mais cela suffit pour lancer des serveurs pour des applications simples. Je vous recommande donc de vous familiariser avec ce service avant d'aller plus loin.
Sous le capot, Elastic Beanstalk a généré un serveur EC2 et fait un peu de configuration pour nous. Si vous retournez sur la liste des services, allez dans la section "EC2", puis dans "Instances" vous y verrez le serveur de test que vous venez de lancer.

Comme je vous l'ai dit, Elastic Beanstalk ne fait que simplifier l'usage des autres services comme EC2 et RDS. Il est tout à fait possible ensuite d'ouvrir le capot de ces services et de les personnaliser... mais gare à vous si vous ne savez pas ce que vous faites ! ☠️
Dans la suite de ce cours, je vais justement rentrer avec vous dans ces fameuses entrailles d'AWS. Alors, prêts à sortir du pilote automatique et à passer en mode manuel ? 😎