Introduction
Avant-propos
Le terme de « cloud computing » est apparu en 1997, date à laquelle le professeur Ramah Cellapa de l’université Emory d’Atlanta l’a défini comme suit : « un nouveau paradigme dans le domaine du traitement automatique des données où le périmètre des traitements est déterminé par des critères économiques plutôt que technologiques. ». C’est une définition qui restait un peu vague à l’époque et, si pendant les années 1998 - 1999 les organisations ont essayé de le rendre de plus en plus concret et intuitif, il est clair que la maturité dont il dispose de nos jours fait du « cloud computing » la technologie la plus incontournable du moment.
L’évolution du « cloud computing » a été fulgurante durant les dernières années. Pratiquement tous les majeurs de l’industrie et toutes les organisations de Fortune 500 font tourner leurs applications et services dans des plateformes de type cloud et en recueillent tous les bénéfices associés, allant des coûts réduits jusqu’à la haute disponibilité.
La vitrine mondiale du cloud est Amazon Web Service (AWS). Cet ouvrage propose un voyage à escale unique au cœur...
Introduction
Il y a longtemps, les datacenters étaient principalement gérés par les "administrateurs système", qui installaient et déployaient manuellement les infrastructures. Chaque serveur, chaque base de données, chaque routeur ou autre périphérique réseau, était configuré et paramétré manuellement. C’était encore une époque sombre et menaçante où l’on vivait dans la crainte des pannes matérielles, des erreurs de configuration ou manipulation, des pertes de données et de tout ce qui pouvait arriver si d’aventure l’administrateur décidait de passer du côté obscur de la force, c’est-à-dire, prendre des vacances ou même changer de crémerie.
Mais tout cela c’est de l’histoire ancienne, car, de nos jours, grâce au mouvement DevOps, il existe de meilleures solutions à ces problèmes. Tout a commencé par des techniques de virtualisation, appelées VMware, OpenStack, Xen ou KVM, qui ont permis, dans un premier temps, de se débarrasser du lourd en faveur du léger et de passer du physique au conceptuel et du concret à l’abstrait. Par la suite, au lieu d’investir massivement dans du matériel, les organisations ont préféré acquérir des outils logiciels, appelés...
Qu’est-ce que le Cloud Computing ?
Le Cloud Computing est devenu un des sujets technologiques les plus discutés durant ces dernières années. Le NIST (National Institute of Standard Technology) définit le Cloud Computing comme étant un modèle de traitement permettant l’accès omniprésent et à la demande à un ensemble de ressources de calcul partagées, par exemple, serveurs, réseaux, volumes de stockage, applications et services, ressources mises à disposition par le réseau et qui peuvent être provisionnées et libérées rapidement, sans effort ou avec un effort minime. C’est une définition longue et compliquée qui essaye de dire trop de choses en même temps, mais essayons de la décomposer un peu :
-
À la demande. Contrairement aux datacenters classiques où solliciter et obtenir une ressource de calcul peut prendre des semaines, dans le cloud cette même ressource peut être provisionnée à la demande, sans nécessiter quelque intervention humaine que ce soit.
-
Accès réseau. Un des éléments caractéristiques du cloud est le fait que l’ensemble des ressources disponibles soient accessibles par Internet, ou par réseau en général. Ainsi, les utilisateurs finaux peuvent y accéder depuis un ensemble large et très hétérogène d’ordinateurs et périphériques, par exemple, des laptops, stations de travail, smartphones, etc.
-
Ressources partagées. On se souvient tous...
La plateforme AWS
AWS est une plateforme de type cloud public qui offre une grande variété de services web à la demande, à base de tarification par utilisation (pay-per-use). Précédemment un département du géant américain Amazon.com, AWS est devenu une entité autonome depuis 2006. Aujourd’hui, AWS est présent globalement sur toute la planète, avec des datacenters sur les territoires suivants : États-Unis, Europe, Brésil, Singapour, Japon, Chine et Australie.
Les utilisateurs finaux des services fournis par AWS ont à leur disposition une large variété de possibilités et mécanismes pour exploiter les services, parmi lesquels la forme d’interaction la plus commune est une application web connue sous le nom de AWS Management Console.
Afin d’en comprendre le fonctionnement, nous pouvons prendre l’exemple d’un fournisseur d’électricité ou eau pour la représenter. En effet, AWS offre des services à ses clients de la même manière qu’un fournisseur d’électricité fourni de l’énergie électrique aux consommateurs et tout comme celui-ci facture ces derniers à la fin du mois. AWS fournit à ses clients des services comme des serveurs, volumes de stockage, clusters, réseaux, etc.
Ce dernier point est d’une importance capitale, car le fait de ne pas nécessiter des investissements préalables dans une infrastructure lourde constitue l’essentiel de l’attractivité du modèle commerciale et économique d’AWS. Un autre point très important à préciser est le fait que AWS préserve le paysage technologique des organisations en leur permettant d’utiliser leurs propres systèmes d’exploitation, bases de données ou modèles d’architecture et développement, sans nécessiter d’opérations majeures de re-engineering. Ainsi, les sociétés bénéficient d’une meilleure flexibilité et optimisation de coûts, car, en adhérant aux services AWS, elles continuent d’utiliser les mêmes outils et plateformes qui leur sont familières.
1. Architecture et composants
Avant de démarrer avec AWS, créer...
Démarrer avec AWS
Après cette brève présentation de l’architecture et des composants d’AWS, passons à des choses plus agréables : l’inscription. Ce processus est très simple et nous allons le détailler ici. Il est important de préciser que, pendant les douze premiers mois suivant la date de l’inscription, AWS offre gratuitement certains de ses services, comme le montre le tableau ci-dessous :
Produit AWS |
Gratuité |
EC2 |
750 heures par mois d’utilisation instance micro Linux |
750 heures par mois d’utilisation instance micro Windows |
|
S3 |
5 GB stockage standard |
20 000 requêtes GET |
|
2 000 requêtes PUT |
|
RDS |
750 heures d’utilisation d’instance micro |
20 GB de stockage |
|
20 GB de sauvegarde |
|
10 000 000 I/O |
|
ELB |
750 heures par mois |
15 GB de données |
Services AWS gratuits
Démarrons le processus d’installation en nous rendant à l’URL http://aws.amazon.com. La page d’accueil suivante s’affiche alors :
La page d’accueil AWS
Fournissez les informations demandées dans cet écran et cliquez sur Continuer. Il vous sera alors demandé un nom, une adresse e-mail valable et un mot de passe. Ces informations seront utilisées pour la connexion à AWS Management Console. Cliquez ensuite sur Créer un compte. L’écran suivant intitulé Informations de Contact vous...
AWS Management Console
Nous l’avons déjà dit précédemment, la méthode préférée des utilisateurs pour accéder aux services AWS, c’est de se connecter à l’AWS Management Console, appelée en langage courant "la console".
On peut y accéder par l’URL https://aws.amazon.com et en cliquant sur le bouton orange Connectez-vous à la console, en haut à droite. Si vous êtes déjà connecté à votre compte client AWS créé à la section précédente, il est possible que vous n’ayez pas ce bouton à l’écran.
Dans ce cas, cliquez simplement sur le menu déroulant Mon compte, toujours en haut à droite, et dans la liste qui s’affiche sélectionnez AWS Management Console. Vous allez être alors dirigé à la page d’accueil de la console.
En tant que client AWS, vous disposez d’un compte que vous venez d’ailleurs de créer précédemment. Vous pouvez accéder à AWS soit par le biais de ce compte client, soit en créant un nouveau compte spécialement dédié pour utiliser la console. C’est cette deuxième alternative, fortement recommandée, que nous allons mettre en œuvre.
Cliquez sur le bouton Créer un nouveau compte...
Démarrer avec AWS CLI
Le tour de la console AWS ainsi effectué, il est temps de faire connaissance avec l’autre outil d’interaction préféré : AWS CLI (Command Line Interface).
Vous l’avez vu, la console AWS est très conviviale et intuitive, et permet l’utilisation de l’intégralité des services AWS via son interface utilisateur très riche et fournie. Mais, comme toute interface graphique, elle change souvent et, le plus important, elle nécessite des manipulations répétitives. AWS CLI est un langage de type scripting qui permet d’automatiser la création et le déploiement des infrastructures AWS. On parle dans ce cas de IAC (Infrastructure as Code).
AWS CLI est un binaire qui s’installe sur votre OS, soit-il Linux, Windows ou MacOS. Considérant qu’il y ait des chances qu’une majorité des lecteurs utilisent Windows, c’est le scénario que nous retenons pour le présenter ici.
Installer AWS CLI sous Windows est extrêmement simple. Il faut pour commencer se diriger sur l’URL https://s3.amazonaws.com/aws-cli/AWSCLI64.msi pour directement télécharger le binaire. Puis il suffit de l’exécuter et de se laisser guider par les instructions affichées. On accepte tout d’abord les termes de la licence, ensuite on choisit le chemin sur le disque où...
Démarrer avec IAC
On dit souvent que, pour être robuste et fiable, l’infrastructure d’une organisation doit être déterministe, c’est-à-dire programmable et répétable. Ce que cela veut dire exactement c’est qu’il ne suffit pas de pouvoir disposer des services accessibles via une interface graphique utilisateur, aussi ergonomique et conviviale qu’elle soit, mais il faut pouvoir capturer cette infrastructure dans une description abstraite, exprimée par des modèles et des langages de niveaux supérieurs, permettant d’automatiser les opérations qui, autrement, s’exécutent manuellement. C’est le concept d’IAC (Infrastructure As Code).
1. CloudFormation
L’IAC s’apparente complètement aux techniques de développement logiciel, car il s’agit de langages de type scripting, comme le shell, le bash, le PowerShell et d’autres, spécialisés pour la gestion de l’infrastructure cloud. S’agissant d’AWS, le langage s’appelle CloudFormation. Il est spécifique au cloud AWS au sens qu’il ne peut pas manipuler des infrastructures GCP (Google Cloud Platform), Azure, etc.
Vous n’avez besoin d’aucun élément supplémentaire pour utiliser CloudFormation, car ce langage fait partie intégrante de AWS CLI. Pour vérifier que tout fonctionne correctement et que votre environnement est valide, essayez la commande suivante :
C:\Users\Nicolas DUMINIL>aws cloudformation describe-stacks
{
"Stacks": []
}
C:\Users\Nicolas DUMINIL>
En termes AWS, un "stack" est un ensemble d’éléments d’infrastructure groupés sous le même nom. Ainsi, la commande précédente affiche l’ensemble des stacks créés par l’utilisateur courant. Ici, il n’y en a aucun, évidemment, mais cela permet de vérifier malgré tout que CloudFormation est disponible et fonctionne.
2. Terraform
Comme nous venons de le voir, bien que langage privilégié de type scripting pour la gestion et la manipulation...