Amazon SimpleDB est un stockage de données non relationnel combinant flexibilité et haute disponibilité, et déchargeant le client des tâches d'administration de base de données. Les développeurs stockent et récupèrent simplement leurs éléments de données en effectuant des requêtes auprès des services Web, et Amazon SimpleDB fait le reste.
Libéré des exigences strictes des bases de données relationnelles, Amazon SimpleDB est optimisé pour offrir une disponibilité et une flexibilité élevées, avec peu ou pas de tâches d'administration. En coulisses, Amazon SimpleDB crée et gère automatiquement plusieurs réplicas de vos données diffusés géographiquement pour permettre une haute disponibilité et une durabilité des données. Le service ne vous facture que les ressources réellement consommées lors du stockage de vos données et du traitement de vos demandes. Vous pouvez changer votre modèle de données n'importe quand, et les données sont automatiquement indexées pour vous. Avec Amazon SimpleDB, vous pouvez vous focaliser sur le développement de l'application sans avoir à vous soucier de la mise en service de l'infrastructure, de la haute disponibilité, de la maintenance de logiciels, de la gestion du schéma et de l'index, ou de la personnalisation de la performance.
Amazon SimpleDB fournit une interface de services Web simplifiée afin de créer et de stocker plusieurs ensembles de données, d'interroger facilement vos données et de retourner les résultats. Vos données sont automatiquement indexées, facilitant une localisation rapide de l'information dont vous avez besoin. Il n'y a pas besoin de prédéfinir un schéma ou de changer un schéma lors de l'ajout d'une nouvelle base de données par la suite. Et un scale-out devient aussi simple que la création de nouveaux domaines, sans avoir besoin de construire de nouveaux serveurs.
Pour utiliser Amazon SimpleDB vous :
Léger – Le service vous permet de vous concentrer pleinement sur le développement d'application à valeur ajoutée, plutôt que sur l'administration laborieuse et gourmande en temps de bases de données. Amazon SimpleDB gère automatiquement la mise en service de l'infrastructure, la maintenance du matériel et des logiciels, la réplication et l'indexation des éléments de données et le réglage des performances.
Hautement disponible – Amazon SimpleDB crée automatiquement plusieurs copies diffusées géographiquement de chaque objet de donnée que vous stockez. Ceci permet une haute disponibilité et une durabilité – dans le scénario improbable d'échec d'un des réplicas, Amazon SimpleDB peut effectuer un basculement vers un autre réplica dans le système.
Flexible – Quand votre activité change ou que votre application évolue, vous pouvez facilement refléter ces changements dans Amazon SimpleDB sans avoir besoin de casser un schéma rigide ou de refactoriser le code – ajoutez simplement un autre attribut à votre ensemble de données Amazon SimpleDB quand c'est nécessaire. Vous pouvez également choisir entre des requêtes en lecture cohérente ou finalement cohérente (consistent or eventually constitent read requests), gagnant la flexibilité nécessaire pour correspondre aux performances de lecture (latence et débit) et exigences de cohérence de votre application, ou même des parties disparates au sein de votre application.
Simple à utiliser – Amazon SimpleDB fournit un accès continu aux fonctions de stockage et d'interrogation qui sont traditionnellement mises en place en utilisant un cluster de bases de données relationnelle – tout en laissant de côté les autres opérations complexes, souvent non utilisées, de base de données. Le service vous permet d'ajouter rapidement des données et de récupérer facilement ou de modifier des données par le biais d'un ensemble simple d'appels API.
Conçu pour être utilisé avec d'autre Amazon Web Services – Amazon SimpleDB est conçu pour s'intégrer facilement à d'autres services Amazon comme Amazon S3 et EC2, fournissant l'infrastructure pour créer des applications à l'échelle du Web. Par exemple, les développeurs peuvent exécuter leurs applications dans Amazon EC2 et stocker leurs objets de données dans Amazon S3. Amazon SimpleDB peut être utilisé pour interroger les métadonnées objet depuis l'application dans Amazon EC2 et renvoyer les pointeurs vers les objets stockés dans Amazon S3. Les développeurs peuvent aussi utiliser Amazon SimpleDB avec Amazon RDS pour les applications qui ont besoin à la fois de bases de données relationnelle et non relationnelle. Le transfert des données entre Amazon SimpleDB et d'autres Amazon Web Services dans la même région est gratuit.
Sécurisé – Amazon SimpleDB fournit des points de terminaison https pour assurer la sécurité et le encryptage des communication entre votre domaine et l'application ou le client. De plus, grâce à l'intégration avec AWS Identify and Access Management, vous pouvez facilement établir un contrôle utilisateur ou par groupe de niveau sur l'accès à des domaines et des opérations spécifiques de SimpleDB.
Économique – Amazon SimpleDB vous fait bénéficier des avantages financiers de l'échelle d'Amazon. Vous ne payez que les ressources réellement consommées. Pour Amazon SimpleDB, cela veut dire que les stockages, les lectures et les écritures de données sont facturés par ressources de calcul consommées par chaque opération, et vous ne serez pas facturé pour ces ressources de calcul si vous ne les utilisez pas réellement (i.e. en faisant des demandes).
Vous ne payez que ce que vous utilisez. Il n'y a pas de frais minimum. Estimez votre facture mensuelle en utilisant le Calculateur mensuel simple AWS. Les prix listés sont basés sur la région dans laquelle vous avez établi votre/vos domaines Amazon SimpleDB.
Amazon SimpleDB calcule le taux d'utilisation machine de chaque demande et facture selon la quantité de la capacité machine utilisée pour réaliser la demande spécifique (SELECT, GET, PUT, etc.), normalisée sur la capacité horaire semblable à un processeur 2007 1,7 GHz Xeon. Voir ci-dessous pour une description plus approfondie du calcul des frais du taux d'utilisation machine.
Le transfert des données « entrantes » et « sortantes » fait référence au transfert dans et hors d'Amazon SimpleDB. Il n'y a pas de frais supplémentaire pour les données transférées entre Amazon SimpleDB et d'autres Amazon Web Services dans la même région (c.-à-d., 0,00 USD par Go). Les données transférées parmi les régions (par ex., entre Amazon SimpleDB dans la région UE (Irlande) et Amazon EC2 dans la région USA Est (Virginie du Nord), seront facturées aux tarifs de transfert de données Internet des deux côtés du transfert.
* Votre utilisation gratuite est calculée chaque mois dans toutes les régions et appliquée automatiquement à votre facture – l'utilisation gratuite n'est pas cumulable. ** Dans le cadre du niveau d'utilisation gratuite d'AWS, les nouveaux clients AWS recevront 15 Go de transfert de données sortant chaque mois regroupé parmi tous les services AWS pendant un an.*** Les niveaux de tarification des transferts sortants prennent en compte votre utilisation totale des transferts de données sortants via Amazon EC2, Amazon EBS, Amazon S3, Amazon Glacier, Amazon RDS, Amazon SimpleDB, Amazon SQS, Amazon SNS, Amazon DynamoDB, AWS Storage Gateway et Amazon VPC.Amazon SimpleDB mesure la taille de vos données facturables en ajoutant la taille d'octet brut des données que vous avez téléchargées + 45 octets de temps système pour chaque article, nom d'attribut et paire attribut-valeur.
Amazon SimpleDB est conçue pour stocker des quantités de données relativement petites et est optimisée pour procurer un accès rapide et une flexibilité sur la manière dont ces données sont exprimées. Afin de minimiser vos coûts au travers des services AWS, les objets ou fichiers de grande taille doivent être stockés dans Amazon S3, tandis que les pointeurs et les métadonnées associées à ces fichiers peuvent être stockés dans Amazon SimpleDB. Ceci vous permettra de chercher et d'accéder rapidement à vos fichiers, tout en minimisant le coût global de stockage. Cliquez ici pour une explication détaillée des différences entre le stockage dans Amazon SimpleDB et le stockage dans Amazon S3 et une description plus détaillée du calcul de vos coûts de stockage.
*Toutes les données stockées dans le cadre du programme de niveau d'utilisation gratuite doivent être utilisées activement. Si vous n'accédez pas à un domaine pendant une période de 6 mois, il sera éliminé à la discrétion d'Amazon Web Services.
(La licence Amazon SimpleDB est fournie par Amazon Web Services, Inc.)
| Ressources pour développeurs |
Le modèle de données utilisé par Amazon SimpleDB facilite le stockage, la gestion et l'interrogation de vos données structurées. Les développeurs organisent leurs ensembles de données en domaines et peuvent envoyer des requêtes dans toutes les données stockées dans un domaine particulier. Les domaines sont des collections d'articles qui sont décrits par des paires attributs-valeurs.
Pensez à ces termes comme analogues aux concepts dans une feuille de calcul traditionnelle. Par exemple, prenez les détails d'une base de données de gestion client montrée dans le tableau ci-dessous et déterminez comment ils seraient représentés dans Amazon SimpleDB. Le tableau entier serait votre nom de domaine "clients." Les clients seraient des lignes dans votre tableau ou des objets dans votre domaine. Les informations de contact seraient décrits par en-têtes de colonne (attributs). Les valeurs sont dans des cellules individuelles. Maintenant imaginez que les fichiers ci-dessous sont des nouveaux clients que vous voulez ajouter à votre domaine.
| Id client | Prénom | Nom | Adresse | Ville | Etat | Code postal | Téléphone | |
| 123 | Bob | Smith | 123 Main St | Springfield | MO | 65801 | 222-333-4444 | |
| 456 | James | Johnson | 456 Front St | Seattle | WA | 98104 | 333-444-5555 |
Dans Amazon SimpleDB, pour ajouter les informations ci-dessus, vous devez mettre les Id clients dans votre domaine avec les paires attribut-valeur pour chaque client. Sans la syntaxe spécifique, cela ressemblerait à quelque chose comme :
PUT (objet, 123), (Prénom, Bob), (Nom, Smith), (Adresse, 123 Main St.), (Ville, Springfield), (État, MO), (Code postal, 65801), (Téléphone, 222-333-4444) PUT (objet, 456), (Prénom, James), (Nom, Johnson), (Adresse, 456 Front St.), (Ville, Seattle), (État, WA), (Code postal, 98104), (Téléphone, 333-444-5555)
Amazon SimpleDB diffère totalement des tables de données traditionnelles. Vous avez la flexibilité de revenir plus tard et d'ajouter des attributs qui ne s'appliquent qu'à certains fichiers. Par exemple, imaginez que vous commenciez à capturer les adresses emails de vos clients afin de permettre des alertes en temps réel sur les statuts de commandes. Plutôt que de reconstruire votre tableau "clients", réécrire vos requêtes, reconstruire vos indexes et ainsi de suite, vous n'aurez plus qu'à ajouter les nouveaux fichiers et tous les attributs additionnels à votre domaine "clients" existant. Par conséquent, le domaine devrait ressembler à ça :
| Id client | Prénom | Nom | Adresse | Ville | Etat | Code postal | Téléphone | ||
| 123 | Bob | Smith | 123 Main St | Springfield | MO | 65801 | 222-333-4444 | ||
| 456 | James | Johnson | 456 Front St | Seattle | WA | 98104 | 333-444-5555 | ||
| 789 | Deborah | Thomas | 789 Garfield | New York | NY | 10001 | 444-555-6666 | dthomas@xyz.com |
Amazon SimpleDB fournit un petit nombre d'appels API simples qui implémentent l'écriture, l'indexation, et l'interrogation des données. L'interface et l'ensemble des caractéristiques sont intentionnellement focalisés sur une fonctionnalité centrale, fournissant une API de base sur laquelle les développeurs peuvent construire, et rendant le service simple à maîtriser et facile à utiliser.
Note : Amazon SimpleDB a été intégré à AWS Identity and Access Management pour permettre un contrôle complet des ressources d'Amazon SimpleDB. Grâce à l'intégration à AWS Identify and Access Management, un compte AWS ayant souscrit SimpleDB peut créer plusieurs Utilisateurs. A leur tour, ces Utilisateurs peuvent se voir autoriser les niveaux de permission de l'API SimpleDB pour accéder aux domaines SimpleDB appartenant au compte AWS. Consultez la page détails d'AWS Identity and Access Management pour plus de détails.
Amazon SimpleDB stocke plusieurs copies, distribuées géographiquement, de chaque domaine pour permettre une haute disponibilité et la durabilité des données. Une écriture réussie (en utilisant PutAttributes, BatchPutAttributes, DeleteAttributes, BatchDeleteAttributes, CreateDomain ou DeleteDomain) signifie que toutes les copies du domaine persisteront durablement. Amazon SimpleDB prend en charge deux options de lectures cohérentes : lectures finalement cohérentes et lectures cohérentes.
Par défaut, GetAttributes et Select exécute une lecture finalement cohérente. Puisque une lecture cohérente peut potentiellement subir une latence plus importante et un débit de lecture plus faible, il vaut mieux l'utiliser seulement lorsqu'un scénario de l'application dicte qu'une opération de lecture nécessite de lire toutes les écritures qui ont reçu une réponse positive avant la lecture. Pour tous les autres scénarios, la lecture finalement cohérente, par défaut, produira la meilleure performance. Notez également qu'Amazon SimpleDB vous permet de spécifier les paramètres de cohérence pour chaque requête de lecture individuelle, de sorte que la même requête pourrait avoir des parties disparates suivant différents paramètres de cohérence.
Amazon SimpleDB n'est pas une base de données relationnelle et sacrifie des transactions et relations complexes (par exemple, relie) afin de fournir des caractéristiques de fonctionnalité et de performance uniques. Cependant, Amazon SimpleDB offre des sémantiques transactionnelles comme :
Puts/Deletes conditionnelles sont exposées via les APIs PutAttributes et DeleteAttributes en spécifiant une condition facultative avec une valeur attendue. Par exemple, si votre application avait réservé des sièges ou vendu des billets pour un évènement, vous ne pouvez autoriser un achat (c'est-à-dire, écrire une mise à jour) que si le siège spécifié est toujours disponible (la condition facultative). Ces sémantiques peuvent aussi être utilisées pour implémenter des fonctionnalités comme des décomptes, l'insertion d'un objet seulement s'il n'existe pas déjà, et un contrôle de concurrence optimiste (OCC). Une application peut implémenter un OCC en maintenant un numéro de version (ou un timestamp) en tant qu'attribut d'un objet et en réalisant une Put/Delete conditionnelle basée sur la valeur de ce numéro de version.
Pour en savoir plus sur la sémantique transactionnelle ou la cohérence avec Amazon SimpleDB, référez-vous au Guide du développeur Amazon SimpleDB ou au livre blanc Consistency Enhancements.
Amazon Web Services propose plusieurs bases de données alternatives pour les développeurs. Vous pouvez exploiter des services de base de données relationnelle et NoSQL intégralement gérés, ou exécuter votre propre base de données dans le nuage en vous appuyant sur Amazon EC2 et Amazon EBS.
Amazon RDS permet de gérer une base de données relationnelle riche en fonctionnalités tout en allégeant son administration. Amazon DynamoDB est un service de base de données NoSQL intégralement géré offrant des performances prévisibles et extrêmement élevées ainsi qu'un dimensionnement transparent. Amazon SimpleDB fournit un service de base de données non relationnelle conçu pour les ensembles de données de petite taille. En utilisant l'une des nombreuses AMI sur Amazon EC2 et EBS, vous disposez d'un contrôle total sur votre base de données tout en vous épargnant le fardeau que constituent le provisionnement et l'installation du matériel.
Il y a des différences importantes entre ces alternatives ; selon votre utilisation, l'une peut s'avérer plus adaptée.
Rendez-vous sur la page Bases de données sur AWS pour des informations plus détaillées sur les diverses alternatives de base de données pour vos applications.
Contrairement à Amazon S3, Amazon SimpleDB ne stocke pas de données brutes. Amazon SimpleDB traite plutôt vos données comme une entrée et les développe pour créer des indexes multiples, vous permettant ainsi de rapidement interroger cette donnée. De plus, Amazon S3 et Amazon SimpleDB utilisent différents types de stockage physique. Amazon S3 utilise des lecteurs de stockage denses optimisés pour le stockage d'objets lourds à moindre coût. Amazon SimpleDB stocke des bits de données plus légers et utilise moins de lecteurs denses optimisés pour la rapidité d'accès aux données.
Afin d'optimiser les coûts à travers les services AWS, il faudrait stocker les objets ou fichiers lourds sur Amazon S3, et les plus petits éléments ou les fichiers pointeurs (possiblement vers des objets sur Amazon S3) sur Amazon SimpleDB. En raison de l'intégration étroite entre les services et le libre transfert des données dans l'environnement AWS, les développeurs peuvent facilement bénéficier des capacités de rapidité et d'interrogation d'Amazon SimpleDB, ainsi que le faible coût de stockage des données dans Amazon S3, en intégrant les deux services dans leurs applications.
Amazon SimpleDB permet actuellement à chaque domaine individuel d'augmenter jusqu'à 10 Go. Si votre ensemble de données est plus important que 10 Go, tirez simplement avantage de l'architecture évolutive d'Amazon SimpleDB et répartissez vos données sur plusieurs domaines. Puisque Amazon SimpleDB est conçu sur une idée de parallélisme, la répartition de vos données sur plusieurs domaines augmentera aussi votre potentiel de débit d'écriture et de lecture. Initialement il vous sera alloué un maximum de 250 domaines ; veuillez remplir ce formulaire si vous avez besoin de domaines supplémentaires.
Pour plus d'informations sur les avantages pour les développeurs à utiliser Amazon SimpleDB en conjonction avec Amazon S3, cliquez ici.
Avec Amazon SimpleDB, la meilleure façon de prédire la taille de votre espace de stockage de données structurées est la suivante :
La taille brute en octets (Go) de tous les ID d'éléments + 45 octets par élément + la taille brute en octets (Go) de tous les noms d'attribut + 45 octets par nom d'attribut + la taille brute en octets (Go) de toutes les paires attribut-valeur + 45 octets par paire attribut-valeur
Pour estimer votre coût de stockage mensuel pour la région USA Est (Virginie du Nord) ou USA Ouest (Oregon), prenez la taille résultante en Go et multipliez-la par 0,25 USD. Pour les régions UE (Irlande), Asie-Pacifique (Singapour), Asie-Pacifique (Sydney) ou USA Ouest (Californie du Nord), prenez la taille résultante en Go et multipliez-la par 0,275 USD. Pour la région Asie-Pacifique (Tokyo), prenez la taille résultante en Go et multipliez-la par 0,29 USD. Pour la région Amérique du Sud (Sao Paulo), prenez la taille résultant en Go et multipliez-la par 0,34 USD.
Amazon SimpleDB calcule le taux d'utilisation machine de chaque demande et facture selon la quantité de la capacité machine utilisée pour réaliser la demande spécifique (SELECT, GET, PUT, etc.), normalisée sur la capacité horaire semblable à un processeur 2007 1,7 GHz Xeon. L'utilisation de la machine est induite par la quantité de données (# d'attributs, la longueur des attributs) traitée par chaque demande. Une opération GET qui récupère 256 attributs utilisera plus de ressources qu'une opération GET qui récupère 1 seul attribut. Une opération SELECT à plusieurs prédicats qui examine 100 000 attributs coûtera plus cher qu'une requête à un prédicat qui examine 250 attributs.
Dans le message de réponse à chaque demande, Amazon SimpleDB renvoie un champ appelé Box Usage. Box Usage est la mesure de ressources machine consommées par chaque demande. Elle n'inclut pas la bande passante ou le stockage. Box Usage est signalée en portions d'heure machine utilisée pour accomplir une demande particulière. Pour les régions USA Est (Virginie du Nord) et USA Ouest (Oregon), le coût d'une demande individuelle est : Box Usage (exprimée en heure) * 0,14 $ par heure machine d'Amazon SimpleDB. Le coût de toutes vos demandes est dans la somme de Box Usage (exprimée en heures) x 0,14 $.
Par exemple, si au cours d'un mois, la somme de Box Usage pour vos demandes utilise l'équivalent de un processeur Xeon 1.7 GHz pendant 9 heures, votre facture sera :
9 heures x 0,14 $ par heure machine Amazon SimpleDB = 1,26 $.
Si vos domaines d'interrogation sont situés dans les régions UE (Irlande), Asie-Pacifique (Singapour), Asie-Pacifique (Sydney) ou USA Ouest (Californie du Nord), l'utilisation d'Amazon SimpleDB est tarifée à 0,154 USD par heure-machine. Si vos domaines d'interrogation sont situés dans la région Asie-Pacifique (Tokyo), l'utilisation d'Amazon SimpleDB est tarifée à 0,162 USD par heure-machine. Si vos domaines d'interrogation sont situés dans la région Amérique du Sud (Sao Paulo), les heures machines Amazon SimpleDB sont tarifées à 0,19 $ par heure machine. Tous les calculs de coûts doivent être ajustés pour refléter le tarif dans la région appropriée.
La meilleure façon de comprendre Amazon SimpleDB est de parcourir le guide de démarrage, une partie de notre documentation technique. En seulement quelques minutes, vous serez capable de créer votre domaine et de commencer à construire votre index !
Votre utilisation de ce service est soumise au Contrat client Amazon Web Services