CNAM 2010-2011 Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010
Déploiement d une application dans le cloud. 1. Cloud Computing en 2010 2. Offre EC2 AMAZON 3. Cas Pratique : Portage d un Intranet vers EC2 4. Utilisation EC2 et Conclusion 5. Bibliographie 2
Cloud Computing 2010 - Définition Cloud Computing ( Utilisateur ) : Commercialiser des ressources informatiques sous forme de service Cloud Computing ( technique ) : Virtualiser les ressources des ressources partagé avec d autres personnes. Obtenir et résilier à la demande les services et pouvoir y accéder simplement. Paiement à la commande et consommation sans investissement (Pay as you go ). 3
Cloud Computing 2010 Segmentation IAAS PAAS SAAS Application Application Application Location logicielle Middleware Systeme d exploitation Middleware Systeme d exploitation Modèle programmation Middleware Systeme d exploitation Serveur Physique Réseau Stockage Machine Virtuelle Serveur Physique Réseau Stockage Serveur Physique Réseau Stockage 4
Cloud Computing 2010 Les alternatives SAAS : SalesForce.com - gestion commerciale ( SFA ) OVH ( intégrateur) - Intranets - blogs (Drupal, Joomla, Wordpress). Google - suite bureautique ( google documents ) PAAS : Microsoft Windows Azzure Google application OVH (intégrateur) - Plate forme Windows SqlServer -.NET - Plate forme Linux BigTable Java - Plate forme Java Apache-PHP et Mysql. IAAS : Amazon GoGrid OVH ( intégrateur ) - Serveurs Linux - Windows + services ( private cloud, load balancing, Ip adressing, storage ) - Serveurs Linux - Windows + services ( private cloud, load balancing, Ip adressing, storage ) - Serveurs Linux + services ( private cloud, load balancing, Ip adressing, storage ) 5
Offre EC2 AMAZON Critères de choix Leadership sur le marché ( choix restreint à Microsoft, Google et Amazon ). Support des serveurs applications traditionnels ( J2EE et PHP ) Support des bases de données relationnelle. ( Clef de toutes les applications existantes ) Standards ouverts et non dépendant d un éditeur. Choix final Microsoft éliminé, car plate forme propriétaire Google éliminé, car base de donnée propriétaire et ne supportant pas les standards ( JPA partiel pas JDBC ou SQL ). Semble en perte de vitesse. Par défaut Amazon EC2 semble la plate-forme la plus séduisante. 6
Offre EC2 AMAZON Offre utilisée dans le cadre du projet PlateForme API s Console Relational Data Service Elastic Map reduce ( HADOOP) SimpleDB Infrastructure Cloud Watch Elastic Cloud Computing Elastic Block Storage 7
Cas Pratique : Portage d un Intranet vers EC2 Résultat sous EC2 8
Cas Pratique : Portage d un Intranet vers EC2 Architecture initiale. Les couches logicielles de notre Intranet Application Open Source CMS DRUPAL Serveur application Apache / PHP Base de données MYSQL Système d exploitation Linux 9
Cas Pratique : Portage d un Intranet vers EC2 Implémentation 1 La première implémentation sous EC2 ( Système et données sur AMI ) Instance EC2 : AMI LAMP Application Open Source CMS DRUPAL Serveur application Apache / PHP Base de données MYSQL Système d exploitation Linux Backup sur partition externe ( Block EBS ) 10
Cas Pratique : Implémentation 1 - Console EC2 - Amazon 11
Cas Pratique : Implémentation 1 : Accès via des clefs privées 12
Cas Pratique : Implémentation 1 - Groupes de sécurité 13
Cas Pratique : Implémentation 1 - Sauvegarde des données via EBS 14
Cas Pratique : Implémentation 1 - Conclusion Scalabilité verticale via la création d un nouveau serveur plus puissant. Automatisation de la création d un serveur Création d un script de démarrage ( via EC2 API Tool ). Création d une AMI privée Utilisation de l API programmable ( Web Services ) Mais les instances EC2 sont des ressources temporaires non garanties par Amazon. La garantie n est effective que sur les systèmes de stockages ( EBS, RDS ou S3 ) qui sont répliqués de façon régulière. Dans le cas présent, cela veut dire repartir de la sauvegarde à chaque perte d instance. Donc ce serait préférable de mettre les données sur un autre support que l instance EC2. 15
Cas Pratique : Portage d un Intranet vers EC2 Implémentation 2 La seconde implémentation sous EC2 ( Séparation du système et des données ). Instance EC2 : AMI LAMP Application Open Source CMS DRUPAL Serveur application Apache / PHP Base de données MYSQL Système d exploitation Linux Stockage des données EBS Fichiers Apache et Données Mysql Backup sur partition externe ( Block EBS ) 16
Cas Pratique : Portage d un Intranet vers EC2 Implémentation 2 Quelles sont les données à sauvegarder? Configuration Apache : /var/www et /etc/httpd Configuration Mysql : répertoire de données et fichier log. Comment procéder pour les modifications. Mettre les répertoires sur le disque EBS. mv /var/www /drupal/www sudo ln -s /drupal/www /var/ Modifier le fichier configuration système. Fichier de configuration : /etc/my.cnf Modification du datadir et log-error. 17
Cas Pratique : Portage d un Intranet vers EC2 Implémentation 2 Architecture un peu plus complexe à mettre en œuvre, car elle nécessite une connaissance interne du fonctionnement des applications. ( On sauvegarde quoi?) La restauration et la fiabilité du stockage des données est simplifiée. Nous pouvons rapidement recréer une instance avec la capacité de calcul voulue et surtout en cas d arrêt de l instance, les données sont préservées. Mais nous sommes limités à la puissance des instances EC2. De plus, nous aurons en cas de forte charge concurrence entre les services de base de donnée et les services Apache. Donc, ce serait mieux d avoir un service qui s occupe de la gestion des pages web et un autre qui s occupe des bases de données. 18
Cas Pratique : Portage d un Intranet vers EC2 Implémentation 3 La troisième implémentation sous EC2 Instance EC2 : Serveur Apache/PHP Application Open Source CMS DRUPAL Serveur application Apache / PHP Stockage des données EBS Fichiers Apache Backup sur partition externe ( Block EBS ) Client Mysql Système d exploitation Linux Instance RDS Base de données MYSQL Données MYSQL Snapshots RDS 19
Cas Pratique : Implémentation 3 allocation d une instance RDS 20
Cas Pratique : Implémentation 3 RDS configuration sauvegardes. 21
Cas Pratique : Implémentation 3 RDS groupe de sécurité. 22
Cas Pratique : Implémentation 3 Conclusion. RDS versus une solution classique EC2 Mysql Avantages Simplification des opérations de sauvegarde/restauration. Simplification de la scalabilité. Multi A-Z déployment. Inconvénients Aucun accès direct à l instance RDS. Pas de possibilité de piloter depuis son poste personnel. ( Initial setup un peu compliqué à faire ). Une base par instance RDS. ( Attention aux coûts ). En conclusion : Architecture de production. Bonne architecture en cas de grosse base de production et équipes administration réduite. 23
Cas Pratique : Implémentation 3 Conclusion. Pour aller plus loin. Services Apaches, mettre en parallèle plusieurs serveurs ( load balancing ). - Persistance des sessions ( equiv à - mod_jk mod_proxy? ) - Unicité du stockage des données ou réplication. Mysql avec RDS, mettre en place les réplicas en mode lecture des bases RDS. Mysql, mettre en place le clustering dans une solution classique EC2-Mysql. 24
Utilisation EC2 et Conclusion Un nouveau moyen flexible et programmable d allocation de ressources Pour expérimenter de nouvelles solutions logicielles en payant une location à l heure, Pour avoir une flexibilité maximale pour les start-up dans le domaine du WEB, Pour créer un écosystème favorable à l open source, Pour permettre à des éditeurs ( open-source ou propriétaire ) de proposer une plate forme SAAS et d être rétribué via Amazon. Un système de repli en cas d attaque externe ( Wikileaks ). Et tout ceci sans ingénieur système, ni administrateur de base de données??? 25
Bibliographie Site Amazon : http://aws.amazon.com/ec2/ Livre de référence : Host your Web Site in the Cloud 26