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 Lightsail. Il s'agit d'une interface simplifiée qui vous aide à déployer votre site web en un temps record...
Lancez votre premier serveur avec Amazon Lightsail
Amazon Lightsail est la réalisation de la promesse suprême du cloud : un service clé en main pour lancer en 2 minutes un site web capable d’absorber une charge de trafic digne des plus grands sites Internet.
Ce niveau d’abstraction se fait au détriment de la flexibilité offerte par des services AWS qui sont plus bas niveau (ex. : EC2). Toutefois, pour nous qui démarrons dans le monde du cloud, c’est l’environnement idéal !
Essayons de créer un serveur capable d’héberger un site web classique en PHP. Vous êtes prêt ? Allez c’est parti !
Rendez-vous sur la console de management AWS, et cherchez le service Lightsail parmi ceux proposés.
Nous atterrissons sur la console Lightsail.
Cliquez sur “Créer une instance”, personnalisez la région si besoin, et choisissez un serveur préconfiguré avec la stack “LAMP” (Linux, Apache, MySQL, PHP).
Restez sur le premier plan, gratuit pendant 3 mois.
Donnez ensuite un nom à votre serveur pour facilement l’identifier, et cliquez sur “Créer une instance”.
Comme promis, 2 minutes plus tard, notre instance est prête à l’emploi.
Elle dispose d’une IP publique, des règles de routage et de pare-feu adéquates, d’un disque dur 20 Go, d’une stack LAMP opérationnelle, et ainsi de suite. On peut se connecter sur la machine depuis le navigateur en cliquant sur la petite icône du terminal :
On retrouve le fameux répertoire htdocs où on peut déposer les fichiers PHP de notre site web.
Vous pouvez bien entendu utiliser votre client SFTP préféré, FileZilla, CyberDuck, etc., afin de transférer vos fichiers en masse.
Pour cela, allez dans le menu “Connecter” de votre application :
Puis cliquez sur le bouton “Télécharger la clé par défaut”.
Configurez cette clé SSH dans votre client SFTP préféré, accompagnée de l’adresse IP (13.38.13.216 dans cet exemple) et du nom d’utilisateur (bitnami, en l’occurrence).
Vous êtes prêt à déposer vos fichiers PHP !
Si vous désirez sauvegarder votre machine avant une mise à jour importante, Lightsail vous propose de créer une copie de votre disque dur. Cette copie s’appelle un instantané, dans le monde AWS. Rendez-vous donc dans le menu “Instantanés” :
Cliquez sur “Créer un instantané”, patientez 30 secondes et voilà !
Si jamais quelque chose se passe mal et que vous voulez revenir sur l’ancienne version de votre site web, vous n’aurez qu’à restaurer votre instance à partir de cette sauvegarde.
Enfin, vous pouvez suivre la performance de votre instance en allant dans la section “Métriques”.
Choisissez le type de métrique (1) que vous souhaitez inspecter. Dans l’image ci-dessus par exemple, on suit la capacité du trafic sortant. Le pic vers 9:10 coïncide avec des tests que j’effectuais.
Félicitations, vous êtes dorénavant un vétéran du cloud !
Oui mais concrètement, quelle est la différence entre Lightsail et d’autres services d’hébergement classiques ?
Lightsail permet d’exploiter la robustesse des datacenters AWS avec une simplicité rafraîchissante. Pour un usage bien cadré tel que la création d’un site web ou d'un blog, Lightsail est redoutablement efficace et permet facilement d’ajouter des machines, une base de données, de répartir le trafic sur plusieurs machines, etc. Tout cela en quelques clics.
Cette simplicité vient au détriment d’une certaine rigidité dans la configuration de l’environnement : on ne peut pas modifier la puissance d’une machine déjà créée. Toutes les machines par défaut sont exposées sur Internet. Une instance ne peut avoir qu’une seule adresse IP publique, et ainsi de suite.
Afin de bénéficier de plus de flexibilité mais garder un niveau d’automatisation relativement proche, je vous propose d’explorer le prochain service : Elastic Beanstalk.
Créez un serveur complexe avec Elastic Beanstalk
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 !
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... Cela dépend en quoi votre site web sera 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 :
Patientez quelques minutes, le lancement de tous ces services prend un petit moment. Lorsque cela sera terminé, vous serez automatiquement redirigé vers l'accueil de votre application sur Elastic Beanstalk.
Prenez en main l’interface d’Elastic Beanstalk
Voici à quoi ressemble l'accueil d'une application sur Elastic Beanstalk :
Vous pouvez y voir :
L'état du serveur (ici, tout va bien, apparemment 😊). En cas de problème, vous pouvez cliquer sur "Causes" pour avoir les erreurs.
Le nom de l'application installée sur votre serveur. Nous avons mis une application de démo, mais nous pouvons envoyer notre projet sous format ZIP ici si nous le souhaitons.
Le type de serveur. Ici, nous avons sélectionné PHP, donc Elastic Beanstalk a lancé un serveur Linux avec PHP installé pour nous.
Les actions que vous pouvez faire. Vous pouvez par exemple redémarrer l'environnement (cela redémarrera le serveur), le cloner pour en faire une copie, ou bien le résilier pour le supprimer.
L'adresse web de votre serveur pour tester votre application. Cliquez dessus pour voir l'application de démo qui tourne sur le serveur !
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 cela marche.
Sur le côté gauche de l'interface d'administration d'Elastic Beanstalk, vous avez quelques menus intéressants. Par exemple, dans le menu “Configuration” > “Capacité”, vous noterez que par défaut, AWS a configuré l’environnement pour quadrupler de taille si jamais vous êtes inondé de trafic.
Rassurez-vous, quand le trafic revient à la normale, AWS se chargera d’éliminer les machines en trop.
Je vous laisse parcourir le reste des menus ; attention néanmoins, car cela peut vite devenir compliqué pour nous qui débutons !
Enfin, Elasctic Beanstalk se charge de vous informer des mises à jour de votre environnement. Lorsqu’une nouvelle version de PHP ou du système d’exploitation est disponible, AWS vous affiche un nouveau bouton “Modification”.
Choisissez le nouvel environnement d’exécution et cliquez sur “Enregistrer”.
Et ensuite ?
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 ! ☠️
En résumé
Amazon Lightsail permet de créer des machines préconfigurées via une interface simplifiée. Ceci le rend idéal pour héberger des sites web, des blogs et des sites e-commerce.
On peut sauvegarder son site web rapidement en créant des instantanés depuis l'interface de Lightsail.
Une application Elastic Beanstalk est une collection de ressources bas niveau dans EC2, que l'on peut facilement piloter depuis l'interface unifiée de Elastic Beanstalk.
Amazon Lightsail et Elastic Beanstalk permettent de suivre la performance de votre application via des graphiques d’utilisation de CPU et de nombre de requêtes réseau.
Dans la suite de ce cours, je vais justement entrer avec vous dans ces fameuses entrailles d'AWS. Alors, prêt à sortir du pilote automatique, et à passer en mode manuel ?