Vous pensez que vous êtes prêt à lancer une instance EC2 ? Pas si vite ! Quel type d'instance EC2 voulez-vous lancer ?
Eh oui, il y a un grand choix de serveurs ! Sélectionner le serveur adapté à vos besoins est indispensable si vous voulez payer le meilleur prix, et avoir la puissance dont vous avez vraiment besoin.
Choisissez le bon type d’instance
Commencez par regarder la liste des types d'instances proposés par Amazon EC2, sur la page Types d'instances :
Il y a tellement de types d'instances différents qu'on les a regroupés dans plusieurs catégories :
usage général : ce sont des serveurs "équilibrés" qui ne privilégient ni le processeur, ni la mémoire vive, ni le disque dur. Ce sont ceux que l'on utilisera en général pour héberger des sites web. Oui mais voilà, EC2 ne sert pas qu'à héberger des sites web, c'est pour cela que l'on a aussi d'autres types ;
calcul optimisé : ces serveurs sont des monstres de calcul. Les processeurs sont capables d'avaler de nombreuses instructions par seconde. On peut les utiliser pour faire de la modélisation scientifique, de l'analyse distribuée... ou pour des serveurs web qui ont besoin de très hautes performances ;
mémoire optimisée : ces serveurs ont beaucoup de mémoire vive. Beaucoup beaucoup. Vous pouvez en réalité monter jusqu'à 24 576 Go de mémoire vive (soit près de 24 To !). Il faut avoir une application très gourmande en mémoire, comme une base de données stockée en mémoire vive, pour avoir besoin de cela ;
calcul accéléré : ces serveurs sont aussi des monstres de calcul, qui utilisent cette fois des cartes graphiques (GPU). On peut les utiliser pour faire de l'apprentissage machine, gérer des véhicules autonomes, faire de la reconnaissance vocale... ;
stockage optimisé : ces serveurs proposent des disques durs très performants. Ce n'est pas tant le stockage qui est grand, que la vitesse d'accès aux disques qui est rapide. On peut s'en servir pour faire du calcul distribué MapReduce ou Hadoop, ou encore gérer des systèmes de fichiers distribués.
Pour chacune de ces catégories, on vous propose des dizaines de types de serveurs différents plus ou moins puissants.
Au secours !!! Hadoop, calcul distribué, véhicules autonomes... je n'y comprends rien !
Ah, vous me rassurez, parce que moi non plus.
Non mais plus sérieusement, il y a trop de types de serveurs différents pour que nous puissions comprendre l'intérêt de tous ces serveurs. La plupart des gens normalement constitués comme nous vont utiliser des serveurs à usage général pour stocker des sites web.
En particulier, l'instance t2.micro est celle qui est gratuite pendant 1 an. Vous pouvez laisser 1 serveur t2.micro allumé en permanence pendant un an sans payer.
Les autres types d'instances sont nécessaires pour de très gros sites web, ou des personnes qui ont des besoins très précis. Ce n'est pas notre cas.
Déterminez la bonne tarification
Comme si cela ne suffisait pas, en plus des nombreux types de serveurs, il existe... plusieurs types de tarification de serveurs.
Rendez-vous sur la page Tarification EC2 pour voir ces types de tarification.
On distingue :
tarification à la demande : c'est ce que nous utiliserons, la plus simple. Il n'y a aucun engagement. Vous avez besoin d'un serveur ? Vous en demandez un. Vous n'en avez plus besoin ? Vous le rendez ;
instances spot : vous êtes radin ? Les instances spot sont pour vous ! Vous pouvez faire tourner des machines qui consomment les capacités non utilisées d’AWS. Ces machines peuvent coûter jusqu’à 90 % moins cher ; cependant AWS peut les réclamer à n’importe quel moment, contrairement aux machines à la tarification à la demande ;
instances réservées : vous savez que vous aurez besoin d'un serveur à coup sûr pendant 1 an ? Si vous êtes prêt à vous engager, les instances réservées vous permettent de payer moins cher (jusqu'à 72 % moins cher). Elles sont ensuite à vous pendant la durée de votre engagement ;
savings plans : ils se veulent moins contraignants que les instances réservées.. Au lieu d’avancer le prix sur 1 an, vous vous engagez sur une consommation minimum par heure à payer pendant 1 an. En contrepartie, AWS vous offre une remise de l’ordre de 30 %. Par exemple, si vous savez que votre site web a besoin d’une machine EC2 pendant 1 an qui coûte 15 centimes de l’heure, vous pouvez enregistrer un savings plan à 10 centimes de l’heure, et ainsi économiser 30 % ;
hôtes dédiés : plutôt que de gérer des machines virtuelles, vous pouvez demander à avoir une machine physique entière. Vous pouvez en avoir besoin si vous avez des licences logicielles liées à des serveurs physiques (comme Windows Server), ou si vous ne voulez pas partager votre machine avec d'autres personnes.
Que faut-il utiliser ? C'est la tarification à la demande, la plus souple, qui est la plus adaptée dans la plupart des cas. Les instances sont facturées à la seconde près.
Lancez votre première instance
Assez discuté, place à l'action ! Je vous propose de lancer votre première instance EC2 à la main. Je suis sûr que chez vous, l'émotion doit être à son comble (comment ça, non ?).
Si vous avez bien suivi les chapitres précédents, vous savez que l'on va lancer un serveur EC2 à usage général, de type t2.micro en tarification à la demande, dans le cadre de l'offre gratuite. Si je vous parle chinois, relisez le chapitre précédent.
Page de lancement d'instance
Rendez-vous dans EC2, section "Instances". Cliquez sur "Lancer une instance" :
Lorsque vous cliquez sur "Lancer une instance", un assistant en plusieurs étapes s'ouvre. La première consiste à choisir l'AMI.
Sélection d'une image de départ (AMI)
Même si vous souhaitez démarrer avec un serveur vierge, vous avez besoin d'un système d'exploitation installé au départ (en fait, personne ne démarre avec un serveur complètement vierge).
Les AMI sont des images du disque. Elles représentent un serveur dans un état donné, et servent de point de départ.
Les AMI de base
La première étape sera pour vous l'occasion de choisir votre système d'exploitation :
Amazon Linux AMI : une distribution Linux spécialement optimisée pour Amazon EC2. C'est un peu le choix par défaut ;
Ubuntu Server : la distribution Linux Ubuntu en version serveur, que vous pouvez choisir si vous l'aimez bien ;
SUSE Linux : si votre truc c'est plutôt SUSE ;
Red Hat : si votre truc c'est plutôt Red Hat ;
Windows Server : si votre truc c'est plutôt Windows Server. Attention, ce n'est pas du Linux, c'est très différent.
Les AMI préconfigurées de la marketplace
En plus de ces images, il existe de nombreuses autres AMI "moins vierges". Ces serveurs préconfigurés peuvent vous faire gagner beaucoup de temps, car les logiciels de base dont vous avez besoin seront déjà installés.
Par exemple, si vous avez besoin de monter un serveur web exécutant un site en PHP, vous aurez besoin d'Apache, PHP, et peut-être que vous voudrez aussi des outils comme phpMyAdmin, Memcached, etc. À moins que vous aimiez passer des heures à tout réinstaller à la main (chacun son truc !), il vaut mieux une AMI préconfigurée.
Allez dans AWS Marketplace (pas de panique, il y a des AMI gratuites). Cherchez-y "LAMP bitnami" et sélectionnez "LAMP packaged by Bitnami". Il est lui aussi "Éligible à l'offre", donc utilisable gratuitement.
Si vous voulez un autre type de serveur, n'hésitez pas à choisir une autre image. Cela ne changera rien à la suite du cours, du moment que vous prenez bien un serveur basé sur Linux.
Bref, vous l'aurez compris, les AMI sont vos amies ! (ah ah, oh oh, voilà c'est fait).
Choisir un type d'instance
Après une brève validation de licence (selon le type d'AMI que vous avez choisi), on va vous demander le type d'instance. Cela indique la puissance du serveur.
Comme je vous l'ai dit, on va partir sur l'option t2.micro (par défaut) qui est éligible à l'offre gratuite. Cela nous évite d'avoir à réfléchir trop longtemps !
Nous avons répondu aux questions principales. À partir de là :
soit nous lançons directement le serveur avec la configuration par défaut, en cliquant sur "Vérifier et lancer" ;
soit nous voulons rentrer plus dans le détail et nous cliquons sur "Configurer les détails de l'instance".
On pourrait en théorie cliquer sur "Vérifier et lancer", mais je vous propose de découvrir rapidement les autres étapes de l'assistant.
Configurer l'instance
On vous propose plusieurs options pour configurer un peu plus en détail l'instance.
On vous demande en premier combien d'instances vous voulez lancer (1, dans notre cas). Vous avez une option pour créer un groupe "Auto Scaling" qui va automatiquement ajouter et retirer des serveurs en fonction du trafic. En revanche, comme cela peut être un peu complexe, on ne va pas en parler ici.
Vous avez ensuite des options pour configurer le réseau qui permet à vos serveurs de communiquer entre eux. C'est un peu la plomberie que connaissent les administrateurs système... mais dans le cloud. C'est un peu moins mon domaine, mais si les masques de sous-réseau sont votre truc, alors vous savez que cela se passe par là.
Le rôle IAM est un système qui permet d'attribuer des permissions à l’instance afin d'interagir avec les services AWS... IAM est le service AWS qui permet de gérer plusieurs utilisateurs avec des droits différents.
Au final, ici... on ne va rien toucher.
Ajouter le stockage
EC2 sépare les choses :
Il y a d'un côté le serveur (la puissance de calcul)...
... et de l'autre les disques. Il peut s'agir de disques durs ou de SSD (mémoire flash), selon le type d'instance que vous avez sélectionné.
Les disques sont gérés par un sous-service d'EC2 que l'on appelle EBS (Elastic Block Store). Par défaut, un volume EBS de 10 Go est déjà configuré :
À vous de voir si 10 Go suffisent, sachant que vous pouvez monter, comme vous le voyez, à 30 Go dans l'offre gratuite.
Par défaut, votre disque est un SSD. C'est ce que l'on vous recommande si vous ne savez pas ce que vous voulez.
Sachez que si vous changez le "type de volume", vous pouvez aussi avoir un SSD encore plus rapide, ou bien un disque magnétique (c'est-à-dire un bon vieux disque dur).
Pour nos tests, on laissera là encore les valeurs par défaut.
Ajouter des balises
Cette section permet de "tagger" le serveur pour pouvoir le retrouver plus rapidement ensuite :
Cela fonctionne par un système de clé-valeur. Par exemple, si vous voulez, vous pouvez ajouter une balise site = openclassrooms. La clé est "site", la valeur est "openclassrooms". Ainsi, si vous faites une recherche par la suite, vous pourrez facilement retrouver tous les serveurs qui sont reliés au site OpenClassrooms.
Pour l'instant, on se contentera... de ne rien mettre.
Configurer le groupe de sécurité
C'est ici que vous configurez votre firewall (pare-feu) :
Ici, mon serveur sera lancé avec un nouveau groupe de sécurité, qui autorise uniquement un certain type de trafic entrant. Par exemple, on voit que mon serveur autorise les accès SSH, HTTP et HTTPS depuis toutes les IP (d'où le 0.0.0.0/0).
Les groupes de sécurité peuvent être partagés entre plusieurs serveurs. Donnez-leur un nom facile à retrouver (exemple : "Web server firewall config").
Lancement du serveur
Cliquez ensuite sur "Vérifier et lancer". On vous proposera de vérifier à nouveau votre configuration.
Ensuite, on vous demande avec quelle clé SSH vous souhaitez vous connecter au serveur. En effet, pour vous connecter en ligne de commande, vous aurez besoin d'une paire de clés (publique-privée).
Dans la fenêtre qui s'affiche, vous pouvez soit sélectionner une paire de clés existante (si vous avez déjà créé un serveur sur AWS), soit créer une nouvelle paire de clés si c'est votre première fois. On va dire que c'est votre première fois :
Cette étape est très importante ! Cliquez sur "Télécharger une paire de clés". Vous allez télécharger un fichier .pem qui vous permettra ensuite d'accéder à votre serveur. Mettez-la dans un lieu sûr (ne la publiez pas sur Internet, ou c'est foutu !).
Voilà, ouf ! Vous pouvez cliquer sur "Lancer des instances". Après quelques instants, le serveur est démarré et apparaît désormais dans "Instances". Hourra !
Vous pouvez voir que l'instance de type t2.micro est en statut vert, "En cours d’exécution" (1).
Il y a de nombreuses informations dans la section en bas de l'écran. La plus importante est peut-être "DNS IPv4 public" (2) qui affiche l'adresse de votre serveur. Si vous la copiez-collez dans votre navigateur, vous pourrez voir ce que votre serveur web affiche par défaut.
Vous pouvez faire un clic droit sur l'instance pour l'arrêter, la redémarrer ou la résilier. Si vous la résiliez, elle sera supprimée (elle restera juste affichée quelque temps avant de disparaître complètement).
En résumé
EC2 propose plusieurs types d'instances à des tarifs différents. L’instance de type t2.micro est idéale pour débuter, car elle fait partie de l'offre gratuite.
Une AMI est une image contenant un système d'exploitation et parfois des outils préinstallés. Toute instance EC2 est créée à partir d'AMI.
Un volume EBS est un disque dur que l'on assigne à une instance.
Un groupe de sécurité permet de configurer les règles firewall (pare-feu), et de limiter l'accès réseau à la machine.
Bon, et si on se connectait à notre serveur, maintenant ?