Amazon Elastic Compute Cloud
Benutzerhandbuch für Linux-Instances

Amazon Simple Storage Service (Amazon S3)

Amazon S3 ist ein Repository für Internet-Daten. Amazon S3 bietet Zugriff auf eine zuverlässige, schnelle und kostengünstige Datenspeicherungs-Infrastruktur. Es ist darauf ausgelegt, die Webskalierung der Rechenleistung zu erleichtern, indem es Ihnen ermöglicht, jede beliebige Datenmenge jederzeit über Amazon EC2 oder das Internet zu speichern und abzurufen. Amazon S3 speichert Datenobjekte redundant auf mehreren Geräten und in mehreren Einrichtungen. Über viele separate Clients oder Anwendungs-Threads erlaubt es gleichzeitigen Lese- oder Schreibzugriff auf diese Datenobjekte. Sie können die redundanten in Amazon S3 gespeicherten Daten zur schnellen und zuverlässigen Wiederherstellung nach Instance- oder Anwendungsausfällen verwenden.

Amazon EC2 nutzt Amazon S3 zum Speichern von Amazon Machine Images (AMIs). AMIs dienen zum Starten von EC2-Instances. Im Fall eines Instance-Ausfalls können Sie das gespeicherte AMI dazu verwenden, sofort eine andere Instance zu starten, wodurch eine schnelle Wiederherstellung und Betriebskontinuität gewährleistet ist.

Amazon EC2 nutzt Amazon S3 auch zum Speichern von Snapshots (Sicherungskopien) der Daten-Volumes. Mit Snapshots lassen sich Daten im Fall von Anwendungs- oder Systemausfällen schnell und zuverlässig wiederherstellen. Sie können Snapshots auch als Grundlage verwenden, um neue Daten-Volumes zu erstellen, die Größe eines bestehenden Daten-Volumes zu erweitern oder Daten-Volumes über mehrere Availability Zones zu verschieben, wodurch Ihre Datennutzung äußerst skalierbar wird. Weitere Informationen zur Verwendung von Daten-Volumes und Snapshots finden Sie unter Amazon Elastic Block Store.

Objekte sind die Grundeinheiten, die in Amazon S3 gespeichert sind. Jedes in Amazon S3 gespeicherte Objekt ist in einem Bucket enthalten. Buckets organisieren den Amazon S3-Namespace auf der höchsten Ebene und ermitteln das für die Speicherung verantwortliche Konto. Amazon S3-Buckets sind ähnlich wie Internet-Domänennamen. Die in den Buckets gespeicherten Objekte haben einen eindeutigen Schlüsselwert und werden über eine HTTP-URL-Adresse abgerufen. Wenn beispielsweise ein Objekt mit dem Schlüsselwert /photos/mygarden.jpg in dem Bucket aws-s3-bucket1 gespeichert ist, kann es über die URL http://aws-s3-bucket1.s3.amazonaws.com/photos/mygarden.jpg abgerufen werden.

Weitere Informationen zu den Funktionen von Amazon S3 finden Sie auf der Amazon S3-Produktseite.

Amazon S3 und Amazon EC2

Wegen der Vorteile, die Amazon S3 bei der Speicherung hat, können Sie diesen Service zum Speichern von Dateien und Datensätzen zur Verwendung mit EC2-Instances nutzen. Es gibt verschiedene Möglichkeiten, Daten zu und von Amazon S3 zu Ihren Instances zu verschieben. Zusätzlich zu den unten dargestellten Beispielen gibt es eine Vielzahl von Tools, die von Entwicklern verfasst wurden und die Sie dazu verwenden können, von Ihrem Computer oder Ihrer Instance auf die in Amazon S3 gespeicherten Daten zuzugreifen. Einige der häufigsten Tools werden in den AWS-Foren diskutiert.

Wenn Sie eine entsprechende Berechtigung haben, können Sie mit einer der folgenden Methoden eine Datei zu oder von Amazon S3 und Ihrer Instance kopieren.

GET oder wget

Das Dienstprogramm wget ist ein HTTP- und FTP-Client, der es ermöglicht, öffentliche Objekte von Amazon S3 herunterzuladen. Es ist standardmäßig in Amazon Linux und den meisten anderen Verteilungen installiert und bei Windows zum Download verfügbar. Verwenden Sie zum Herunterladen eines Amazon S3-Objekts den folgenden Befehl, wobei die URL des herunterzuladenden Objekts ersetzt wird.

[ec2-user ~]$ wget https://my_bucket.s3.amazonaws.com/path-to-file

Diese Methode setzt voraus, dass das angeforderte Objekt öffentlich ist. Wenn das Objekt nicht öffentlich ist, wird die Meldung „ERROR 403: Forbidden“ angezeigt. Öffnen Sie in diesem Fall die Amazon S3-Konsole und ändern Sie die Berechtigungen für das Objekt zu „öffentlich“. Weitere Informationen hierzu finden Sie unter Entwicklerhandbuch für Amazon Simple Storage Service.

AWS Command Line Interface

Das AWS Command Line Interface (AWS CLI) ein vereinheitlichtes Tool zur Verwaltung von AWS-Services. Die AWS CLI erlaubt es Benutzern, sich zu authentifizieren und Elemente mit beschränktem Zugriff von Amazon S3 herunter- und zu diesem hochzuladen. Weitere Informationen, z. B. darüber, wie die Tools installiert und konfiguriert werden, finden Sie auf der AWS Command Line Interface-Detailseite.

Der Befehl aws s3 cp ähnelt dem Unix-Befehl cp. Sie können Dateien von Amazon S3 in Ihre Instance, von Ihrer Instance in Amazon S3 und von einem Amazon S3-Standort zu einem anderen kopieren.

Verwenden Sie den folgenden Befehl, um ein Objekt von Amazon S3 in Ihre Instance zu kopieren.

[ec2-user ~]$ aws s3 cp s3://my_bucket/my_folder/my_file.ext my_copied_file.ext

Verwenden Sie den folgenden Befehl, um ein Objekt von Ihrer Instance zurück nach Amazon S3 zu kopieren.

[ec2-user ~]$ aws s3 cp my_copied_file.ext s3://my_bucket/my_folder/my_file.ext

Mit dem Befehl aws s3 sync lässt sich ein ganzer Amazon S3-Bucket mit einem lokalen Verzeichnisspeicherort synchronisieren. Dies kann hilfreich sein, um einen Datensatz herunterzuladen und die lokale Kopie mit dem dezentralen Datensatz aktuell zu halten. Wenn Sie die entsprechenden Berechtigungen für den Amazon S3-Bucket haben, können Sie Ihr lokales Verzeichnis nach Abschluss der Änderungen wieder in die Cloud verlagern, indem Sie in dem Befehl die Quell- und Zielspeicherorte vertauschen.

Verwenden Sie den folgenden Befehl, um einen ganzen Amazon S3-Bucket zu einem lokalen Verzeichnis auf Ihrer Instance herunterzuladen.

[ec2-user ~]$ aws s3 sync s3://remote_S3_bucket local_directory

Amazon S3-API

Wenn Sie Entwickler sind, können Sie eine API zum Zugriff auf Daten in Amazon S3 verwenden. Weitere Informationen hierzu finden Sie unter Entwicklerhandbuch für Amazon Simple Storage Service. Sie können diese API und die zugehörigen Beispiele als Hilfe bei der Entwicklung Ihrer Anwendung verwenden und sie in andere APIs und SDKs integrieren, beispielsweise die boto Python-Schnittstelle.

Auf dieser Seite: