Amazon AWS, quesaco ?
AWS signifie Amazon WEB Services. Cela comprend un grand nombre de services divers et variés. Cela comprend le stockage des données, l’exécution des applications et la gestion des bases de données. Mais cela inclut aussi des services applications comme l’envoi de mails ou la gestion de file d’attente.
Intérêt
La couche physique étant complètement cachée, la montée en charge s’effectue de manière linéaire.
Dans notre configuration actuelle, en cas de problème de charge nous devrons acquérir un serveur plus puissant puis déplacer nos solutions. Si cette demande de puissance est ponctuelle, cette machine sera surdimensionnée.
Tarification
La tarification se fait en fonction de l’usage. Sont facturés les données stockées, le temps d’exécution, la bande passante employée, etc. Une chose est sure : personne ne sait à l’avance combien cela va lui coûter tant il est compliqué d’estimer son tarif…
APIs
Amazon fournit des API permettant à différents langages d’attaquer les services.
Cela concerne :
- Java.
- Python.
- JavaScript.
- PHP.
- .NET.
- iOS (j’imagine qu’il y a un SDK pour Objective C).
- Androïd (idem pour Java pour Androïd).
- Etc.
Voilà un exemple de mise en œuvre (pour le détail, voir http://aws.amazon.com/articles/3998?_encoding=UTF8&jiveRedirect=1 ):
- Une application quelconque ayant accès à Internet stocke un fichier à traiter sur Amazon S3 (stockage). Elle poste ensuite un message sur Amazon SQS (gestion de messages) et demande d’effectuer un traitement en spécifiant le nom de ce fichier.
- Une instance exécutée sur Amazon EC2 (exécution) exécute un applicatif qui traite les messages, etc.
Un des intérêts est que la montée en charge est totalement gérée :
- Côté stockage et messages, tout est géré par Amazon directement.
- Côté traitement des messages, il est facile de lancer autant d’instances que l’on veut pour traiter les messages en attente.
- À noter que l’on peut facilement lancer une instance à partir de son langage favori. Par exemple, en partant du zéro : du code Python crée l’instance Ubuntu en demandant d’installer ImageMagick, copie et exécute le code traitant les messages, le tour est joué.
Les principaux services
Je décris ci-après quelques services que j’ai retenus. La liste exhaustive est ici : http://aws.amazon.com/fr/products/ .
Amazon Elastic Compute Cloud ou EC2
Il s’agit du service permettant d’exécuter des images virtuelles du type de VMWare. On peut exécuter des instances fournies ou même télécharger ses propres instances.
Cela fonctionne grosso modo comme VMWare. Quand on crée une instance, on définit la puissante de sa machine, le système d’exploitation souhaité (Windows est disponible) et c’est parti.
Plus la puissante est importante, plus le coût est élevé. La puissante de la machine est estimée en ECU (EC2)
Compute Unit). C’est l’équivalent d’un processeur Xeon de 2007 fonctionnant à 1.0-1.2 GHz. On a le choix entre un à 35 ECU pour une mémoire de 613 Mo à 117 Go de 1 à 16 cœurs (35 EU pour 16 cœurs, est-ce que la puissante brute est doublée ?).
Amazon Relational Database Service (RDS)
Ce service permet de créer facilement des instances de bases MySQL, Oracle ou SQL Serveur. C’est aussi simple que de créer une base dans MySQL Administrator.
D’autres services de base de données en mode NoSQL existent comme Amazon DynamoDB (pour les gros volumes de données) ou Amazon SimpleDB (petits volumes).
Amazon Simple Storage Service (S3)
Cette infrastructure permet de gérer des données accessibles de partout à partir d’Internet.
Il existe par exemple une API permettant de créer une clé d’identification, de lui associer un fichier. Ce fichier est ensuite accessible facilement à partir de cette clé.
On peut voir ce système comme un NAS.
Amazon Elastic Block Store (EBS)
C’est un autre système de stockage que l’on peut plutôt voir comme un disque dur externe.
À chaque instance d’exécution est associée une certaine capacité de stockage. Si on a besoin de plus ou si on veut conserver les données même quand l’instance est détruite, on utilise EBS.
À noter qu’il existe un service permettant de copier des données à partir d’un support physique sur S3 ou EBS. Copier 15 To par Internet peut être long et sera très cher : il suffit d’envoyer son disque dur en Irlande. C’est aussi payant, mais c’est beaucoup plus abordable !
Amazon Simple Queue Service (SQS)
Déjà évoqué, il s’agit d’un service Web exposant des fonctions de file d’attente.
L’intérêt que ce service est « attaquable » même derrière un Firewall tatillon par exemple…
Amazon Simple Email Service (SES)
Ici, on a affaire à un service d’envoi de mails en nombre…
À suivre…