Le Cloud Computing avec Amazon Web Services Jeff Barr Traduit par Isabelle Hurbain-Palatin, avec la contribution technique de Dominique Colombani
Pearson Education France a apporté le plus grand soin à la réalisation de ce livre afin de vous fournir une information complète et fiable. Cependant, Pearson Education France n assume de responsabilités, ni pour son utilisation, ni pour les contrefaçons de brevets ou atteintes aux droits de tierces personnes qui pourraient résulter de cette utilisation. Les exemples ou les programmes présents dans cet ouvrage sont fournis pour illustrer les descriptions théoriques. Ils ne sont en aucun cas destinés à une utilisation commerciale ou professionnelle. Pearson Education France ne pourra en aucun cas être tenu pour responsable des préjudices ou dommages de quelque nature que ce soit pouvant résulter de l utilisation de ces exemples ou programmes. Tous les noms de produits ou marques cités dans ce livre sont des marques déposées par leurs propriétaires respectifs. Publié par Pearson Education France 47 bis, rue des Vinaigriers 75010 PARIS Tél. : 01 72 74 90 00 www.pearson.fr Mise en pages : TyPAO ISBN : 978-2-7440-2484-9 Copyright 2011 Pearson Education France Tous droits réservés Titre original : Host your Web Site in the Cloud : Amazon Web Services made easy Traduit par : Isabelle Hurbain-Palatin, avec la contribution technique de Dominique Colombani ISBN original : 978-0-470-9805768-3-2 Copyright 2010 Amazon Web Services, UC, a Delaware limited liability company, 1200 12th Ave S., Suite 1200, Seattle, WA 98144, USA All rights reserved Published by SitePoint Pty Ltd www.sitepoint.com This translation is published and sold by permission of O'Reilly Media, Inc., the owner of all right to publish and sell the same. Aucune représentation ou reproduction, même partielle, autre que celles prévues à l article L. 122-5 2 et 3 a) du code de la propriété intellectuelle ne peut être faite sans l autorisation expresse de Pearson Education France ou, le cas échéant, sans le respect des modalités prévues à l article L. 122-10 dudit code. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from Pearson Education, Inc.
Table des matières Préface... XI 1. Bienvenue dans l informatique en nuage... 1 Éviter un succès catastrophique... 2 Dites-m en plus sur l informatique en nuage!... 3 Qu est-ce qu un nuage?... 4 Le centre de données programmable... 5 Caractériser le nuage... 7 Caractéristiques générales... 7 Caractéristiques financières et organisationnelles... 8 Caractéristiques techniques... 9 Préjugés courants... 9 Modèles d utilisation du nuage... 11 Cas d utilisation du nuage... 12 Héberger des sites web statiques et des applications web complexes... 12 Support du cycle de vie du développement logiciel... 12 Formations... 14 Démonstrations... 14 Stockage de données... 14 Récupération après catastrophe et continuité des affaires... 15 Traitement et calcul de médias... 15 Traitement de données scientifiques et d entreprise... 16 Traitements supplémentaires... 16 Récapitulatif... 17 2. Aperçu des Amazon Web Services... 19 Aperçu d Amazon et d AWS... 19 Cubes de construction... 20 Protocoles... 20
IV Le Cloud Computing avec Amazon Web Services Dollars et cents... 21 Concepts clés... 23 Services d infrastructure web AWS... 26 Amazon Simple Storage Service... 26 Amazon CloudFront... 27 Amazon Simple Queue Service... 27 Amazon SimpleDB... 28 Amazon Relational Database Service... 28 Amazon Elastic Compute Cloud... 29 Amazon Elastic MapReduce... 30 Autres services... 31 Récapitulatif... 31 3. Obtenir les outils... 33 Prérequis techniques... 33 Compétences attendues... 33 Prérequis matériels et logiciels... 34 Éléments optionnels mais recommandés... 35 Outils et bibliothèques... 35 Considérations pour le choix d un outil... 36 Bibliothèques des langages... 36 Outils en ligne de commande... 38 Outils graphiques... 39 S3Fox... 41 Créer un compte AWS... 45 Obtenir vos clés AWS... 47 Exécuter le code PHP de cet ouvrage... 48 Installer AWS SDK for PHP... 51 Résumé... 52 4. Stocker des données sur Amazon S3... 53 Aperçu de S3... 53 Le modèle tarifaire de S3... 55 Aperçu de CloudFront... 57 Le modèle tarifaire de CloudFront... 57
Table des matières V Programmer S3 et CloudFront... 58 Créer un bucket S3... 58 Dresser la liste de vos buckets S3... 61 Dresser la liste des buckets sous la forme d une page web... 62 Dresser la liste des objets d un bucket... 63 Traiter les structures de données complexes du SDK... 64 Dresser la liste des objets d un bucket dans une page web... 67 Mettre en ligne des fichiers sur S3... 72 Créer et stocker des vignettes... 76 Créer une distribution CloudFront... 80 Dresser la liste des distributions CloudFront... 81 Dresser la liste des fichiers S3 et de leurs vignettes... 82 Pour finir... 86 5. Hébergement web avec Amazon EC2... 87 Le centre de données programmable... 87 Aperçu d Amazon EC2... 88 Ressources persistantes et éphémères... 89 Terminologie Amazon EC2... 90 Récapitulatif... 94 Le modèle de tarification Amazon EC2... 95 Utilisation d une instance... 95 Transfert de données... 96 Stockage d AMI... 96 Réservation d adresses IP... 96 Elastic Block Store... 97 Démarrer votre première instance Amazon EC2... 97 Créer et préparer une clé SSH... 97 Préparer PuTTY sous Windows... 98 Préparer votre paire de clés sous Mac OS X ou Linux... 99 Explorer la console de gestion AWS... 100 Démarrer votre première instance... 100 Autoriser l accès à SSH... 102
VI Le Cloud Computing avec Amazon Web Services Se connecter à l instance... 103 Se connecter avec PuTTY sous Windows... 103 Se connecter avec un terminal Mac OS X ou Linux... 105 Nous sommes à présent connectés... 106 Attribuer une adresse IP... 107 Créer un volume EBS... 107 Tester Apache... 109 Exécuter du code... 110 Éteindre l instance... 113 Vous avez réussi!... 113 Tout sur les AMI... 113 Le catalogue d AMI... 114 Choisir une AMI... 115 Créer une AMI personnalisée... 116 Utiliser l API EC2... 122 Conclusion... 125 6. Construire une architecture adaptable avec Amazon SQS... 127 Pourquoi des messages asynchrones?... 127 Modèles de messages asynchrones... 128 Aperçu d Amazon SQS... 131 Terminologie et concepts... 131 Points méritant une attention particulière... 132 Opérations... 133 Modèle de tarification... 133 Programmer avec Amazon SQS... 134 Dresser la liste des files d attente... 135 Ajouter des éléments à une file d attente... 136 Extraire des éléments de files d attente... 137 Introduction à JSON... 140 Créer un robot d indexation d images... 141 Héberger le robot d indexation d images... 142 Définitions et fonctions utilitaires... 142
Table des matières VII Commande d état de la file d attente d indexation... 144 Commande de chargement du robot d indexation... 145 Pipeline de traitement du flux... 146 Récapitulatif... 160 7. CloudWatch, Auto Scaling et Elastic Load Balancing... 161 Introduction... 161 Adaptation verticale... 162 Adaptation horizontale... 162 Supervision, adaptation et répartition de charge... 162 Installer les outils en ligne de commande... 164 Surveiller les données EC2 avec Amazon CloudWatch... 167 Concepts d Amazon CloudWatch... 167 Utilisation d Amazon CloudWatch... 168 Tarifs d Amazon CloudWatch... 169 Amazon CloudWatch à partir de la ligne de commande... 169 Programmer Amazon CloudWatch... 171 Utiliser Apache JMeter... 182 Pourquoi JMeter?... 182 Installer et lancer JMeter... 183 Créer un plan de tests... 184 Exécuter le test... 185 Afficher les résultats... 185 Aller plus loin avec JMeter... 187 Exploiter Elastic Load Balancing pour adapter des instances EC2... 188 Concepts autour d Elastic Load Balancing... 188 Modèle de fonctionnement d Elastic Load Balancing... 189 Tarification Elastic Load Balancing... 190 Elastic Load Balancing en action... 191 Programmer Elastic Load Balancing... 195 Auto Scaling... 196 Concepts d Auto Scaling... 196 Modèle de fonctionnement d Auto Scaling... 197 Tarification d Auto Scaling... 199
VIII Le Cloud Computing avec Amazon Web Services Auto Scaling en action... 199 Programmer Auto Scaling... 202 Conclusion... 203 Récapitulatif... 203 8. Base de données Amazon SimpleDB... 205 Introduction... 205 Amazon SimpleDB... 206 Concepts autour d Amazon SimpleDB... 206 Le modèle de programmation Amazon SimpleDB... 208 Tarification d Amazon SimpleDB... 209 Programmer Amazon SimpleDB... 209 Créer un domaine... 210 Dresser la liste des domaines... 211 Stocker des données... 212 Stocker plusieurs éléments efficacement... 213 Exécuter une requête... 216 Requêtes avancées... 217 Ajouter des données supplémentaires aux éléments... 220 Stocker plusieurs valeurs pour un attribut... 221 Accéder aux valeurs des attributs... 222 Supprimer des attributs... 223 Supprimer des éléments... 224 Superviser les statistiques d un domaine... 225 Traiter et stocker des flux RSS avec Amazon SimpleDB... 227 Conclusion... 236 9. Amazon Relational Database Service... 237 Introduction... 237 Amazon Relational Database Service... 238 Concepts autour d Amazon RDS... 239 Modèle de programmation d Amazon RDS... 243 Tarification d Amazon RDS... 244
Table des matières IX Utiliser Amazon RDS... 245 Inscription... 245 Accéder à l instance DB... 250 Importer des données... 252 Administrer RDS... 253 Surveiller les performances de l instance... 253 Initier un cliché de sauvegarde... 254 Augmenter la puissance de traitement... 255 Augmenter le stockage... 256 Créer une instance DB à partir d un cliché ou d un point dans le temps... 257 Convertir une instance en Multi-AZ... 257 Supprimer une instance DB... 257 Conclusion... 258 10. AWS avancé... 259 Surveiller votre utilisation d EC2... 259 Activité du compte... 259 Accéder aux données d utilisation... 260 Importer les données d utilisation... 261 Faire des requêtes sur les données du compte... 267 Récupérer et afficher des données d utilisation... 269 Elastic Block Storage... 274 EBS depuis la ligne de commande... 274 Clichés EBS... 276 Ensembles de données publiques d EBS... 279 RAID EBS... 280 Métadonnées d instance EC2... 283 Diagrammes dynamiques... 287 Conclusion... 299 11. Récapitulatif : CloudList... 301 Conception de l application... 301 Fonctions et programmes utilitaires... 302
X Le Cloud Computing avec Amazon Web Services L interface web... 312 Page de soumission d un nouvel objet... 317 Et voilà... 322 Index... 323