Panorama des différentes offres de cloud computing : Amazon Web Services

le 02/11/2009 par Marc Bojoly
Tags: Software Engineering

Le marché du cloud computing est aujourd'hui en pleine expansion. Mais dans ce sujet très à la mode il n'est pas forcément simple de se repérer parmi les différentes offres. L'objectif de cette série d'articles est de présenter un aperçu de l'offre des différents acteurs. Ce premier numéro cible Amazon Web Services qui a été le pionnier sur ce marché. La forme sera ici un peu novatrice pour le blog Octo : il s'agit d'une cartographie où la description de chaque service fourni apparaît lorsque l'on survole la zone en question. Elle est également accessible en bas de page (cliquer sur la zone pour l'atteindre). Les zones de couleur claire représentent des fonctionnalités internes au fournisseur, les zones de couleur bleue les services interrogeables par l'utilisateur.

AWS

Conclusion

L'offre d'Amazon est donc très large mais vise un objectif commun : fournir un service clé en main pour monter une activité sur internet. Une grande partie de l'offre est tournée autour de la plateforme EC2, où l'utilisateur a un contrôle total sur les machines virtuelles qu'il crée en ligne. On parlera dans ce cas d'une offre d'infrastructure (Infrastructure As A Service). Mais Amazon fournit également des services de plus haut niveau : S3 et CloudFront peuvent être utilisés directement pour stocker et cacher des données statiques sur un site internet (images, téléchargements). Leurs services s'étendent jusqu'à la gestion de la logistique attachée à une vente en ligne avec FBA.


La suite de ce document contient une version fixe du texte présent dans les info bulles. Il s'agit du texte accédé lorsque vous cliquez sur une zone de la cartographie.


Début de la version imprimable

Retour à la cartographie

EC2

Description Solution d’hébergement de machines virtuelles

Caractéristiques

  • Une AMI est l'image cryptée et signée de la machine (équivalent d'un disque virtuel VMWare). Elles sont stockées sur Amazon S3.
  • Une fois lancée on parle d'instance de la machine virtuelle.
  • Chaque instance dispose en propre d'un ou plusieurs cores virtuels, de mémoires et de volumes d'instance non persistants (i.e. le contenu persiste au reboot mais il est perdu au redémarrage ou en cas de crash). Chaque instance partage avec les autres la bande passante réseau et l'accès aux disques (la documentation est très peu explicite là dessus mais je suppose qu'il s'agit des volumes d'instance).
  • Il existe différents types d'instances en fonction des performances souhaitées.
  • Le type d'instance définit le nombre de cores, la mémoire disponible et un ratio d'allocation pour les instances partagées. Les instances sont déployées dans des availability-zone (i.e. data-center). Il existe des restrictions entre instances situées dans des zones différentes.
  • Un stockage persistant est également proposé sous le nom de Amazon Elastic Block Storage. Il s'agit d'un web service permettant de créer des volumes de type block (raw device) que l'on peut formater et monter sur les instances EC2.

Facturation

  • Temps d'instance active X bande passante consommée.
  • Peut être dégressive si l'on réserve des ressources pour une durée longue (reserved instances).

Retour à la cartographie

EBS

Description Solution de stockage persistant Caractéristiques La documentation indique des performances meilleures que les volumes d'instance ainsi qu'une disponibilité de type RAID (10 fois plus fiable qu'un disque physique). Facturation Service en bêta

Retour à la cartographie

S3

Description Stockage persistant de larges (granularité inférieure à 5GB) données non structurées

Caractéristiques

  • S3 stocke des objets avec des métadonnées (métadonnées HTTP ou personnalisées).
  • Un objet pèse entre 1B et 5GB. Les objets sont stockés dans des buckets. Il n'y a pas de limite au nombre d'objets stockés dans un bucket. Un bucket est identifié par son nom, un objet est identifié par une clé unique dans le bucket. Chaque utilisateur dispose de 100 buckets.
  • L'URL d'accès à l'objet est du type http://[bucket name].s3.amazonaws.com/[object id]

Facturation

  • Volume stocké X données transférées IN/OUT X requêtes effectuées (GET étant 10 fois moins cher que PUT, POST, DELETE est gratuit)
  • La tarification du débit est dégressive lorsque le volume augmente.

Retour à la cartographie

CloudFront

Description Cache de données stockées sur S3 (4 centres en Europe)

Caractéristiques

  • On crée une distribution sur l’objet stocké dans S3 et on obtient une URL
  • Le système peut mettre quelque temps à être consistant
  • Débit maximal en pic : 1000 Mb/s et 1000 requêtes par seconde

Facturation

  • Nombre de requêtes X débit transféré (dégressif en volume)
  • Tarif au volume plus avantageux que S3, x1 si < 10 TB … x1/3 si > 1000 TB par mois)

Retour à la cartographie

SimpleDB

Description Stockage persistant de données structurées

Caractéristiques

  • Il permet le stockage de données et le requêtage par des requêtes "SELECT" avec une syntaxe SQL.
  • Le stockage se fait par domaines. Il y a une limite de GB de données par domaine et de 100 domaines par compte.
  • On peut considérer un domaine comme un tableau excel. L'unité de stockage est l'élément (item) (équivalent à la ligne). Chaque élément a un nombre d'attributs variable (potentiellement différent des autres éléments du même domaine). Les attributs peuvent être assimilés aux colonnes du tableau. Une ou plusieurs valeurs peuvent être associées à un attribut d'un élément. Le stockage des données est uniquement sous forme de texte et toutes les formes de recherche se font sous une forme lexicographique.
  • Les données sont automatiquement indexées.
  • Les données volumineuses doivent être stockées séparément dans S3.
  • Cet article explique quelques spécificités pour migrer des données SQL : le modèle doit être dénormalisé (limite du nombre de domaines), si des recherches doivent être faites sur des chiffres et des dates il faut les stocker de façon spécifique (padding et représentation ISO 8601).

Facturation

  • Heures de traitement consommées X débit X quantité stockée.
  • Actuellement 25h/1GB/1GB soit selon eux les 2 premiers millions de requêtes par mois sur 1GB sont gratuits.

Retour à la cartographie

Amazon Relational Database Service (beta)

Description Stockage relationnel persistant

Caractéristiques

  • Il permet le stockage au sein d’instances MySQL

  • Amazon prend en charge les opérations de maintenance du moteur de base de données et les sauvegardes/restaurations

  • L’utilisateur conserve le contrôle du schéma, des index et doit gérer le provisioning.

  • RDS peut être utilisé conjointement avec CloudWatch pour faciliter le provisioning.

  • L’utilisateur définit une période de rétention, Amazon effectue une sauvegarde toute les 5 minutes ou sur demande. Cette sauvegarde peut être restaurée à tout moment durant la période de rétention.

  • L’infrastructure permet une faible latence depuis les instances EC2.

  • Le moteur MySQL sous-jacent est hébergé sur un instance (EC2) comptant jusqu’à 64 GB de RAM et 26 ECU (EC2 Compute Unit soit l'équivalent d'un processeur Xeon). Cela constitue la limite de scalabilité de ce service par rapport à SimpleDB dans lequel la donnée est distribuée sur plusieurs machines.

  • Le service a été lancé le 29 octobre et il est pour l’instant limité à la zone US

Facturation

  • Heure de fonctionnement X coût horaire fonction de l’instance utilisée
  • Quantité de donnée provisionnée par mois
  • Le volume de sauvegarde est gratuit tant qu’il n’excède pas le volume provisionné. Ensuite il est facturé au volume.
  • Nombre d’accès disques
  • Débit d’entrée et de sortie vers l’extérieur (import, export, etc.) ou vers une autre région Amazon
  • Le débit entre zones de disponibilité Amazon est facturé.

Retour à la cartographie

SQS

Description Service de messaging asynchrone et sûr

Caractéristiques

  • Message délivré au moins une fois (infrastructure redondante)
  • Ecritures et lectures multiples, le message est verrouillé durant une action
  • Configuration d’un nombre non limité de queues
  • Taille du message limitée à 8KB
  • Pas de garantie sur l’ordre de livraison
  • Possibilité de définir une durée de visibilité. A défaut un message disparaît au bout de 4 jours

Facturation Nombre de requêtes X débit transféré

Retour à la cartographie

Import Export

Description Import/export de données sur disque externe

Caractéristiques

  • Disponible uniquement aux Etats Unis
  • Envoi d’un support externe (interface USB ou eSata) pour importer des données dans S3 ou exporter des données de S3
  • Débit maximum théorique 500 MBs
  • Demande de travail (job) par mail (format YAML). Un fichier MANIFEST attaché aux mails contient les informations sur le transfert, le support contenant un fichier SIGNATURE qui est la signature du fichier manifest
  • Un plugin Firefox pour S3 existe et prend en compte cette fonctionnalité

Facturation Nombre de supports X nombre d’heures de stockage

Retour à la cartographie

CloudWatch

Description Solution de supervision des instances EC2 et Elastic Load Balancing

Caractéristiques

  • Les mesures sont agrégées par minute. Le service effectue un certain nombre de mesures (par exemple l'activité CPU) et les agrège par minute pour les stocker : on parle alors de métriques. Les mesures comportent un namespace qui identifie le type d'applications dont provient la métrique, des dimensions (l'identifiant de l'instance...) une valeur avec une unité. La métrique présente le min, le max et la moyenne des mesures.
  • Le service offre des fonctionnalités décisionnelles sur les mesures prises.

Facturation Nombre d’instances EC2 monitorées X unité de temps (prévision)

Retour à la cartographie

AutoScaling

Description Automate permettant d'effectuer des actions de maintenance

Caractéristiques

  • Il s'agit d'un automate permettant d'effectuer des actions de maintenance (on parle de Scaling activity) en fonction de triggers. On définira un Auto Scaling Group contenant un certain nombre d'instances. L'arrêt et le démarrage des machines se feront automatiquement en fonction d'une politique (min, max) et de triggers (ex. consommation CPU). Le service peut être couplé à Elastic Load Balancing et ainsi obtenir des triggers du routeur.

Facturation Gratuit pour les utilisateurs de Cloud Watch (prévision)

Retour à la cartographie

Elastic Load Balancing

Description Load balancer (switch niveau 7)

Caractéristiques

  • Il permet de répartir les requêtes, donc d'assurer une haute disponibilité et de répartir la charge entre plusieurs instances EC2.
  • La répartition peut se faire sur plusieurs zones de disponibilité (availability zones) (aka dataCenter) mais uniquement au sein d'une même région (aka US, Europe).
  • Le trafic est réparti uniformément sur les différentes zones de disponibilité donc elles doivent chacune contenir le même nombre d'instances.

Facturation Heures d’utilisation X débit (prévision)

Retour à la cartographie

Elastic Map Reduce

Description Service applicatif de traitement distribué

Caractéristiques

  • Ce service est implémenté avec le logiciel libre Hadoop (fondation apache)
  • Il est réparti le travail sur plusieurs instances EC2 grâce au pattern Map/Reduce
  • Le calcul est constitué d’un ensemble de flux. Chaque flux est constitué d’étapes écrites dans différents langages
  • Elastic MapReduce assure le déploiement d’Hadoop, le provisionning/déprovisionning des instances EC2, le lien avec S3 pour le stockage
  • Propose le framework Pig (fondation Apache) au dessus de Hadoop pour requêter de grandes quantités de données (Le framework est prévu pour l'analyse de logs)
  • Les données d’entrées, les données de sorties, les portions de programme (Map, Reduce) sont déployées dans S3

Facturation Heures de traitement + charges EC2 + charges S3

Retour à la cartographie

Paiement

Simple Pay : Service de paiement/donation via la plateforme Amazon à l’aide d’un simple bouton

  • Paiement à la transaction
  • Sécurisation possible par signature basée sur les identifiants Amazon

Flexible Payments Service : Service de paiement plus souple

  • Facturation de paiement unique ou multiple sur la base d’une autorisation initiale
  • Facturation pour le compte d’un tiers (MarketPlace)
  • Agrégation de micro-transactions (prépayées ou postpayées)
  • Paiement à la transaction

DevPay : Service de facturation de service EC2 ou S3

  • Facturation sur la base de l’utilisation du service sous-jacent
  • API REST uniquement pour S3
  • Paiement à la transaction

Retour à la cartographie

Autres

Mechanical Truck (beta) : Service de réalisation de travaux manuels (HIT : Humain Intelligent Time)

  • Des personnes effectuent un travail via une application web et sont rémunérées si le donneur d’ordre (Requester) est satisfait
  • 10% de commission avec un minimum de $0.005

Alexa Web Information Service (AWS) : Service donnant des informations sur les sites web

  • Uniquement pour les sites les plus fréquentés et publiés sur www.alexa.com
  • Fournit également des informations sur le site (liens entrants, sortants, catégories…)
  • Facturation par URL interrogée

Alexa Top Sites : Service donnant des informations de traffic sur les sites web

  • Fournit les rangs de consultation des 100000 sites web les plus consultés
  • Facturation par URL interrogée

Amazon Fullfillement web Services : service permettant d’accéder au service de livraison d’Amazon

  • Va de pair avec le service (physique) FBA (Fullfillement By Amazon)
  • Fournit toutes les API pour créer, modifier, consulter un ordre d’expédition
  • Facturation uniquement via FBA

Retour à la cartographie

Console

La console permet de provisionner les instances EC2 et d'administrer les différents services.