Amazon SimpleDB ist eine hochverfügbare, NoSQL-Datenbank zur Auslagerung des Arbeitsaufwands bei der Datenbankadministration. Mit Amazon SimpleDB können Entwickler Datenelemente über einfache Web-Serviceanforderungen speichern und abfragen – Amazon SimpleDB erledigt den Rest.
Amazon SimpleDB ist nicht durch die strikten Anforderungen einer relationalen Datenbank beschränkt und für hohe Verfügbarkeit und Flexibilität mit geringem oder keinem administrativen Aufwand optimiert. Im Hintergrund erstellt und verwaltet Amazon SimpleDB automatisch mehrere geografisch verteilte Kopien Ihrer Daten, um hohe Verfügbarkeit und Dauerhaftigkeit der Daten zu gewährleisten. Bei dem Dienst zahlen Sie nur für die tatsächlich zur Speicherung Ihrer Daten und Bearbeitung Ihrer Anforderungen genutzten Ressourcen. Sie können Ihr Datenmodell spontan ändern und die Daten werden automatisch für Sie indiziert. Mit Amazon SimpleDB können Sie auf die Entwicklung von Anwendungen fokussieren, ohne sich um die Bereitstellung von Infrastruktur, hohe Verfügbarkeit, Softwarepflege, Schema- und Indexverwaltung oder Leistungsabstimmung sorgen zu müssen.
Dieser Service ermöglicht es Ihnen, sich vollständig auf die Entwicklung mehrwertorientierter Anwendungen zu konzentrieren, statt sich mit der mühseligen und zeitaufwändigen Datenbankverwaltung zu befassen. Amazon SimpleDB verwaltet automatisch die Bereitstellung von Infrastruktur, Hardware- und Softwareverwaltung, Replizierung und Indizierung von Daten sowie Leistungsabstimmung.
Amazon SimpleDB erstellt automatisch mehrere geografisch verteilte Kopien aller gespeicherten Datenelemente. Dies bewirkt hohe Verfügbarkeit und Beständigkeit – im unwahrscheinlichen Fall, dass eine Kopie versagt, kann Amazon SimpleDB einfach ein Failover zu einer anderen Kopie im System durchführen.
Wenn sich Ihr Geschäft ändert oder die Anwendung sich erweitert, können Sie diese Änderungen auf einfache Weise in Amazon SimpleDB nachvollziehen, ohne sich sorgen zu müssen, dass ein rigides Schema gebrochen wird, und ohne Code neu fakturieren zu müssen – Sie fügen einfach bei Bedarf ein weiteres Attribut zu Ihrem Amazon SimpleDB-Datensatz hinzu. Sie können bei Leseanforderungen auch zwischen Consistent oder Eventually Consistent wählen, um die Leseleistung (Latenz und Durchsatz) und Konsistenzerfordernisse flexibel an die Anforderungen Ihrer Anwendung oder sogar an getrennte Bereiche innerhalb Ihrer Anwendung anzupassen.
Amazon SimpleDB bietet einen unkomplizierten Zugriff auf die Speicher- und Abfragefunktionen, die herkömmlicherweise mithilfe eines relationalen Datenbankclusters erzeugt werden. Komplexe und oftmals nicht verwendete Datenbankvorgänge fallen in Amazon SimpleDB weg. Dieser Service ermöglicht Ihnen das schnelle Hinzufügen und problemlose Abrufen und Bearbeiten von Daten über eine Reihe von einfachen API-Aufrufen.
Amazon SimpleDB lässt sich problemlos in andere AWS-Services wie z. B. Amazon S3 und EC2 integrieren und bietet die für die Erstellung von Web-skalierten Anwendungen erforderliche Infrastruktur. So können Entwickler beispielsweise Anwendungen in Amazon EC2 ausführen und Datenobjekte in Amazon S3 speichern. Anschließend kann mit Amazon SimpleDB eine Abfrage der Objektmetadaten innerhalb der Anwendung in Amazon EC2 durchgeführt werden, und es können Verweise auf Objektspeicherorte in Amazon S3 zurückgegeben werden. Entwickler können Amazon SimpleDB auch mit Amazon RDS für Anwendungen nutzen, die relationale und nicht-relationale Datenbanken erfordern. Die Datenübertragung zwischen Amazon SimpleDB und anderen Amazon Web Services in derselben Region ist kostenlos.
Amazon SimpleDB stellt einen https-Endpunkt bereit, um sichere, verschlüsselte Kommunikation zwischen Ihrer Anwendung bzw. Ihrem Client und Ihrer Domain zu gewährleisten. Zusätzlich können Sie durch Integration mit AWS Identity and Access Management den Zugriff auf bestimmte SimpleDB-Domains und -Operationen auf Benutzer- oder Gruppenebene steuern.
Amazon SimpleDB gibt die finanziellen Vorteile durch die Größe von Amazon an Sie weiter. Sie zahlen nur für die tatsächlich beanspruchten Ressourcen. Für Amazon SimpleDB bedeutet dies, dass das Lesen und Speichern von Daten über die für jede Operation verbrauchten Rechnerressourcen berechnet werden und dass keine Rechnerressourcen anfallen, wenn sie nicht tatsächlich genutzt werden, d. h. wenn keine Anfragen erfolgen.
Da mit Amazon SimpleDB der Arbeitsaufwand für den Betrieb einer Produktionsdatenbank komplett entfällt, halten viele Entwickler Amazon SimpleDB für einen idealen Low-Touch-Datenspeicher zum Protokollieren von Informationen zu Bedingungen oder Ereignissen, Statusaktualisierungen, wiederkehrenden Aktivitäten, Workflow-Prozessen oder Geräte- und Anwendungszuständen. Mit Amazon SimpleDB können Sie diese Datenprotokolle auf kosteneffektive Weise speichern, ohne sich darüber Gedanken machen zu müssen. Anschließend können Sie die Datenprotokolle u. a. für folgende Zwecke verwenden:
- Überwachung oder Nachverfolgung
- Messung
- Hochrechnung von Unternehmensanalysen
- Prüfung
- Einhaltung von Archivierungs- oder Regulierungsvorschriften
Hier einige Anwendungsbeispiele:
- Zentrale Speicherung von Serverprotokollen, um benötigten Speicherplatzes auf den einzelnen Servern zu reduzieren
- Protokollierung von Betriebskennzahlen oder Ergebnissen laufender Leistungstests für spätere Analysen
- Prüfung von Zugriffseingaben oder Konfigurationsänderungen bei Anwendungen oder Netzwerkgeräten
- Erfassung und Überwachung der Umgebungsbedingungen (Temperatur, Druckstufen, Feuchtigkeit usw.) an verschiedenen Standorten und Programmierung von Warnmeldungen bei bestimmten Bedingungen
- Protokollierung und Nachverfolgung von Informationen zur Geolokation von Objekten oder des Prozessstatus von Aktivitäten innerhalb eines Workflows
Dank zahlreicher Vorteile ist Amazon SimpleDB ein attraktiver Datenspeicher für Datenprotokolle:
- Zentral, mit Hochverfügbarkeit – Wenn Ihre Datenprotokolle bisher in verschiedenen Geräten/Objekten, Anwendungen oder Prozess-Silos lokal isoliert waren, werden Sie die Vorteile eines zentralen Zugriffs auf die Daten an einem einzigen Ort in der Cloud zu schätzen wissen. Darüber hinaus sorgt Amazon SimpleDB durch eine automatische und georedundante Replikation Ihrer Daten für eine hohe Verfügbarkeit. Das bedeutet, dass Sie mit Amazon SimpleDB – im Gegensatz zu einer zentralisierten Vor-Ort-Lösung – keine einzige Fehlerstelle erzeugen und Ihre Daten bei Bedarf jederzeit abrufbar sind. Sämtliche Daten können über Webservice-Abfragen mit einer Lösung gespeichert werden. Der Zugriff ist mit jedem beliebigen Gerät möglich.
- Kein Verwaltungsaufwand – Die Speicherung der Datenelemente erfolgt über einfache Webservice-Abfragen. Amazon Web Services kümmert sich um den Rest. Die Einstellen und Vergessen-Eigenschaft dieses Service hat den Vorteil, dass Sie keine Zeit für das Datenbankmanagement aufwenden müssen, um Datenprotokolle zu speichern und zu verwalten.
- Kosteneffizient – Die Speicherung und das Abfragen von Datenprotokollen mit Amazon SimpleDB erfolgt zu kostengünstigen Preisen. Dank der leistungsbasierten Zahlung für diejenigen Ressourcen, die Sie tatsächlich verbrauchen, müssen Sie weder eine eigene Kapazitätsplanung durchführen noch sich Gedanken über die Datenbankauslastung machen. Amazon SimpleDB passt die Kapazität einfach an das jeweilige Anforderungsvolumen an, wobei Ihnen nur diejenigen Ressourcen in Rechnung gestellt werden, die Sie tatsächlich verbrauchen.
Entwickler von Online-Spielen für beliebige Plattformen können mit Amazon SimpleDB eine hochverfügbare, skalierbare Datenbanklösung für Benutzer- und Spiele-Daten ohne Administrationsaufwand nutzen.
Gängige Daten für Online-Spiele, die mit Amazon SimpleDB gespeichert, indiziert und abgefragt werden können, sind u. a.:
- Punkte und Ergebnisse der Benutzer
- Benutzereinstellungen
- Informationen zu Spielerelementen oder benutzergenerierten Inhalten
- Status von Spielsitzungen (bei Speicherung oder Unterbrechung)
- Dynamische Spiele-Inhalte (Anwendung einer serviceorientierten Architektur auf das Spiel sowie Speicherung und Präsentation neuer Herausforderungen oder Inhalte für Spiele mit Amazon SimpleDB)
- Indizierte Metadaten für große Objekte, die von Ihrem Spiel verwendet und in Amazon S3 gespeichert werden
Zahlreiche Eigenschaften von Amazon SimpleDB machen es zu einem geeigneten Datenspeicher für Online-Spieledaten:
- Hochverfügbarkeit (automatische, geografisch redundante Replikation und Ausfallsicherung): Amazon SimpleDB erzielt eine Hochverfügbarkeit durch die automatische Erstellung mehrerer Kopien Ihrer Daten. In Fällen, in denen eine Kopie nicht mehr verfügbar ist, wird automatisch eine Ausfallsicherung auf eine verfügbare Kopie durchgeführt. Das bedeutet, dass Ihre Spiele und Benutzer jederzeit zuverlässig und unterbrechungsfrei auf wichtige Daten zugreifen können, ohne dass Sie zuvor erst aufwändige Datenbank-Cluster einrichten müssen.
- Automatische Skalierung: Mit zunehmender Benutzeranzahl und fluktuierender Spieleraktivität passt Amazon SimpleDB die Kapazität für den Datenverkehr und das Anforderungsvolumen einfach an, ohne dass ein Eingreifen von Entwicklerseite erforderlich ist. Sie zahlen dabei nur für die Ressourcen, die Sie auch tatsächlich benötigen.
- Kein Verwaltungsaufwand: Datenbankmanagement war gestern. Bereitstellung der Infrastruktur, Einrichtung der Software, Schema-Erstellung und -Verwaltung, Indexerstellung und die Optimierung der Abfrageleistung erfolgen allesamt automatisch. So können Sie sich ganz auf die Entwicklung spannender Spiele und Funktionen für Ihre Benutzer konzentrieren und die Aufgaben des Datenbankadministrators wieder anderen überlassen.
Viele Entwickler verwenden Amazon SimpleDB in Verbindung mit Amazon Simple Storage Service (Amazon S3). Mit Amazon SimpleDB können Zeiger in Amazon S3-Objekt-Speicherorten gespeichert werden, sowie detaillierte Informationen zu den Objekten (Metadaten). Hierdurch wird für Amazon S3 die umfassende Suchfunktionalität einer Datenbank bereitgestellt. Entwicklern, die große Mengen von Objekten in Amazon S3 speichern, bietet Amazon SimpleDB eine flexible, skalierbare und kostengünstige Möglichkeit, Objekt-Metadaten zu speichern – ohne den sonst bei der Arbeit mit Datenbanken üblichen Verwaltungsaufwand. Hier einige Beispiele für Objekt-Metadaten, die einfach in Amazon SimpleDB gespeichert, indiziert und abgefragt werden können:
- Datentyp oder -format (Bild, Video, Dokument)
- Benutzerzuordnungen oder Zugriffszuweisungen
- Daten, an denen das Objekt erstellt, geändert oder aufgerufen wurde
- Name oder Speicherort verwandter Objekte
- Benutzerbewertungen und -kommentare
- Betreffzeilen- oder Kategorie-Tags
- Geolocation-Tags
Das Speichern von Metadaten wie in den oben aufgeführten Beispielen ist bei der Bereitstellung von Inhalten, für Medienanwendungen, Sicherungs- und Archivierungsanwendungen und viele weitere Anwendungstypen von großer Bedeutung. Amazon SimpleDB ist der ideale Speicherort für Metadaten und bietet folgende Vorteile:
- Flexibles Design ohne Schema: Fügen Sie zusätzliche Metadatenattribute einfach hinzu, ohne ein festes Schema zu stören. Wenn Sie mit der Nachverfolgung von Benutzerbewertungen für Video-Objekte beginnen möchten, sind hierzu keine zeitraubenden Änderungen an der Datenbank erforderlich.
- Attribute mit mehreren Werten: Ein Metadatenattribut kann mehrere Werte haben. So können beispielsweise Fotos mit Kategorien für mehrere Personen und Musikdateien mit Kategorien für mehrere Genres versehen werden.
- Kein Verwaltungsaufwand: Mit Amazon SimpleDB gehören nicht nur die mühevolle Infrastruktur-Bereitstellung, Software-Installation und die für Datenbanken notwendige Wartung der Vergangenheit an – die Lösung indiziert auch automatisch Ihre Daten, steigert die Anforderungsleistung und erstellt georedundante Kopien Ihrer Daten.
Amazon SimpleDB bietet darüber hinaus eine unterbrechungsarme Skalierung, bei der automatisch auf ansteigende Anforderungsvolumen reagiert wird, und Ihnen werden lediglich die tatsächlich in Anspruch genommenen Ressourcen in Rechnung gestellt.
- In unserem Bereich Beispiel-Code und Bibliotheken finden Sie eine technische Erläuterung der S3-Metadatenindizierung mit diversen Codebeispielen.