Amazon Web Services – AWS-Speicheroptionen Dezember 2010 Speicheroptionen in der AWS-Cloud Joseph Baron, Amazon Web Services Robert Schneider, Think88 Dezember 2010 Amazon Web Services – AWS-Speicheroptionen Dezember 2010 Einführung Amazon Web Services (AWS) ist eine flexible und kostengünstige benutzerfreundliche Cloud Computing-Plattform, die eine Vielzahl Cloud-basierter Optionen für die Datenspeicherung umfasst. Für Architekten und Entwickler stehen zahlreiche verschiedene Alternativen zur Verfügung. Im vorliegenden Whitepaper werden die Grundlagen zu den wichtigsten Datenspeicheroptionen erläutert, die in der AWS-Cloud Computing-Plattform verfügbar sind. Sie erhalten eine Übersicht über die einzelnen Speicheroptionen. Außerdem werden optimale Nutzungsszenarien beschrieben und andere wichtige Cloud-spezifische Eigenschaften untersucht, z. B. Elastizität und Skalierbarkeit. Insbesondere wird auf die Zuverlässigkeit der einzelnen Speicheroptionen eingegangen. Abschließend werden die behandelten Speicheroptionen in einer tabellarischen Kurzübersicht miteinander verglichen. Im Abschnitt "Referenzen und weiterführende Literatur" finden Sie zusätzliche Ressourcen. In einem separaten Begleitpapier stellen wir Ihnen schließlich verschiedene Anwendungsfälle für Speicherlösungen vor, die verdeutlichen, wie mehrere AWS-Cloud-Speicheroptionen gemeinsam verwendet werden können. Sie können diese Anwendungsfälle als Leitfaden beim Entwurf Ihrer eigenen Speicherarchitektur verwenden. Gegenüberstellung: traditionelle oder Cloud-basierte Speicheralternativen Architekten traditioneller, lokaler IT-Infrastruktur und Anwendungen verfügen über mehrere potenzielle Möglichkeiten für die Datenspeicherung, beispielsweise: Arbeitsspeicher – In-Memory-Speicher, z. B. Datei-Caches, Objekt-Caches, hauptspeicherresidente Datenbanken und RAM-Disks, bieten extrem schnellen Zugriff auf Daten. Meldungswarteschlange – Temporärer, zuverlässiger Speicher für Daten, die asynchron zwischen Computersystemen oder Anwendungskomponenten hin- und hergesendet werden. Storage Area Network (SAN) – Block-Geräte (LUNs virtueller Festplatten) auf dedizierten SANs bieten häufig die höchste Festplattenleistung und Zuverlässigkeit für geschäftskritische Daten und Datenbankspeicher, gehören aber sicherlich auch zu den teuersten Systemen. Direct Attached Storage (DAS) – In jeden einzelnen Server eingebaute lokale Festplattenlaufwerke oder Arrays bieten höhere Leistung als ein SAN, aber geringere Zuverlässigkeit für temporäre und persistente Dateien, Datenbankspeicher und Betriebssystem-Boot-Speicher als ein SAN. Network Attached Storage (NAS) – Ein NAS-Speicher bietet eine Oberfläche für die Speicherung auf Dateiebene, die über mehrere Systeme hinweg gemeinsam genutzt werden kann. NAS ist in der Regel langsamer als SAN oder DAS. Datenbanken – Die Verwaltung und der Zugriff auf strukturierte Daten erfolgt üblicherweise mithilfe relationaler Datenbanken wie MySQL, PostgreSQL, Oracle, Microsoft SQL Server und DB2 oder nicht relationaler DatenbankRepositorys. Die Datenbankspeicher-Datenträger befinden sich üblicherweise auf SAN- oder DAS-Geräten. Offline – Zu Backup- und Archivierungszwecken gespeicherte Daten werden typischerweise auf andere Medien wie beispielsweise Bänder, CDs oder DVDs kopiert, die meist an entfernten sicheren Standorten für die Notfallwiederherstellung gelagert werden. Seite 2 von 24 Amazon Web Services – AWS-Speicheroptionen Dezember 2010 Alle diese traditionellen Speicheroptionen unterscheiden sich in Leistung, Zuverlässigkeit und Kosten sowie in ihren Oberflächen. Architekten berücksichtigen all diese Faktoren bei der Auswahl der geeigneten Speicherlösung für die jeweilige Aufgabe. In den meisten IT-Infrastruktur- und Anwendungsarchitekturen werden im Übrigen mehrere Speichertechnologien kombiniert, wobei jede einzelne Technologie speziell auf bestimmte Anforderungen und Teilaspekte der Datenspeicherung hin ausgewählt wurde. Diese Kombinationen bilden eine Hierarchie von Datenspeicherungsebenen. Wie Sie im Verlauf dieses Whitepapers erfahren werden, stellt AWS mehrere Cloud-basierte Speicheroptionen bereit. Jede Option verfügt über eine individuelle Kombination aus Leistung, Zuverlässigkeit, Kosten und Oberfläche, und wird durch zusätzliche Faktoren wie Elastizität, Verfügbarkeit und Skalierbarkeit ergänzt. Diese zusätzliche Faktoren sind wichtig für Web-orientierte, Cloud-basierte Lösungen. Wie bei traditionellen lokalen Anwendungen können Sie aus mehreren Cloud-Speicheroptionen zusammen eine umfassende Datenspeicherhierarchie erstellen. In diesem Whitepaper werden die folgenden Speicheroptionen in der AWS-Cloud behandelt: Amazon EC2 Elastic Block Store (EBS)-Datenträger Lokale (flüchtige) Amazon EC2-Instance-Speicherdatenträger Amazon Simple Storage Service (Amazon S3) Amazon Simple Queue Service (SQS) Amazon SimpleDB Relationale Datenbanken auf Amazon EC2 Amazon Relational Database Service (RDS) Lassen Sie uns jede dieser AWS-Speicheroptionen genauer betrachten. Zu jeder Option erhalten Sie die folgenden Informationen: Name und Beschreibung Ideales Nutzungsszenario Leistung Zuverlässigkeit und Verfügbarkeit Kosten Elastizität und Skalierbarkeit Oberflächen Nutzungsszenarios, in denen sich andere Speicheroptionen besser eignen Weitere Kategorien für den Vergleich der verschiedenen AWS-Speicheroptionen finden Sie in der Schnellreferenz zu AWS-Speicheroptionen auf Seite 36. Seite 3 von 24 Amazon Web Services – AWS-Speicheroptionen Dezember 2010 Amazon Elastic Block Store (EBS)-Datenträger Amazon Elastic Block Store (EBS)-Datenträger bieten zuverlässigen Speicher auf Blockebene zur Verwendung mit Amazon EC2-Instances (virtuellen Maschinen). Amazon EBS-Datenträger sind über ein Netzwerk verbundene Speicher außerhalb der Instance, die unabhängig von der Betriebsdauer einer einzelnen Amazon EC2-Instance existieren. Nachdem ein EBS-Datenträger einer Amazon EC2-Instance zugewiesen wurde, können Sie damit wie mit einem physischen Festplattenlaufwerk frei interagieren, typischerweise, indem Sie den EBS-Datenträger mit einem Dateisystem ihrer Wahl formatieren. Sie können einen EBS-Datenträger zum Booten einer Amazon EC2-Instance (nur EBS-AMIs) verwenden und mehrere EBS-Datenträger mit einer einzigen Amazon EC2-Instance verbinden. Beachten Sie jedoch, dass jeder einzelne EBS-Datenträger zu jedem Zeitpunkt immer nur mit einer Amazon EC2-Instance verbunden sein kann. Ein EBS-Datenträger kann nicht für andere Benutzer freigegeben werden, es sei denn, Sie erstellen einen EBS-Snapshot (weitere Informationen hierzu im folgenden Abschnitt "Zuverlässigkeit und Verfügbarkeit"). Größen von EBSDatenträgern liegen zwischen 1 GB und 1 TB, die Zuweisung erfolgt in 1-GB-Schritten. Ideales Nutzungsszenario Amazon EBS ist für Daten bestimmt, die sich relativ häufig ändern und eine langfristige Zuverlässigkeit erfordern. EBS bietet persistente Speicherung im "Virtual Block"-Modus für virtuelle Amazon EC2-Server, daher können Sie EBS genau wie eine Festplatte auf einem physischen Server einsetzen. Amazon EBS ist besonders gut als primärer Speicher für Dateisysteme, Datenbanken oder Anwendungen geeignet, die granulare Updates und Zugriff auf rohen, unformatierten Speicher auf Blockebene erfordern. Leistung Grundsätzlich können Sie davon ausgehen, dass die Leistung, die mittlere Zeitspanne bis zum Ausfall (MTTF) und die Zuverlässigkeit eines einzelnen EBS-Datenträgers vergleichbar ist mit den Werten eines USB-Laufwerks mit externer Stromversorgung. Beachten Sie, dass EBS-Datenträger zwar wie lokale Festplattenlaufwerke angezeigt werden, dass sie aber tatsächlich über ein Netzwerk mit einer Amazon EC2-Instance verbunden sind. Daher können die von der Instance ausgeführten sonstigen Netzwerk-E/A wie auch die Gesamtauslastung des gemeinsamen Netzwerks die Leistung des einzelnen EBS-Datenträgers beeinträchtigen. Obwohl jede Anwendung (und deren jeweilige Leistung) ganz individuell ausfällt, können Sie viele traditionelle Techniken zur Optimierung des Datenträgerdurchsatzes auch für EBS-Datenträgern entwickeln und bereitstellen. Die Kombination von Amazon EC2 und EBS ermöglicht Ihnen, viele der für lokale Server und Speichersysteme vorhandenen Leistungsoptimierungstechniken zu verwenden. Sie können z. B. verschiedene Datenträger erstellen und diese anschließend alle einer einzigen Amazon EC2-Instance zuweisen. Nach dem Verbinden mehrerer EBS-Datenträger können Sie die E/A-Gesamtlast der Anwendung partitionieren, indem Sie einen Datenträger für Protokolldaten, einen Datenträger für die Datenbank und wieder einen anderen Datenträger für Dateidaten zuweisen. Alternativ könnten Sie Ihre Daten mit einem Software-RAID 0-Gerätetreiber auf mehrere EBS-Datenträger verteilen und so verfügbare IOPS sowie den Gesamtdurchsatz und die Gesamtgröße des Datenträgers zusammenfassen. Seite 4 von 24 Amazon Web Services – AWS-Speicheroptionen Dezember 2010 Zuverlässigkeit und Verfügbarkeit Jeder Amazon EBS-Datenträger wird automatisch innerhalb derselben Availability Zone repliziert, um einen Datenverlust aufgrund eines Ausfalls einzelner Hardwarekomponenten zu verhindern. Mithilfe von Amazon EBS können außerdem für einen gewünschten Zeitpunkt Snapshots von Datenträgern erstellt werden, die in Amazon S3 gespeichert werden (siehe unten). Diese Snapshots können als Startpunkt für neue Amazon-EBS-Datenträger und zum langfristigen und zuverlässigen Schutz Ihrer Daten verwendet werden. Die Zuverlässigkeit eines EBS-Datenträgers hängt sowohl von dessen Größe als auch von der Menge der Daten ab, die sich seit dem letzten Snapshot geändert haben. EBS-Snapshots sind inkrementelle Point-in-Time-Backups, die nur die Datenblocks enthalten, die sich seit dem letzten Snapshot geändert haben. Bei EBS-Datenträgern, auf denen 20 GB oder weniger seit dem letzen Snapshot geänderte Daten verarbeitet werden, ist mit einer jährlichen Ausfallrate (AFR) von 0,1 % bis 0,5 % zu rechnen. Um Zuverlässigkeit und Verfügbarkeit der auf EBS-Datenträgern gespeicherten Daten zu maximieren, sollten Benutzer häufig Snapshots ihrer EBS-Datenträger erstellen. Für den Fall, dass Ihr Amazon EBSDatenträger ausfällt, bleiben sämtliche Snapshots des Datenträgers intakt und ermöglichen die Wiederherstellung des Datenträgers auf den Zeitpunkt des letzten Snapshots. Amazon EBS-Datenträger sind auf hohe Verfügbarkeit ausgerichtet. Da EBS-Datenträger jedoch in einer bestimmten Availability Zone erstellt werden, sind sie nicht verfügbar, wenn die Availability Zone selbst ausfällt. Beachten Sie, dass ein einzelner EBS-Datenträger zwar auf eine bestimmte Availability Zone beschränkt ist, dass ein EBS-Snapshot eines Datenträgers aber über alle Availability Zones innerhalb einer Region hinweg verfügbar ist und Sie einen EBSSnapshot zum Erstellen eines oder mehrerer neuer EBS-Datenträger in jeder beliebigen Availability Zone verwenden können. EBS-Snapshots können auch für andere Benutzerkonten freigegeben werden. Auf diese Weise erhalten Sie einen benutzerfreundlichen Backup- und Freigabemechanismus unter Verwendung von "Datenträgerklonen" und "Datenträgerabbildern". Um Zuverlässigkeit und Verfügbarkeit ihrer EBS-Daten zu maximieren, sollten Benutzer häufig Snapshots ihrer EBS-Datenträger erstellen. Kosten Wie bei allen Amazon Web Services zahlen Sie bei Amazon Elastic Block Store nur für das, was Sie tatsächlich nutzen, ohne Mindestgebühren oder langfristige Vertragsbindung. Die Preise für Amazon EBS werden pro GB/Monat bereitgestelltem Speicher und pro 1 Million E/A-Anfragen berechnet. Die Speicherung auf dem Datenträger wird Ihnen auf Grundlage der Datenmenge von der Zuweisung bis zur Freigabe in Rechnung gestellt. Die Preise für Amazon EBS-Snapshots werden anhand der gespeicherten Datenmenge pro GB/Monat sowie je 1.000 PUT-Anfragen und je 10.000 GET-Anfragen (beim Speichern bzw. Laden eines Snapshots) berechnet. Bei EBS-Snapshots wird nur der tatsächlich verwendete (belegte) Speicher in Rechnung gestellt. Beachten Sie, dass EBS-Snapshots inkrementell sind und komprimiert werden, sodass der von einem Snapshot benötigte Speicher in der Regel wesentlich geringer als der auf dem EBS-Datenträger belegte Speicher ist. Alle Preisinformationen finden Sie unter http://aws.amazon.com/ec2/pricing/. Beachten Sie, dass für die Übertragung von Daten zwischen den verschiedenen AWS-Speicherangeboten (d. h., Amazon EC2-Instance mit EBS, Amazon S3, Amazon RDS und so weiter) keine Kosten anfallen, solange sie innerhalb derselben AWS-Region erfolgt. Seite 5 von 24 Amazon Web Services – AWS-Speicheroptionen Dezember 2010 Elastizität und Skalierbarkeit AWS macht es Ihnen leicht, den für Ihre Amazon EC2-Instance verfügbaren Speicherplatz zu erweitern. Sie brauchen nur einen neuen EBS-Datenträger zu erstellen und der Instance zuzuweisen und können ihn sofort zusammen mit den vorhandenen Datenträgern nutzen. Wenn Sie keine neuen Datenträger erstellen und verwalten möchten, können Sie einzelne Datenträger auch folgendermaßen vergrößern: 1. Legen Sie die Anwendung oder das Dateisystem still. 2. Erstellen Sie einen Snapshot der Daten Ihres EBS-Datenträgers in Amazon S3 (unter Verwendung von "Create Snapshot from Volume"). 3. Erstellen Sie einen neuen EBS-Datenträger aus dem Snapshot, geben Sie dabei aber eine größere Kapazität als die des ursprüngliche Datenträgers an. 4. Weisen Sie Ihrer Amazon EC2-Instance den neuen, größeren Datenträger zu. 5. Trennen und löschen Sie den ursprünglichen EBS-Datenträger. Oberflächen Zum Erstellen, Löschen, Beschreiben, Zuweisen und Trennen von EBS-Datenträgern für Ihre Amazon EC2-Instances stellt Amazon Steuerungs-APIs in den Formaten SOAP und REST bereit. Mit den APIs können Sie Snapshots und deren zugehörige Attribute von EBS zu Amazon S3 erstellen, löschen und beschreiben. Wenn Sie lieber mit grafischen Tools arbeiten, bieten die AWS Management Console und die ElasticFox Firefox-Erweiterung alle Funktionen der API in einer benutzerfreundlichen Browseroberfläche. Unabhängig davon, wie Sie Ihren EBS-Datenträger erstellen, sollten Sie beachten, dass die Speicherkapazitäten immer zum Zeitpunkt der Erstellung des Datenträgers zugewiesen werden, und dass Ihnen dieser Speicher in Rechnung gestellt wird, auch wenn Sie ihn nicht nutzen. EBS stellt eine Block-Gerät-Oberfläche zur Amazon EC2-Instance dar. Das bedeutet, für eine Amazon EC2-Instance sieht ein EBS-Datenträger genau wie ein lokales Festplattenlaufwerk aus. Um Daten auf EBS-Datenträger zu schreiben und zu lesen, verwenden Sie daher die systemeigenen Dateisystem-Oberflächen Ihres Betriebssystems. Nutzungsszenarios, in denen Amazon EBS keine optimale Lösung darstellt Wie bereits weiter oben beschrieben, eignet sich EBS ideal für Informationen, die über die Lebensdauer einer einzelnen Amazon EC2-Instance hinaus erhalten bleiben müssen. In bestimmten Situationen können andere AWSSpeicheroptionen jedoch besser geeignet sein: Temporärer Speicher – Für Daten, die nach dem Beenden der Amazon EC2-Instance nicht verfügbar bleiben müssen (temporäre Dateien, Arbeitsplatte, Puffer und so weiter), können Sie den mit den meisten Amazon EC2Instances automatisch bereitgestellten Speicherdatenträger nutzen. Die Kosten für diese flüchtigen Datenträger sind in den Standardgebühren der Amazon EC2-Instance enthalten. Weitere Informationen finden Sie im folgenden Abschnitt. Hoch zuverlässiger Speicher – Wenn Sie Speicher mit extrem hoher Zuverlässigkeit benötigen, verwenden Sie Amazon S3. Die Amazon S3-Standardspeicherung wurde für eine Objektzuverlässigkeit von 99,999999999 % über ein Jahr ausgelegt. Im Gegensatz dazu sind EBS-Datenträger, auf denen weniger als 20 GB seit dem letzen Seite 6 von 24 Amazon Web Services – AWS-Speicheroptionen Dezember 2010 Snapshot geänderte Daten verarbeitet werden, für eine Zuverlässigkeit von 99,5 % bis 99,9 % über ein Jahr ausgelegt. Bei Datenträgern, auf denen mehr Daten verarbeitet werden, ist mit einer proportional niedrigeren Zuverlässigkeit zu rechnen. Statische Daten oder Web-Inhalte – Wenn Ihre Daten nicht häufig geändert werden, ist Amazon S3 unter Umständen eine kostengünstigere, skalierbare Lösung zum Speichern dieser unveränderlichen Informationen. Zudem erfordern Web-Inhalte, die über EBS bereitgestellt werden, einen Web-Server, auf dem Amazon EC2 ausgeführt wird, während Sie über Amazon S3 Web-Inhalte direkt übertragen können. Schlüssel/Wert-Paar-Informationen – Wie im Abschnitt "Amazon SimpleDB" auf Seite 15 näher erläutert, bietet Amazon SimpleDB eine skalierbare, elastische Möglichkeit zum Speichern von "schemalosen" Daten. Wenn Sie eine relationale Technologie (einschließlich zugehöriger EBS-Datenträger) zum Verwalten von Schlüssel/WertInformationen verwenden möchten, lohnt es sich, SimpleDB als Alternative in Betracht zu ziehen. Lokale Instance-Speicherdatenträger von Amazon Elastic Compute Cloud (EC2) Lokale Instance-Speicherdatenträger von Amazon EC2 (auch als flüchtige Laufwerke bezeichnet) bieten temporäre Speicherung auf Block-Ebene für Amazon EC2-Instances. Wenn Sie eine Amazon EC2-Instance aus einem Amazon-AMI erstellen, wird in den meisten Fällen gleichzeitig ein vorkonfigurierter Block bereits verbundenen Festplattenspeichers bereitgestellt.1 Im Gegensatz zu EBS-Datenträgern bleiben Daten auf Instance-Speicherdatenträgern nur über die Lebensdauer der zugehörigen Amazon EC2-Instance erhalten. Die Menge an Festplattenspeicher kann zwischen 160 GB und 1,7 TB liegen und variiert je nach Amazon EC2-Instance-Typ. Größere Amazon EC2-Instances verfügen über mehrere und größere Instance-Speicherdatenträger. Aber selbst wenn diese Mengen sehr großzügig erscheinen und häufig recht nützlich sind, handelt es sich doch um temporären Speicher, der am besten als Arbeitsdatenträger oder RAM genutzt werden sollte. Ideales Nutzungsszenario Lokale Instance-Speicherdatenträger eignen sich ideal für die temporäre Speicherung von Informationen, die sich ständig ändern, z. B. Puffer, Caches, Arbeitsdaten und andere temporäre Inhalte, oder für Daten, die über eine Vielzahl von Instances repliziert werden, z. B. ein Pool von Web-Servern mit Lastenausgleich. Der Amazon EC2-Instance-Speicher wurde zu diesem Zweck entwickelt. Er besteht aus dem Boot-Gerät der virtuellen Maschine (nur Instance-Speicher-AMIs) plus einem oder mehreren zusätzlichen, für die Amazon EC2-Instance dedizierten Datenträgern (sowohl EBS-AMIs als auch Instance-Speicher-AMIs). Dieser Speicher kann während seiner Lebensdauer nur von einer einzigen Amazon EC2Instance verwendet werden. Im Gegensatz zu EBS-Datenträgern können Instance-Speicherdatenträger nicht getrennt oder einer anderen Instance zugewiesen werden. Leistung Da die virtuelle Amazon EC2-Instance-Maschine und die lokalen Instance-Speicherdatenträger sich auf demselben physischen Server befinden, erfolgt die Interaktion mit diesem Speicher sehr schnell, insbesondere bei sequentiellem 1 Die meisten Amazon EC2-Instance-Typen stellen lokale Instance-Speicherdatenträger bereit. Mikro-Instances hingegen, z. B. vom Typ "t1.micro", stellen nur EBS-Speicher bereit. Darüber hinaus werden die flüchtigen Instance-Speicherdatenträger von Instances, die Amazon EBS auf dem Root-Gerät verwenden ("von EBS booten") nicht standardmäßig bereitgestellt. Falls gewünscht, können Sie die lokalen Instance-Speicherdatenträger beim Start der Instance durch Angaben einer Block-Gerät-Zuordnung bereitstellen. Weitere Informationen finden Sie im Benutzerhandbuch zu Amazon EC2. Seite 7 von 24 Amazon Web Services – AWS-Speicheroptionen Dezember 2010 Zugriff. Zum Erhöhen der E/A-Vorgänge pro Sekunde (IOPS) oder zum Verbessern des Datenträgerdurchsatzes können mehrere Instance-Speicherdatenträger mittels RAID 0-Software (Datenträger-Striping-Software) gruppiert werden. Zuverlässigkeit und Verfügbarkeit Lokale Amazon EC2-Instance-Speicherdatenträger sind nicht zur Verwendung als hoch zuverlässiger Datenträgerspeicher bestimmt. Die auf lokalen Instance-Speicherdatenträgern gespeicherten Daten existieren nur über die Lebensdauer der Amazon EC2-Instance. Daten auf lokalen Amazon EC2-Instance-Speicherdatenträgern bleiben über geordnete InstanceNeustarts erhalten, gehen aber in Situationen verloren, in denen die Amazon EC2-Instance plötzlich beendet wird oder einen Fehler/Neustart-Zyklus durchläuft. Sie sollten lokale Instance-Speicherdatenträger nicht für Daten verwenden, die über längere Zeit bewahrt werden müssen, beispielsweise für die permanente Datei- oder Datenbankspeicherung. Aber obwohl lokale InstanceSpeicherdatenträger nicht persistent sind, können Sie Ihre Daten dauerhaft speichern, indem Sie sie regelmäßig in EBS oder Amazon S3 kopieren oder sichern. Kosten Die Kosten der Amazon EC2-Instance umfasst alle lokalen (flüchtigen) Instance-Speicherdatenträger. Zwar·wird die Datenspeicherung·auf·lokalen Instance-Speicherdatenträgern nicht berechnet, beachten Sie aber, dass für die von außerhalb einer Amazon EC2-Region zu/von Amazon EC2-Instance-Speicherdatenträgern übertragenen Daten die Datenübertragungsgebühren sowie zusätzliche Kosten für die Verwendung persistenter Speicher, z. B. Amazon S3, EBS-Datenträger und EBS-Snapshots, anfallen. Detaillierte Informationen zu den Amazon EC2-, EBS- und Datenübertragungsgebühren finden Sie im Web unter http://aws.amazon.com/ec2/pricing/. Elastizität und Skalierbarkeit Lokale Instance-Speicherdatenträger verfügen über eine feste Größe für einen bestimmten Amazon EC2-Instance-Typ und sind mit einer bestimmten Instance verknüpft, daher ist dieser Speichertyp relativ wenig elastisch. Sie können jedoch volle Speicherelastizität erreichen, indem Sie eine der anderen geeigneten Speicheroptionen, z. B. Amazon S3 oder Elastic Block Storage (EBS), in Ihre Amazon EC2-Speicherstrategie einbeziehen. Oberflächen Die Amazon EC2-Instance funktioniert mit lokalen Instance-Speicherdatenträgern genau wie mit lokalen Festplattenlaufwerken. Das heißt, Sie können mit den auf dem lokalen Instance-Speicherdatenträger gehosteten Daten mittels der systemeigenen Dateisystemmechanismen, wie Windows NTFS oder Linux XFS, interagieren. Beachten Sie, dass in einigen Fällen ein lokales Instance-Speicherdatenträger-Gerät beim Start mit der Amazon EC2-Instance verbunden wird, vor der Verwendung aber mit einem geeigneten Dateisystem formatiert und bereitgestellt werden muss. Nutzungsszenarios, in denen lokale Amazon EC2-Instance-Speicherdatenträger keine optimale Lösung darstellen Lokale Amazon EC2-Instance-Speicherdatenträger sind schnelle, kostenlose (d. h. im Preis der Amazon EC2-Instance enthaltene) "Arbeitsdatenträger", die am besten für die Speicherung temporärer Daten geeignet sind, die sich einfach regenerieren lassen. In vielen Fällen sind können jedoch andere AWS-Speicheroptionen besser geeignet sein: Seite 8 von 24 Amazon Web Services – AWS-Speicheroptionen Dezember 2010 Persistenter Speicher – Wenn Sie persistenten, virtuellen Datenträgerspeicher benötigen, ähnlich einem physischen Festplattenlaufwerk für Dateien oder andere Daten, die über die Lebensdauer einer einzelnen Amazon EC2-Instance hinaus bestehen bleiben müssen, sind EBS-Datenträger oder Amazon S3 besser geeignet. Datenbankspeicher – In den meisten Fällen ist für Datenbanken ein Speicher erforderlich, der über die Lebensdauer einer einzelnen Amazon EC2-Instance hinaus bestehen bleibt, was EBS-Datenträger zur richtigen Wahl macht. Gemeinsam genutzter Speicher – Instance-Speicherdatenträger, werden für eine einzelne Amazon EC2-Instance dediziert bereitgestellt und können nicht für andere Systeme oder Benutzer freigegeben werden. Wenn Sie einen Speicher benötigen, der von einer Instance getrennt und einer anderen Instance zugewiesen werden kann, oder wenn Sie die Möglichkeit zur einfachen Freigabe von Daten benötigen, sind Amazon S3 oder EBS-Datenträger die bessere Wahl. Snapshots – Wenn Sie die Bequemlichkeit, langfristige Zuverlässigkeit, Verfügbarkeit und Freigabemöglichkeit von Point-in-Time-Platten-Snapshots benötigen, sind EBS-Datenträger zu bevorzugen. Amazon Simple Storage Service (Amazon S3) Amazon S3 ist ein hoch skalierbarer, zuverlässiger und verfügbarer verteilter Objektspeicher, der auf geschäftskritische und primäre Datenspeicherung ausgerichtet ist und über eine benutzerfreundliche Web-Service-Oberfläche verfügt. In traditionellen lokalen Anwendungen würde diese Art von Daten normalerweise in einem SAN oder NAS verwaltet werden. Ein Cloud-basierter Mechanismus wie Amazon S3 ist weit reaktionsschneller, flexibler und geografisch redundant. Amazon S3 bietet eine einfache Web-Service-Oberfläche, über die Sie jederzeit innerhalb von Amazon EC2 und von jedem Ort über das Internet beliebige Datenmengen speichern und abrufen können. Sie können Objekte, die jeweils zwischen 1 Byte und 5 TB an Daten enthalten, schreiben, lesen und löschen. Die Anzahl der Objekte in einem Amazon S3-Bucket ist unbegrenzt. Amazon S3 ist zudem hoch skalierbar, wodurch der gleichzeitige Lese- oder Schreibzugriff auf Amazon S3-Daten von vielen separaten Clients oder Anwendungs-Threads möglich ist. Ideales Nutzungsszenario Eine sehr häufiger Anwendungsbereich für Amazon S3 ist die Speicherung statischer Web-Inhalte. Diese Inhalte können direkt aus Amazon S3 über einen Web-Server bereitgestellt werden, weil jedes Objekt in Amazon S3 über eine eindeutige HTTP URL-Adresse verfügt, oder sie können über ein Content Delivery Network (CDN) wie Amazon CloudFront bereitgestellt werden. Aufgrund seiner Elastizität ist Amazon S3 gut für das Hosting von Web-Inhalten mit extrem hohen Bedarfsschwankungen in der Bandbreite geeignet. Da keine feste Reservierung von Speicherkapazitäten erfolgt, kann Amazon S3 zudem gut für schnell wachsende Websites eingesetzt werden, die datenintensive, benutzergenerierte Inhalte hosten, wie bei Video- und Fotofreigabe. Amazon S3 wird außerdem häufig als Datenspeicher für große Datenverarbeitungsaufgaben wie die Analyse von Finanztransaktionen oder Clickstream-Daten und Medien-Transcodierung eingesetzt. Aufgrund der horizontalen Skalierbarkeit von Amazon S3 können Sie auf Ihre Daten von mehreren Computing-Knoten gleichzeitig zugreifen und sind nicht auf eine einzige Verbindung beschränkt. Schließlich wird Amazon S3 sehr oft als Ursprungsspeicher für geschäftskritische Daten, hoch zuverlässiger SnapshotSpeicher für Amazon EBS-Datenträger, Backup-Speicheranwendungen und großartige Notfallwiederherstellungslösungen zur Gewährleistung des unterbrechungsfreien Betriebs verwendet. Da Amazon S3 Objekte redundant auf mehreren Seite 9 von 24 Amazon Web Services – AWS-Speicheroptionen Dezember 2010 Geräten in mehreren Anlagen speichert, verfügt es über die für diese Szenarios erforderliche hoch zuverlässige Speicherinfrastruktur. Leistung Der Zugriff auf Amazon S3 aus Amazon Elastic Compute Cloud (Amazon EC2) in der selben Region ist schnell. Wenn Sie auf Amazon S3 mittels mehrerer Threads, mehrerer Anwendungen oder mehrerer Clients gleichzeitig zugreifen, liegt der Amazon S3-Gesamtdurchsatz typischerweise bei Größenordnungen, die weit über die Kapazitäten hinaus gehen, die ein einzelner Server erzeugen oder verarbeiten kann. Um den Zugriff auf relevante Daten zu beschleunigen, kombinieren viele Entwickler Amazon S3 mit Amazon SimpleDB. Amazon S3 speichert die eigentlichen Informationen und SimpleDB dient als Repository für die zugehörigen Metadaten (z. B. Objektnamen, Größe, Schlüsselwörter und so weiter). SimpleDB stellt automatische Indizierung bereit, wodurch eine äußerst effiziente Suche von Objektreferenzen über eine Metadatensuche möglich wird. Anhand dieses Ergebnisses kann dann das eigentliche Objekt genau bestimmt und aus Amazon S3 abgerufen werden. Zuverlässigkeit und Verfügbarkeit Indem die Daten automatisch und synchron sowohl über mehrere Geräte als auch mehrere Anlagen innerhalb der ausgewählten geografischen Region gespeichert werden, bietet die Amazon S3-Speicherung das höchste Maß an Datenzuverlässigkeit und -verfügbarkeit auf der AWS-Plattform. Die Fehlerkorrektur ist integriert und es gibt keine einzelnen Fehlerquellen (Single Points of Failure). Amazon S3 wurde so entwickelt, dass ein gleichzeitiger Datenverlust in zwei Anlagen ausgeschlossen ist, wodurch es ideal als primärer Datenspeicher für geschäftskritische Daten geeignet ist. Amazon S3 wurde für eine Objektzuverlässigkeit von 99,999999999 % (11 Neunen) und eine Verfügbarkeit von 99,99 % über ein Jahr ausgelegt. Zusätzlich kann die integrierte Redundanz der Amazon S3-Daten zusätzlich mittels Amazon S3Versioning vor Anwendungsausfällen und unbeabsichtigten Löschungen geschützt werden. Zudem können Sie Amazon S3-Versioning mit MFA Delete aktivieren. Ist diese Option für einen Bucket aktiviert, sind zwei Formen der Authentifizierung erforderlich, um eine Version eines Amazon S3-Objekts zu löschen: gültige AWS-Zugangsdaten und ein sechsstelliger Code (ein einmal verwendbares, zeitlich befristetes Kennwort) eines physisches Token-Geräts. Für nicht kritische Daten, die bei Bedarf leicht wiederherzustellen sind, z. B. transkodierte Medien oder Miniaturbilder, können Sie die RRS-Option (Reduced Redundancy Storage) in Amazon S3 verwenden, die zwar eine geringere Zuverlässigkeit aufweist, dafür aber niedrigere Speicherkosten verursacht. Mit der RRS-Option gespeicherte Objekte weisen geringere Redundanz auf als Objekte, die über die Amazon S3-Standardspeicherung gespeichert werden. In beiden Fällen werden Ihre Daten auf mehreren Geräten an mehreren Standorten gespeichert. RRS wurde auf eine Objektzuverlässigkeit von 99,99 % über ein Jahr ausgelegt. Die Zuverlässigkeit von RRS ist zwar geringer als bei der Amazon S3-Standardspeicherung, RRS ist aber immer noch 400 Mal zuverlässiger als ein übliches Festplattenlaufwerk. Kosten Wie bei allen Amazon Web Services zahlen Sie bei Amazon S3 nur für das, was Sie tatsächlich nutzen, ohne Mindestgebühren oder langfristige Vertragsbindung. Die Kosten für Amazon S3 berechnen sich aus drei Preiskomponenten: Speicher (je GB/Monat), ein- oder ausgehende Datenübertragung (je GB/Monat) und Anfragen (je n Tausend Anfragen pro Monat). Neuen Kunden stellt AWS kostenlose Nutzungskontingente von bis zu 5 GB Amazon S3-Speicher zur Verfügung. Die vollständigen Preisinformationen zu Amazon S3 finden Sie unter http://aws.amazon.com/s3/pricing/. Seite 10 von 24 Amazon Web Services – AWS-Speicheroptionen Dezember 2010 Elastizität und Skalierbarkeit Amazon S3 wurde so konzipiert, dass es automatisch ein sehr hohes Maß an Elastizität und Skalierbarkeit bereitstellt. Im Gegensatz zu einem typischen Dateisystem, bei dem bei denen die Speicherung großer Mengen von Dateien in einem Verzeichnis zu Problemen führt, unterstützt Amazon S3 eine unbegrenzte Anzahl von Dateien in jedem Bucket. Auch kann in einem Amazon S3-Bucket eine unbegrenzte Byte-Menge gespeichert werden, wohingegen auf Festplatten die Datenmenge begrenzt ist, die maximal gespeichert werden kann. Wird diese Datenmenge überschritten, müssen die Daten über mehrere Laufwerke und/oder Server partitioniert werden. Sie können eine beliebige Anzahl von Objekten speichern und Amazon S3 verwaltet die Skalierung und Verteilung redundanter Kopien Ihrer Informationen auf andere Server an anderen Standorten in derselben Region, die alle die Hochleistungsinfrastruktur von Amazon einsetzen. Oberflächen Amazon S3 stellt Web-Service-APIs für SOAP und RESTful bereit. Diese APIs ermöglichen das Speichern von Amazon S3-Objekten (Dateien) in eindeutig benannten Buckets (Ordner der obersten Ebene). Jedes Objekt muss über einen eindeutigen Objektschlüssel (Dateinamen) verfügen, der als Objektkennung in diesem Bucket dient. Amazon S3 ist zwar eher ein Web-basierter Objektspeicher als ein traditionelles Dateisystem, Sie können in Amazon S3 aber problemlos eine Dateisystemhierarchie (Ordner1/Ordner2/Datei) simulieren, indem Sie Objektschlüsselnamen erstellen, die dem vollständigen Pfadnamen jeder Datei entsprechen. Die meisten Entwickler von Anwendungen in Amazon S3 verwenden ein High-Level-Toolkit. AWS und Drittanbieter haben Amazon S3-Oberflächen-Toolkits und -Bibliotheken für verschiedene beliebte Programmiersprachen und Plattformen für die Softwareentwicklung erstellt, z. B.: Java, unter Verwendung von AWS SDK für Java (http://aws.amazon.com/sdkforjava/) und AWS Toolkit für Eclipse (http://aws.amazon.com/eclipse/). C#, unter Verwendung von AWS SDK für .NET (http://aws.amazon.com/sdkfornet/) und Visual Studio-Vorlagen. PHP, unter Verwendung der Basisinstallation von PHP5 oder AWS SDK für PHP (http://aws.amazon.com/sdkforphp/). Perl, unter Verwendung von Digest::SHA1-, Bundle::LWP- und XML::Simple-Modulen, die alle von Comprehensive Perl Archive Network unter http://www.cpan.org heruntergeladen werden können. Amazon S3 ist zwar primär für den Zugriff über APIs entwickelt worden, aber die AWS Management Console und Tools von Drittanbietern bieten auch grafische und Befehlszeilen-Oberflächen für die Interaktion mit Ihren Amazon S3-Buckets und -Objekten. Amazon S3 unterstützt auch das BitTorrent-Protokoll, über das Verbraucher gleichzeitig Informationen von S3 und anderen Anbietern abrufen können. Zum Hoch- oder Herunterladen großer Datenmengen können Sie auch den Service AWS Import/Export verwenden (http://aws.amazon.com/importexport/). AWS Import/Export beschleunigt die Bewegung großer Datenmengen in und aus AWS mit tragbaren Speichergeräten für den Transport. Amazon stellt Ihr Gerät bereit und kopiert die Daten in einen oder aus einem ausgewählten Amazon S3-Bucket. Dieser Ansatz ist häufig schneller und kostengünstiger als die Übertragung riesiger Datenmengen über das Internet. Beachten Sie, dass RRS dieselben Oberflächen wie die Amazon S3-Standardspeicherung verwendet. Die RRS-Option wird für ein Amazon S3-Objekt oder einen Amazon S3-Bucket durch Festlegen der Eigenschaft "Storage Class" während einer Seite 11 von 24 Amazon Web Services – AWS-Speicheroptionen Dezember 2010 PUT-Operation oder durch Auswählen der Einstellung "Use Reduced Redundancy Storage" in der AWS Management Console definiert. Nutzungsszenarios, in denen Amazon S3 keine optimale Lösung darstellt Amazon S3 ist optimal für die Speicherung zahlreicher relativ statischer Informationsklassen geeignet, die von den Zuverlässigkeits-, Verfügbarkeits- und Elastizitätsfunktionen profitieren. In vielen Situationen ist Amazon S3 aber nicht die optimale Lösung: Dateisystem – Amazon S3 verwendet einen flachen Namespace und ist nicht als eigenständiges, POSIXkompatibles Dateisystem gedacht. Durch Verwendung von Trennzeichen – üblicherweise entweder der Schrägstrich (/) oder der Backslash (\) – können Sie jedoch Ihre Schlüssel verwenden, um die hierarchische Ordnerstruktur eines Dateisystems in einem bestimmten Bucket nachzuahmen. Strukturierte Daten mit Abfrage – Amazon S3 bietet keine Abfragefunktionen: Zum Abrufen bestimmter Objekte müssen Sie den Bucket-Namen und den Schlüssel bereits kennen. Sie können daher nicht Amazon S3 selbst als Datenbank verwenden. Ein häufiges Anwendungsmuster besteht darin, ein Objekt in Amazon S3 zu speichern und dann mit Amazon SimpleDB die Metadaten des Objekts zu verwalten. Sie können auch andere Datenbanktechnologien wie Amazon RDS oder eine auf einer Amazon EC2-Instance ausgeführte Datenbank verwenden. Anschließend durchsuchen Sie die Datenbank nach dem Bucket-Namen und -Schlüssel des Objekts, und rufen dann das Objekts selbst aus dem Amazon S3-Bucket ab. Sich schnell ändernde Daten – Daten, die sehr häufig aktualisiert werden müssen, sollten möglicherweise vorzugsweise in einer Speicherlösung mit niedrigeren Lese-/Schreiblatenzen gespeichert werden, z. B. in EBS oder einer Datenbank. Amazon Simple Queue Service Amazon Simple Queue Service (Amazon SQS) ist ein zuverlässiger, hoch skalierbarer gehosteter Dienst für NachrichtenWarteschlangen zur temporären Speicherung und Bereitstellung kurzer (bis zu 64 KB) textbasierter Datennachrichten. Eine Amazon SQS-Warteschlange ist ein temporäres Daten-Repository für Nachrichten, die auf die Verarbeitung warten (typischerweise Nachrichten, die von einer Anwendungskomponente generiert und von einer anderen verarbeitet werden). Amazon SQS-Nachrichten können von Servern oder verteilten Anwendungskomponenten in der Amazon EC2-Umgebung oder an beliebiger anderer Stelle im Internet gesendet und empfangen werden. Amazon SQS unterstützt eine unbegrenzte Anzahl von Warteschlangen sowie die unsortierte, mindestens einmal erfolgende Auslieferung von Nachrichten. Zwar werden Amazon SQS und andere Dienste für Nachrichten-Warteschlangen normalerweise als asynchrone Kommunikationsprotokolle betrachtet, aber Amazon SQS kann auch zur temporären aber zuverlässigen Datenspeicherung für viele unterschiedlicher Anwendungen verwendet werden. Die Verwendung von Amazon SQS als temporärer Speicher kann die Verwendung anderer Speichermechanismen, z. B. die temporäre Speicherung von Daten auf Datenträgern, minimieren. Ideales Nutzungsszenario Amazon SQS ist ideal geeignet für Szenarios, in denen mehrere Anwendungskomponenten ihre Arbeit in einer lose gekoppelten Weise kommunizieren und koordinieren müssen. Dies geschieht in Produzent/Verbraucher-Szenarios, in denen einige Komponenten möglicherweise schneller oder langsamer arbeiten als andere oder in denen die Anzahl der interagierenden Komponenten je nach Zeit oder Last variiert. Amazon SQS kann als "Software-Verbinder" fungieren, Seite 12 von 24 Amazon Web Services – AWS-Speicheroptionen Dezember 2010 der Komponenten die zuverlässige Kommunikation ermöglicht, ohne dass dazu eine feste Kupplung oder ein äußerst synchroner Betrieb bzw. eine feste Anzahl von Komponenten erforderlich ist. Eine klassische Verwendung von Amazon SQS ist die Koordination einer mehrstufigen Verarbeitungs-Pipeline, bei der jede Nachricht einer zu verarbeitenden Task zugeordnet ist. Jede Aufgabe wird durch eine Amazon SQS-Nachricht beschrieben, die die zu erledigende Aufgabe sowie einen Pointer auf die Aufgabendaten in Amazon S3 enthält. Beispiel: Angenommen, Sie möchten eine Reihe von Bilddateien kodieren. In einer SNS-Worker-Warteschlange erstellen Sie eine SNS-Nachricht für jede Datei, indem Sie den Befehl (jpeg-encode) und den Speicherort der Datei in Amazon S3 angeben. Ein Pool von Amazon EC2-Instances, auf denen die erforderlich Bildverarbeitungssoftware ausgeführt wird, übernimmt folgende Aktionen: 1. Die Aufgabennachrichten asynchron aus der Warteschlange übertragen 2. Die benannte Datei abrufen 3. Die Konvertierung verarbeiten 4. Das Bild zurück in Amazon S3 schreiben 5. Eine "task complete"-Nachricht in eine andere Warteschlange schreiben 6. Die ursprüngliche Aufgabennachricht löschen 7. Nach weiteren Nachrichten in der Worker-Warteschlange suchen Durch Verwendung der Amazon SQS-Warteschlange lassen sich die Worker-Instances wie auch die Verarbeitungsleistung jeder einzelnen Worker-Instance nach oben oder nach unten skalieren und so an die Gesamtarbeitslast anpassen, ohne Änderungen an der Anwendung vorzunehmen. Leistung Amazon SQS ist ein verteiltes Warteschlangensystem, das auf horizontale Skalierbarkeit und nicht auf Versand- oder Sendegeschwindigkeiten einzelner Threads optimiert ist. Ein einzelner Client kann Amazon SQS-Nachrichten mit einer Rate von etwa 5 bis 50 Nachrichten pro Sekunde senden oder empfangen. Höhere Empfangsleistung wird erreicht, indem in einem einzigen Aufruf mehrere Nachrichten (bis zu 10) angefordert werden. Es kann einige Sekunden dauern, bevor eine in eine Warteschlange geschriebene Nachricht für den Empfang verfügbar ist. Seite 13 von 24 Amazon Web Services – AWS-Speicheroptionen Dezember 2010 Zuverlässigkeit und Verfügbarkeit Standardmäßig sind Nachrichten in Amazon SQS hoch zuverlässig aber temporär. Damit keine Mitteilungen verloren gehen bzw. nicht mehr verfügbar sind, werden alle Mitteilungen redundant auf mehreren Servern und in mehreren Rechenzentren gespeichert. Der Aufbewahrungszeitraum für Nachrichten ist auf Warteschlangenbasis konfigurierbar, zwischen mindestens einer Stunde und höchstens 14 Tagen. Nachrichten verbleiben solange in einer Warteschlange, bis sie explizit bzw. nach Ablauf des Aufbewahrungszeitraums automatisch gelöscht werden. Kosten Wie bei allen Amazon Web Services zahlen Sie bei Amazon SQS nur für das, was Sie tatsächlich nutzen, ohne Mindestgebühren oder langfristige Vertragsbindung. Für den Einstieg und zur Unterstützung einfacher Anwendungen bietet Amazon SQS ein kostenloses Nutzungskontingent für den Service von 100.000 Anfragen pro Monat. Über dieses kostenlose Nutzungskontingent hinaus basieren die Preise für Amazon SQS auf der Anzahl der Anfragen (abgerechnet pro 10.000 Anfragen) und der übertragenen eingehenden und ausgehenden Datenmenge (abgerechnet pro GB/Monat). Die vollständigen Preisinformationen zu Amazon SQS finden Sie unter http://aws.amazon.com/sqs/pricing/. Elastizität und Skalierbarkeit Amazon SQS ist sowohl hoch elastisch als auch extrem skalierbar. Amazon SQS ist so ausgelegt, dass eine unbegrenzte Anzahl von Computern jederzeit eine unbegrenzte Anzahl von Mitteilungen lesen und schreiben kann. Außerdem unterstützt der Service eine unbegrenzte Anzahl von Warteschlangen und eine unbegrenzte Anzahl von Nachrichten pro Warteschlange für jeden Benutzer. Oberflächen Sie können über SOAP- und Query (HTTP)-Oberflächen auf Amazon SQS zugreifen. Fünf APIs erleichtern Entwicklern den Einstieg in SQS: CreateQueue, SendMessage, ReceiveMessage, ChangeMessageVisibility und DeleteMessage. Zusätzliche APIs stellen fortgeschrittene Funktionen bereit. In allen Fällen können die SOAP- und Abfrage-APIs mit Java, C#, Perl und PHP verwendet werden. Nutzungsszenarios, in denen Amazon SQS keine optimale Lösung darstellt Binäre oder umfangreiche Daten – Amazon SQS-Nachrichten müssen im Textformat vorliegen und dürfen maximal 64 KB umfassen. Wenn die Daten, die Sie in einer Warteschlange speichern möchten, diese Länge überschreiten oder im binären Format vorliegen, sollten Sie die umfangreichen oder binären Daten selbst in Amazon S3 oder RDS speichern und in Amazon SQS lediglich Pointer auf die Daten verwalten. Langfristige Speicherung – Wenn Nachrichtendaten über einen längeren Zeitraum als 14 Tage aufbewahrt werden müssen, eignen sich Amazon S3 oder andere Speichermechanismen besser. Seite 14 von 24 Amazon Web Services – AWS-Speicheroptionen Dezember 2010 Amazon SimpleDB Amazon SimpleDB stellt einen neuen Ansatz für die Speicherung und Verwaltung strukturierter Daten in der Cloud dar, der sich von den traditionellen Techniken der Bereitstellung relationaler Datenbankserver unterscheidet. SimpleDB ist ein hoch verfügbarer, skalierbarer und flexibler nicht relationaler Datenspeicher, der viele der Aufgaben der Datenbankadministration und zugehörigen Systemverwaltung auslagert. Mit Amazon SimpleDB verfügen Sie über ein "schemaloses" Datenmodell, in dem Sie Datenelemente speichern können, die aus einer flexiblen Anzahl von Name/Wert-Paaren bestehen. Ideales Nutzungsszenario Diese Speicheralternative ist gut für Situationen geeignet, in denen Sie strukturierte, granulare Daten mit hoher Verfügbarkeit und Zuverlässigkeit persistent speichern und abfragen (primär leseorientierte Interaktionen), aber gleichzeitig den Verwaltungsaufwand für Datenbanken umgehen möchten. Viele Unternehmen verwenden SimpleDB als Teil einer größeren Cloud-basierten Speicherarchitektur. Ein häufiger Anwendungsbereich ist der Einsatz von SimpleDB zum Verwalten von Metadaten über Informationen, die mittels anderer AWS-Services gespeichert werden. Beispiel: Angenommen, Sie erstellen eine Cloud-basierte Lösung zum Speichern von Millionen von Bildern, die jeweils mehrere MB groß sind. In diesem Fall können Sie die eigentlichen Bilder mit Amazon Elastic Block Storage (EBS) oder Amazon Simple Storage Service (Amazon S3) speichern und SimpleDB als Repository für die Details über die einzelnen Bilder verwenden. Sie können anschließend Abfragen nach einem bestimmten Bild an SimpleDB senden, und die gefundenen Informationen zum Abrufen der Ergebnisse aus den anderen AmazonSpeicherlösungen verwenden. Leistung Dank der bewährten Hochgeschwindigkeitsinfrastruktur von Amazon schaffen Sie mit dem SimpleDB-Ansatz eine schnelle, hoch verfügbare Datenbank, die gleichzeitig äußerst skalierbar ist. Um den höchsten Durchsatz und die geringsten Latenzen zu gewährleisten führt Amazon SimpleDB standardmäßig "Eventually Consistent"-Lesevorgänge aus. Für Anwendungen, bei denen der zuletzt geschriebene Eintrag abrufen werden muss, kann auch ein konsistenter Lesevorgang verwendet werden. Zuverlässigkeit und Verfügbarkeit SimpleDB bietet durch vollautomatische, georedundante Replikation eine sehr hohe Datenzuverlässigkeit. Mehrere Replikate jedes SimpleDB-Datenelements werden an unterschiedlichen Standorten in der ausgewählten geographischen Region gespeichert. Kosten Wie bei allen Amazon Web Services zahlen Sie bei Amazon SimpleDB nur für das, was Sie tatsächlich nutzen, ohne Vorabgebühren oder langfristige Vertragsbindung. Die Kosten für SimpleDB umfassen die Speicherung strukturierter Daten (pro GB/Monat), die Datenübertragung (pro GB/Monat) sowie die Maschinenstunden (pro Monat) in Verbindung mit PUT- und GET-Operationen. Das erste 1 GB strukturierter Datenspeicher im Monat und die ersten 25 Maschinenstunden im Monat (etwa 2 Mio. GET- oder SELECT-API-Anfragen) sind kostenlos. Dank dieses kostenlosen Nutzungskontingents fallen für viele Anwendungen überhaupt keine SimpleDB-Kosten an. Die vollständigen Preisinformationen zu Amazon SimpleDB finden Sie unter http://aws.amazon.com/simpledb/pricing/. Seite 15 von 24 Amazon Web Services – AWS-Speicheroptionen Dezember 2010 Elastizität und Skalierbarkeit Wenn Sie eine SimpleDB-Domain erstellen, weist AWS maximal 10 GB Speicher pro Domain zu. Da Sie nur für Rechenund Speicherressourcen zahlen, die Sie tatsächlich nutzen, können Sie das System auf transparente Weise bis auf Null oder bei Bedarf nach oben skalieren. Speicher und Indexanforderungen werden von Amazon SimpleDB verarbeitet und die automatisch indizierten Daten werden redundant an mehreren Standorten innerhalb der beim Erstellen Ihrer SimpleDB-Domain ausgewählten Region gespeichert. Dadurch entfällt die Datenbankadministration und Sie können ganz einfach mit PUT und GET auf Daten zugreifen. Um horizontale Skalierbarkeit zu erreichen und den Durchsatz oder die Größe der Datensätze über die Begrenzungen einer einzigen Domain hinaus zu erhöhen, können Sie mehrere SimpleDBDomains erstellen und mehrere Operationen parallel ausführen. Datensätze, die größer als 10 GB sind, können Sie über mehrere SimpleDB-Domains hinweg partitionieren. Oberflächen Für die programmseitige Interaktion mit SimpleDB stehen zahlreiche verschiedene Techniken zur Verfügung. Amazon stellt eine Web-Service-API für SOAP- und RESTful-Stile zur Verfügung. Die API umfasst aktuell neun Operationen für die Domain-Verwaltung (Erstellen, Auflisten, Löschen und Empfangen von Metadaten) und für die Arbeit mit Attributen (Abrufen, Schreiben – einzeln oder im Batch – und Löschen). Zwar ist Standard-SQL für SimpleDB nicht verfügbar, aber mit der SimpleDB-Operation "Select" können Sie SQL-ähnliche Abfragen erstellen, um einen Satz von Attributen basierend auf den von Ihnen festgelegten Kriterien abzurufen. Wenn Sie die Verwendung eines Software Development Kits bevorzugen, stehen Toolkits und Bibliotheken für beliebte Programmiersprachen und Plattformen für die Softwareentwicklung zur Verfügung, z. B.: Java unter Verwendung von AWS SDK für Java (http://aws.amazon.com/sdkforjava/) und AWS Toolkit für Eclipse (http://aws.amazon.com/eclipse/). C#, unter Verwendung von AWS SDK für .NET (http://aws.amazon.com/sdkfornet/) und Visual Studio-Vorlagen. PHP, unter Verwendung der Basisinstallation von PHP5 oder AWS SDK für PHP (http://aws.amazon.com/sdkforphp/). Perl, unter Verwendung von Digest::SHA1-, Bundle::LWP- und XML::Simple-Modulen, die alle von Comprehensive Perl Archive Network unter http://www.cpan.org heruntergeladen werden können. Nutzungsszenarios, in denen Amazon SimpleDB keine optimale Lösung darstellt Es ist leicht zu bestimmen, für welche Nutzungsszenarios SimpleDB nicht geeignet ist. Wenn eines der folgenden Kriterien zutrifft, sollten Sie ggf. eine der anderen AWS-Speicheroptionen verwenden: Eine vorgefertigte Anwendung, die an eine traditionelle relationale Datenbank angebunden ist – Wenn Sie eine vorhandene Anwendung in die AWS-Cloud portieren möchten und weiterhin eine relationale Datenbank verwenden müssen, sollten Sie entweder Amazon RDS (wenn es sich um eine MySQL-Datenbank handelt) oder eine der zahlreichen vorkonfigurierten Amazon EC2-Datenbank-AMIs verwenden. Sie können natürlich auch eine eigene Amazon EC2-Instance erstellen und darauf eine Datenbank-Engine installieren. Joins und/oder komplexe Transaktionen – Zwar kann SimpleDB bei vielen Lösungen zur Unterstützung der Benutzer verwendet werden, aber möglicherweise erfordert Ihre Anwendung Joins, komplexe Transaktionen und andere relationale Infrastruktur, die von traditionellen Datenbankplattformen bereitgestellt werden. Wenn dies der Fall ist, sollten Sie Amazon RDS oder Amazon EC2 mit einer installierten Datenbank in Betracht ziehen. Seite 16 von 24 Amazon Web Services – AWS-Speicheroptionen Dezember 2010 BLOB-Daten (Binary Large Objects) – Wenn Sie planen, binäre Daten (z. B. Videos, Bilder oder Musik) zu speichern, sollten Sie entweder Amazon Elastic Block Storage (EBS) oder Amazon Simple Storage Service (Amazon S3) verwenden. Aber auch in diesem Szenario kann SimpleDB eine sinnvolle Rolle übernehmen, nämlich die Verwaltung der Metadaten über Ihre Binärobjekte (z. B. Elementname, Größe, Erstellungsdatum, Eigentümer, Speicherort und so weiter). Daten eines bestimmten Typs (numerisch) – SimpleDB speichert alle Daten als Textzeichenfolgen, wenn Sie also mit Daten eines bestimmten Typs oder mit numerischen Daten arbeiten möchten, kann RDS oder eine traditionelle Datenbank auf Amazon EC2 eine bessere Lösung sein. Große Datenmengen – Wie bereits erwähnt bietet SimpleDB ein überzeugendes Preis- und Speichermodell für viele Anwendungen. Wenn Sie aber sehr große Datensätze verwalten müssen, sollte Sie über Speicheralternativen wie Amazon S3 oder EBS nachdenken. Wieder gilt: Sie können SimpleDB auch hier als effizienten Mechanismus zum Verwalten von Metadaten über große Datensätze verwenden. Amazon Relational Database Service (Amazon RDS) Amazon Relational Database Service (RDS) ist eine voll funktionsfähige relationale MySQL-Datenbank, die als verwalteter, Cloud-basierter Service bereitgestellt wird. Wenn Ihre Anwendung relationalen Speicher benötigt, Sie aber gleichzeitig den Verwaltungsaufwand für Datenbanken senken möchten, bietet Amazon RDS eine automatisierte Übernahme administrativer Aufgaben zur Reduzierung der Komplexität und Gesamtbetriebskosten. Amazon RDS sichert Ihre Datenbank automatisch und verwaltet die Datenbanksoftware, sodass Sie mehr Zeit für die Anwendungsentwicklung haben. Dieser Service eignet sich optimal für traditionelle strukturierte Daten, für die komplexere Abfrage- und Verknüpfungsfunktionen benötigt werden, als in der anderen Amazon-Datenbanklösung, SimpleDB, bereitgestellt werden. Ideales Nutzungsszenario Amazon RDS ist eine großartige Wahl für jede Anwendung, die auf MySQL als Informations-Repository basiert, und wenn Sie von einer hoch skalierbaren, wartungsarmen, kosteneffizienten, Cloud-basierten Datenbank profitieren möchten, ohne Code-Änderungen vornehmen zu müssen. Leistung Amazon RDS liefert höchste Leistung dank einer Kombination aus konfigurierbaren Instances, die auf der bewähren erstklassigen Amazon-Infrastruktur mit vollautomatischen Wartungs- und Backup-Operationen ausgeführt werden. Verfügbare Datenbankkonfigurationen reichen von einer "Small Instance" (64-Bit-Plattform mit 1,7 GB RAM und 1 Elastic Computing Unit (ECU)) bis hinauf zu einer "Quadruple Extra-Large Instance" (64-Bit-Plattform mit 68 GB RAM und 26 ECUs). Um optimale Leistung zu erreichen, ist es für Datenbankdesigner und -administratoren unerlässlich, das geeignete Instance-Profil (einschließlich RAM und Speicher) für die jeweiligen Rechenanforderungen auszuwählen. Wird eine Optimierung erforderlich, können Sie die Datenbankeinstellungen mit einer API von Amazon anpassen. Amazon CloudWatch stellt Metriken bereit, mit denen sich ermitteln lässt, wann Leistungsoptimierung und/oder zusätzliche Elastizität erforderlich ist. Schließlich können Administratoren wählen, zu einer größeren Datenbankkonfiguration zu wechseln, sollte der Bedarf die aktuellen Ressourcen der Instances überschreiten. Seite 17 von 24 Amazon Web Services – AWS-Speicheroptionen Dezember 2010 Elastizität und Skalierbarkeit RDS-Ressourcen können elastisch in verschiedenen Dimensionen skaliert werden: Größe des Datenbankspeichers, Rechenkapazität der Datenbank-Instance und Anzahl der Read Replicas. Um zusätzliche Rechenelastizität zu erreichen, können Sie weitere Amazon RDS-Instances konfigurieren und mittels Partitionierung die Arbeitslast verteilen. Um den RDS-Datenbankspeicher elastisch nach oben zu skalieren, können Sie mit Befehlszeilen-Tools, APIs oder der AWS Management Console zusätzlichen Speicher anfordern. Je nach Ihren Anforderungen kann dieser zusätzliche Speicher entweder sofort oder während des nächsten Wartungsfensters hinzugefügt werden. Das Skalieren von Rechenressourcen nach oben oder unten lässt sich mühelos mit einer einzigen API oder einem einzigen Befehl in der AWS Management Console ausführen. Beispiel: Sie benötigen beispielsweise jeweils am Ende eines Monats zusätzliche Rechenleistung für die Rechnungsstellung. Es ist ganz einfach, auf eine "Quadruple Extra-Large Instance" zu skalieren, die rechenintensiven Arbeitslasten auszuführen und dann für den Rest des Monats wieder zurück zur kleineren, kostengünstigeren Konfiguration zu wechseln. Um RDS-Datenbankressourcen nach oben oder unten zu skalieren (horizontale Skalierung mittels mehrerer RDSInstances), können Administratoren eine oder mehrere RDS-Read Replicas erstellen. Read Replicas verwenden die integrierte asynchrone Replikationsfunktion von MySQL, um RDS-Ressourcen zur Unterstützung hoher Arbeitslasten elastisch zu skalieren. Schließlich können Administratoren zusätzliche Amazon RDS-Instances konfigurieren und die Arbeitslast mittels Datenbankpartitionierung oder Datenbank-Splitting verteilen, wodurch noch größere Datenbankelastizität und Skalierbarkeit erreicht wird. Zuverlässigkeit und Verfügbarkeit Zur größeren Zuverlässigkeit bietet RDS zwei Arten von Datenbank-Backups an, die über mehrere Availability Zones repliziert werden: automatische DB-Instance-Backups und vom Benutzer initiierte Datenbank-Snapshots. Wenn Sie automatische DB-Instance-Backups aktivieren, führt RDS automatisch während des angegebenen Backup-Fensters ein vollständiges tägliches Backup Ihrer Daten aus und erfasst außerdem DB-Transaktionsprotokolle. Diese automatischen Backups werden ohne zusätzliche Kosten bereitgestellt und können bis zu acht Tage lang aufbewahrt werden. Sie können verwendet werden, um eine Point-in-Time-Wiederherstellung auf einen beliebigen Zeitpunkt durchzuführen, der zwischen dem Beginn des Aufbewahrungszeitraums bis etwa fünf Minuten vor der aktuellen Zeit liegen kann. DB-Snapshots werden vom Benutzer initiiert, können jederzeit erstellt werden und werden solange aufbewahrt, bis sie explizit gelöscht werden. DB-Snapshots ermöglichen Ihnen die Wiederherstellung der Datenbank auf einen bekannten Zustand. Die RDS-Funktion der Multi-AZ-Bereitstellung verbessert sowohl die Zuverlässigkeit als auch die Verfügbarkeit Ihrer Datenbank, indem Ihre Daten synchron zwischen einer primären RDS-DB-Instance und einer Standby-Instance in einer anderen Availability Zone repliziert werden. Im unwahrscheinlichen Fall des Ausfalls einer DB-Komponente oder Availability Zone führt RDS automatisch einen Failover auf die Standby-Instance aus (dies dauert typischerweise etwa drei Minuten) und die Datenbanktransaktionen können unmittelbar nach dem Wechsel zu den Standby-Daten fortgesetzt werden. Die synchrone Replikation stellt sicher, dass es nicht zu Datenverlusten kommt. Beachten Sie, dass die synchrone Replikation (durch die RDS-Funktion der Multi-AZ-Bereitstellung) die integrierte asynchrone Replikation (durch RDS-Read Replicas) ergänzt. Sie können beide Funktionen einzeln oder in Kombination einsetzen. Seite 18 von 24 Amazon Web Services – AWS-Speicheroptionen Dezember 2010 Kosten Wie bei allen Amazon Web Services zahlen Sie bei Amazon RDS nur für das, was Sie tatsächlich nutzen, ohne Mindestgebühren oder langfristige Vertragsbindung. Amazon RDS verfügt über eine mehrstufige Preisstruktur, basierend auf der Größe der Datenbank-Instance, dem Entwicklungstyp (Single-AZ/Multi-AZ) und der AWS-Region. Die Preise für Amazon RDS basieren auf verschiedenen Faktoren: den DB-Instance-Stunden (pro Stunde), der Menge an bereitgestelltem Datenbankspeicher (pro GB/Monat sowie pro 1 Million E/A-Anfragen), zusätzlichem Backup-Speicher (pro GB/Monat) und eingehender/ausgehender Datenübertragung (pro GB/Monat). Die vollständigen Preisinformationen zu Amazon RDS finden Sie unter http://aws.amazon.com/rds/pricing/. Oberflächen Zum Einstieg bietet Amazon eine Reihe leicht verständlicher Befehlszeilen-Skripts zum Erstellen, Verwalten, Überwachen und Anhalten Ihrer Datenbank-Instance. Alternativ dazu können Sie dieselben Aufgaben mit den auf den Web-Services von Amazon basierenden Operationen ausführen. Nachdem Sie Ihre Instance erstellt haben, können Sie Ihr Schema und Ihre Daten mit einem beliebigen Tool für relationale Datenbanken einrichten. Je nach Menge und Speicherort der vorhandenen lokalen Daten können Sie diese stattdessen mit dem Dienstprogramm "mysqldump" extrahieren und direkt an die ausführbare MySQL-Datei zum Einfügen in Amazon RDS weiterleiten. Bei größeren Datensätzen kann es von Vorteil sein, zuerst das Schema in Amazon RDS zu erstellen, dann die Daten lokal in eine Flat-Datei zu extrahieren und diese Datei anschließend mit dem Dienstprogramm "mysqlimport" in Amazon RDS hochzuladen. Das Thema der Migration zu Amazon RDS wird in einem künftigen Whitepaper detailliert behandelt werden. Nachdem Ihr Schema und die Daten an Ort und Stelle sind, erfolgt die Interaktion mit den Informationen mit MySQLStandard-SQL, JDBC und anderen populären APIs oder beliebigen, für die Arbeit mit relationalen Daten geeigneten grafischen Tools. Es müssen keinerlei Codeänderungen vorgenommen werden, damit Ihre Anwendung mit RDS interagieren kann: Sie ersetzen lediglich die Adresse Ihres Datenbankservers (z. B. dbserver.yourcompany.com) durch den öffentlichen DNS-Endpunkt (z. B. myinstance.c0cafggtpzd2.us-east-1.rds.amazonaws.com), der von AWS beim Erstellen der Instance bereitgestellt wurde. Dieser DNS-Endpunkt bleibt über die gesamte Lebensdauer Ihrer Instance gleich. Außer der Konfiguration des Endpunkts bleibt Ihre MySQL-basierte Anwendung komplett unverändert. Nutzungsszenarios, in denen Amazon RDS keine optimale Lösung darstellt Amazon RDS ist eine großartige Lösung für Cloud-basierte MySQL-Daten, aber in einer Reihe von Szenarios ist es nicht die richtige Wahl: Index- und abfrageorientierte Daten – Viele Cloud-basierte Lösungen benötigen nicht die fortgeschrittenen Funktionen relationaler Datenbanken, wie Joins und komplexe Transaktionen. Wenn der Schwerpunkt Ihrer Anwendung mehr auf Indizierung und Abfrage von Daten liegt, ist möglicherweise Amazon SimpleDB für Ihre Zwecke geeigneter. Viele große Binärobjekte (BLOBs) – Zwar ist MySQL (und somit Amazon RDS) in der Lage, BLOBs zu speichern, wenn Ihre Anwendung diese Objekte aber in hohem Maße verwendet (Audiodateien, Videos, Bilder und so weiter), dann kann Amazon Simple Storage Service (Amazon S3) die bessere Wahl sein. Seite 19 von 24 Amazon Web Services – AWS-Speicheroptionen Dezember 2010 Automatische Elastizität – Wie bereits erwähnt, liebt es beim Administrator, die Amazon RDS-Umgebung für Elastizität zu konfigurieren. Wenn Sie automatische Elastizität benötigen (und Ihre Datenstrukturen dafür geeignet sind), können Sie eine andere Speichermöglichkeit wählen, z. B. Amazon SimpleDB oder Amazon S3. Andere Datenbankplattformen – Zurzeit stellt Amazon RDS eine MySQL-Datenbank bereit. Wenn Sie eine andere Datenbankplattform benötigen (z. B. IBM DB2 oder Informix, Microsoft SQL Server, Oracle, PostgreSQL oder Sybase) müssen Sie ein spezialisiertes AMI einer relationalen Amazon EC2-Datenbank bereitstellen oder ein eigenes erstellen. Relationale Datenbank auf Amazon EC2 / AMIs einer relationalen Datenbank Amazon EC2 stellt zusammen mit EBS-Datenträgern eine ideale Plattform für den Betrieb Ihrer eigenen relationalen Datenbank in der Cloud dar. Viele führende Datenbanklösungen sind als vorgefertigte, einsatzbereite Amazon EC2-AMIs verfügbar, beispielsweise IBM DB2 und Informix, Oracle Database, MySQL, Microsoft SQL Server, PostgreSQL, Sybase, EnterpriseDB und Vertica. Ideales Nutzungsszenario Die Ausführung einer relationalen Datenbank auf Amazon EC2 und EBS ist das ideale Szenario für Benutzer, deren Anwendung eine bestimmte traditionelle relationale Datenbank erfordert, oder für Benutzer, die ein höchstes Maß an administrativer Kontrolle und Konfigurierbarkeit benötigen. Leistung Die Leistung einer relationalen Datenbank-Instance auf Amazon EC2 hängt von vielen Faktoren ab, beispielsweise dem Amazon EC2-Instance-Typ, der Anzahl und Konfiguration von EBS-Datenträgern, der Datenbanksoftware und deren Konfiguration sowie der Arbeitslast der Anwendung. Allgemein können Sie davon ausgehen, dass die Datenbankleistung auf Amazon EC2 mit der Leistung derselben Datenbank in einem ähnlich konfigurierten lokalen System vergleichbar ist. Wir möchten Sie auffordern, mit Ihrer Anwendung Vergleichstests auf mehreren Amazon EC2-Instance-Typen unter Verwendung verschiedener Speicherkonfigurationen durchzuführen, um die beste Konfiguration auszuwählen. Zum Steigern der Datenbankleistung können Sie Arbeitsspeicher und Rechenressourcen skalieren, indem Sie eine andere Amazon EC2-Instance-Größe auswählen. Um die E/A-Leistung nach oben zu skalieren, können Sie die Anzahl der EBSDatenträger ändern oder Software RAID 0 (Platten-Striping) über mehrere EBS-Datenträger verwenden, wodurch sich die Gesamt-IOPS und die Bandbreite erhöhen. In vielen Fällen können Sie auch die Gesamtleistung des Datenbanksystems durch horizontales Skalieren mittels Datenbank-Clustering, Replikation und mehreren Read Slaves steigern. Grundsätzlich verfügen Sie in der Amazon EC2-Umgebung über dieselben Optionen zur Optimierung der Datenbankleistung wie in einer Umgebung mit physischen Servern. Zuverlässigkeit und Verfügbarkeit Relationale Datenbanken auf Amazon EC2 bieten persistente Speicherung für strukturierte Daten unter Verwendung von EBS-Datenträgern als Datenspeicher, daher gelten die Angaben zu Zuverlässigkeit und Verfügbarkeit der EBS-Daten hier gleichermaßen. Und wiederum können die grundlegende Zuverlässigkeit und Verfügbarkeit der auf EBS-Datenträgern gespeicherten relationalen Daten mithilfe von EBS-Snapshots oder durch Verwendung von Datenbank-BackupDienstprogrammen von Drittanbietern (z. B. RMAN von Oracle) zum Speichern von Datenbank-Backups in Amazon S3 noch verbessert werden. Seite 20 von 24 Amazon Web Services – AWS-Speicheroptionen Dezember 2010 Kosten Beim Ausführen einer Datenbank auf Amazon EC2 zahlen Sie nur das, was Sie tatsächlich nutzen, ohne Mindestgebühren oder langfristige Vertragsbindung. Die Kosten für die Ausführung Ihrer eigenen Datenbank auf Amazon EC2 hängen von der Größe und Anzahl der für den Betrieb der Datenbank verwendeten Amazon EC2-Instances, der Größe der zur Datenbankspeicherung verwendeten EBS-Datenträger, der Menge an Daten, die nach und von Amazon EC2 übertragen werden, sowie in vielen Fällen den Lizenzkosten der Drittanbieter-Datenbanksoftware ab. Viele Open-SourceDatenbankpakete sind als kostenlose Lizenzen verfügbar; einige kommerzielle Softwareanbieter nutzen das Amazon DevPay-Preismodell; viele andere bieten ein Preismodell unter Verwendung der eigenen Lizenz. Wenden Sie sich an den Anbieter Ihrer Datenbanksoftware oder an Amazon Web Services, um mehr über das jeweils geltende LizenzkostenPreismodell zu erfahren. Detaillierte Informationen zu den Amazon EC2-, EBS- und Datenübertragungsgebühren finden Sie im Web unter http://aws.amazon.com/ec2/pricing/. Elastizität und Skalierbarkeit In vielen Fällen können Benutzer traditioneller relationaler Datenbanklösungen auf Amazon EC2 von der Elastizität und Skalierbarkeit der zugrunde liegenden AWS-Plattform profitieren. Nachdem Sie beispielsweise mit Ihrer Datenbanklösung eine Amazon EC2-Instance konfiguriert haben, können Sie die Instance in eine eigene AMI bündeln, entweder für InstanceSpeicher-AMIs unter Verwendung der "Bundle"-Befehle oder für EBS-AMIs unter Verwendung des Befehls "Create Image". Dann können Sie innerhalb weniger Minuten mehrere neue Instances Ihrer Datenbankkonfiguration erstellen. Nutzungsszenarios, in denen relationale Datenbanken auf Amazon EC2 keine optimale Lösung darstellen Eine eigene relationale Datenbank auf Amazon EC2 auszuführen, ist für viele Benutzer eine großartige Lösung, aber es gibt eine Reihe von Szenarios, in denen andere Lösungen die bessere Wahl sein können: Index- und abfrageorientierte Daten – Viele Cloud-basierte Lösungen benötigen nicht die fortgeschrittenen Funktionen relationaler Datenbanken, wie Joins oder komplexe Transaktionen. Wenn der Schwerpunkt Ihrer Anwendung mehr auf Indizierung und Abfrage von Daten liegt, ist möglicherweise Amazon SimpleDB für Ihre Zwecke geeigneter und wesentlich einfacher zu verwalten. Viele große Binärobjekte (BLOBs) – Viele relationale Datenbanken unterstützen BLOBs (Audiodateien, Videos, Bilder und so weiter). Wenn Ihre Anwendung diese Objekte aber in hohem Maße verwendet, dann kann es sinnvoller sein, Amazon S3 zu verwenden und die Metadaten mit einer relationalen Datenbank oder mit SimpleDB zu verwalten. Automatische Elastizität – Wie bereits erwähnt können Benutzer relationaler Datenbanken auf AWS in vielen Fällen von der Elastizität und Skalierbarkeit der zugrunde liegenden AWS-Plattform profitieren. Dazu müssen die Systemadministratoren oder DBAs allerdings eine bestimmte Aufgabe manuell oder durch ein Skript ausführen. Angenommen, Sie benötigen oder wünschen die automatische Elastizität (und Ihre Datenstrukturen sind dafür geeignet). Dann können Sie eine andere Speichermöglichkeit wählen, z. B. Amazon SimpleDB oder Amazon S3. Seite 21 von 24 Amazon Web Services – AWS-Speicheroptionen Dezember 2010 Cloud-Speicherung Anwendungsfälle Beispiele, die verdeutlichen, wie AWS-Speicheroptionen in der Praxis genutzt werden, finden Sie im begleitenden Whitepaper: "Storage Options in the AWS Cloud: Use Cases" unter: http://media.amazonwebservices.com/AWS_Storage_Use_Cases.pdf. Referenzen und weiterführende Literatur AWS-Speicherdienste Amazon Elastic Block Store (EBS) – http://aws.amazon.com/ebs Amazon EC2 Instance Store Volumes – http://docs.amazonwebservices.com/AWSAmazon EC2/latest/UserGuide (siehe Abschnitte über Instance-Typen, Instance-Speicherung und Block-Gerät-Zuordnung) Amazon Simple Storage Service (Amazon S3) – http://aws.amazon.com/s3 Amazon Simple Queue Service (Amazon SQS) – http://aws.amazon.com/sqs Amazon SimpleDB – http://aws.amazon.com/simpledb Ausführen von Datenbanken auf AWS – http://aws.amazon.com/running_databases Amazon Relational Database Service (Amazon RDS) – http://aws.amazon.com/rds Artikel zur AWS-Speicherung Artikel von Werner Vogel, "Choosing Consistency" – http://www.allthingsdistributed.com/2010/02/strong_consistency_simpledb.html Artikel im Amazon Web Services-Blog, "Amazon SimpleDB Consistency Enhancements" – http://aws.typepad.com/aws/2010/02/amazon-simpledb-consistency-enhancements.html Artikel im Amazon Web Services Developer Center, "Amazon SimpleDB Consistency Enhancements" – http://developer.amazonwebservices.com/connect/entry.jspa?externalID=3572&categoryID=152 Amazon Web Services Simple Monthly Calculator – http://aws.amazon.com/calculator Oracle in the Cloud FAQ – http://www.oracle.com/technetwork/topics/cloud/faq-098970.html Artikel im Amazon Web Services Developer Center, "Ausführen von Datenbanken auf AWS" – http://aws.amazon.com/running_databases/ Oracle-Fallstudie: "Oracle Database in the Cloud" – http://www.oracle.com/technetwork/database/features/availability/311356-129177.pdf Weitere Informationen zu AWS Kostenloses Nutzungskontingent für AWS – http://aws.amazon.com/free Öffentliche Datensätze auf AWS – http://aws.amazon.com/de/publicdatasets AWS Import/Export – http://aws.amazon.com/importexport Amazon CloudFront – http://aws.amazon.com/cloudfront Fallbeispiele zu AWS – http://aws.amazon.com/solutions/case-studies Seite 22 von 24 Amazon Web Services – AWS-Speicheroptionen Dezember 2010 Anhang: Schnellreferenz zu AWS-Speicheroptionen Unstrukturierte Daten Strukturierte Daten Andere relationale Datenbank (auf EC2 und EBS) Amazon EC2Instance-Speicher Amazon-EBS-Datenträger Amazon S3 Amazon SimpleDB Leistung Hoch Hoch Mittel (einzelner Thread) bis sehr hoch (mehrere Threads) Mittel bis hoch (im Stapel ausgeführte PUTs/GETs) Hoch Hoch Zuverlässigkeit Niedrig Mittel Hoch Hoch Hoch Mittel Kosten In den Kosten für EC2 enthalten Bereitgestellt pro GB/Monat Gespeichert pro GB/Monat Bereitgestellt Erstes GB kostenlos, dann pro GB/Monat Bereitgestellt (wie bei EBS) Bereitgestellt pro GB/Monat (mind. 5 GB) Verfügbarkeit Niedrig Mittel bis hoch (bei Verwendung von EBSSnapshots) Hoch Hoch Mittel bis hoch Hoch Elastizität/Skalierbarkeit Nein Manuell (Hinzufügen mehrerer Datenträger) Automatisch Automatisch Manuell Manuell (ein Befehl zum Ändern der DBInstance) Größenbeschränkungen 160 GB bis 1,6 TB (größere Instances verfügen über größere und mehr Datenträger) 1 GB bis 1 TB pro Datenträger (für größere Kapazitäten Verwendung von mehreren Datenträgern oder von Striping möglich) Praktisch unbegrenzt (5 TB pro Objekt, unbegrenzte Zahl von Objekten pro Bucket) 10 GB/Domain 100 Domains (mehr Domains auf Anfrage erhältlich) (wie bei EBS) 5 GB bis 1 TB pro DB-Instance Persistenz über Instanziierungen Nein Ja Ja Ja Ja Ja Oberflächen Block-Gerät, Zugriff über Betriebs-/Dateisystem auf EC2 n. z., Zugriff über EC2Betriebs-/Dateisystem HTTP, REST oder SOAP REST oder SOAP MySQL- oder JDBCBibliotheken Sicherheit (Verschlüsselung bei Speicherung) Ausführen eines verschlüsselten Dateisystems Ausführen eines verschlüsselten Dateisystems Verschlüsseln mit 256-Bit-AES Verschlüsseln mit 256-BitAES MySQL- oder JDBCBibliotheken Sicherheit (Verschlüsselung bei Übertragung) n. z. n. z. SSL (HTTPS) SSL (HTTPS) SSL (HTTPS) SSL (HTTPS) RDBMS-Plattformen unterstützt MySQL, SQL Server, Oracle, DB2 etc. MySQL, SQL Server, Oracle, DB2 etc. n. z. n. z. MySQL, SQL Server, Oracle, DB2 etc. MySQL 5.1 Seite 23 von 24 Amazon RDS Amazon Web Services – AWS-Speicheroptionen Dezember 2010 Unstrukturierte Daten Strukturierte Daten Andere relationale Datenbank (auf EC2 und EBS) Amazon EC2Instance-Speicher Amazon-EBS-Datenträger Amazon S3 Amazon SimpleDB Amazon RDS Modell (relational oder sonstiges) Block Block Objekt Nicht relational, flexibles Schema, Entitätenspeicher Relational Relational Grad der Automatisierung Keine Automatische Spiegelung Automatische Replikation, Versioning Indizierung, Replikation, Bereitstellung, Patching Abhängig von DB Grad der Redundanz Nicht redundant Redundant innerhalb einer Availability Zone Hoch redundant über mehrere Rechenzentren Verwaltet mehrere, geografisch verteilte Kopien aller Benutzerdaten Keine (asynchrone Replikation verfügbar) Automatische Backups, SoftwarePatching Beide Optionen: eine DB-Instance (einzelne AZ) und mehrere Availability Zones (Multi-AZ) Instanceüberschreitender Zugriff (d. h. Freigabe möglich) Nein Nein Ja Ja Ja Ja Verwaltung und Administration Manuell Manuell Automatisch Automatisch Manuell Automatisch Seite 24 von 24