View a markdown version of this page

Amazon S3 mit Amazon EC2 verwenden - Amazon Elastic Compute Cloud

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Amazon S3 mit Amazon EC2 verwenden

Amazon Simple Storage Service (Amazon S3) ist ein Objektspeicherservice, der branchenführende Skalierbarkeit, Datenverfügbarkeit, Sicherheit und Leistung bietet. Sie können Amazon S3 verwenden, um beliebige Datenmengen für eine Reihe von Anwendungsfällen zu speichern und abzurufen, z. B. für Data Lakes, Websites, Backups und Big-Data-Analytik, von einer Amazon-EC2-Instance oder von einem beliebigen Ort im Internet aus. Weitere Informationen finden Sie unter Was ist Amazon S3?

Es gibt zwei Möglichkeiten, von Ihren Amazon EC2-Instances aus auf Amazon S3-Daten zuzugreifen:

  • Dateizugriff — Verwenden Sie Amazon S3 Files, um einen S3-Bucket als Hochleistungsdateisystem auf Ihrer Instance bereitzustellen.

  • Objektzugriff — Verwenden Sie die Amazon S3 S3-API oder Tools wie wget AWS CLI AWS SDKs, um Objekte in und aus S3 zu kopieren.

Dateizugriff mit Amazon S3 S3-Dateien

Amazon S3 Files ist ein serverloses Dateisystem, mit dem Sie Ihren S3-Allzweck-Bucket als Hochleistungsdateisystem auf Ihrer Compute-Instance mounten können. Mit S3 Files können Sie auf Ihre S3-Objekte als Dateien zugreifen, indem Sie standardmäßige Dateisystemoperationen wie Lesen und Schreiben auf dem lokalen Bereitstellungspfad verwenden.

Sie können ein S3-Dateisystem entweder beim Start oder nach dem Start auf einer laufenden Instance auf einer EC2-Instance mounten.

Voraussetzungen

Bevor Sie S3 Files mit Ihrer EC2-Instance einrichten, stellen Sie sicher, dass Sie über Folgendes verfügen:

  • Ein S3-Dateisystem und mindestens ein Mount-Ziel im verfügbaren Zustand. Informationen zum Erstellen eines S3-Dateisystems finden Sie unter Arbeiten mit Amazon S3 S3-Dateien im Amazon S3 S3-Benutzerhandbuch.

  • Eine EC2-Linux-Instance, an die ein Instance-Profil angehängt ist. Informationen zu den erforderlichen Berechtigungen für das Mounten des Dateisystems finden Sie unter IAM-Rollen und -Richtlinien im Amazon S3 S3-Benutzerhandbuch.

  • Sicherheitsgruppen, die NFS-Verkehr (Port 2049) zwischen Ihrer Instance und den Mount-Zielen des Dateisystems zulassen. Informationen zu den erforderlichen Sicherheitsgruppeneinstellungen finden Sie unter Sicherheitsgruppen im Amazon S3 S3-Benutzerhandbuch.

Um ein Dateisystem beim Start mithilfe der EC2-Konsole auf eine EC2-Instance zu mounten
  1. Öffnen Sie die Amazon-EC2-Konsole unter https://console.aws.amazon.com/ec2/.

  2. Wählen Sie Launch Instance (Instance starten) aus.

  3. Führen Sie unter Network settings (Netzwerkeinstellungen) die folgenden Schritte aus:

    1. Wählen Sie Bearbeiten aus.

    2. Wählen Sie für Subnet (Subnetz) ein Subnetz aus.

    3. Wählen Sie die Standardsicherheitsgruppe aus, um sicherzustellen, dass Ihre EC2-Instance auf Ihr S3-Dateisystem zugreifen kann. Sie können mit dieser Sicherheitsgruppe nicht über Secure Shell (SSH) auf Ihre EC2-Instance zugreifen. Für den Zugriff per SSH können Sie später die Standardsicherheitsgruppe bearbeiten und eine Regel hinzufügen, um SSH zuzulassen, oder eine neue Sicherheitsgruppe hinzufügen, die SSH zulässt. Sie können die folgenden Einstellungen verwenden:

      1. Typ: SSH

      2. Protocol (Protokoll): TCP

      3. Port-Bereich: 22

      4. Quelle: Anywhere 0.0.0.0/0

  4. Gehen Sie unter Speicher konfigurieren wie folgt vor:

    1. Wählen Sie unter Dateisysteme die Option S3-Dateien aus.

    2. Wählen Sie Add shared file system (Freigegebenes Dateisystem hinzufügen) aus.

    3. Für das S3-Dateisystem werden Ihre Dateisysteme in der Availability Zone angezeigt, basierend auf dem Subnetz, das Sie in Ihren Netzwerkeinstellungen ausgewählt haben. Wählen Sie das S3-Dateisystem aus, das Sie mounten möchten. Wenn Sie noch keine Dateisysteme haben, wählen Sie Neues Dateisystem erstellen, um ein neues zu erstellen.

    4. Geben Sie einen lokalen Bereitstellungspfad auf Ihrer EC2-Instance ein, in der Sie das Dateisystem mounten möchten (z. B./mnt/s3files).

    5. Es wird ein Befehl generiert, um das Dateisystem zu mounten und zu fstab hinzuzufügen. Sie können diesen Befehl dem Feld Benutzerdaten unter Erweiterte Details hinzufügen. Ihre EC2-Instance wird dann so konfiguriert, dass das S3-Dateisystem beim Start und bei jedem Neustart bereitgestellt wird. Sie können diese Befehle auch nach dem Start in Ihrer EC2-Instance ausführen.

  5. Fügen Sie unter Erweiterte Details ein Instance-Profil zu Ihrer Instance hinzu. Ihre IAM-Rolle muss über Berechtigungen zum Mounten des Dateisystems und zum Zugriff auf den S3-Bucket verfügen. Weitere Informationen zu den erforderlichen Berechtigungen finden Sie unter IAM-Rollen und -Richtlinien im Amazon S3 S3-Benutzerhandbuch.

  6. Wählen Sie Launch Instance (Instance starten) aus.

    Nach dem Start der Instance werden die erforderlichen Software-Dienstprogramme installiert und das Dateisystem gemountet. Sie können das Dateisystem anzeigen, indem Sie zu Ihrem lokalen Bereitstellungspfad navigieren.

Um ein Dateisystem nach dem Start auf eine EC2-Instance zu mounten
  1. Stellen Sie über Secure Shell (SSH) oder mithilfe von EC2 Instance Connect in der EC2-Konsole eine Verbindung zu Ihrer EC2-Instance her.

  2. Verwenden Sie das Mount Helper-Hilfsprogramm, um Ihr S3-Dateisystem zu mounten. amazon-efs-utils Verwenden Sie je nach Ihrer Linux-Distribution einen der folgenden Befehle, um das amazon-efs-utils Paket zu installieren:

    1. Wenn Sie Amazon Linux verwenden, führen Sie den folgenden Befehl aus, um efs-utils aus den Repositorys von Amazon zu installieren:

      sudo yum -y install amazon-efs-utils
    2. Wenn Sie andere unterstützte Linux-Distributionen verwenden, führen Sie den folgenden Befehl aus:

      curl https://amazon-efs-utils.aws.com/efs-utils-installer.sh | sudo sh -s -- --install
    3. Weitere Linux-Distributionen finden Sie im efs-utils-Repository unter. GitHub

  3. Erstellen Sie mit dem folgenden Befehl ein Verzeichnis für den Einhängepunkt des Dateisystems:

    sudo mkdir {path/to/mount}
  4. Hängen Sie das S3-Dateisystem ein:

    FS="{YOUR_FILE_SYSTEM_ID}" sudo mount -t s3files $FS:/ {path/to/mount}
  5. Vergewissern Sie sich, dass das Dateisystem gemountet ist:

    df -h {path/to/mount}
Um Objekte in Ihrem S3-Bucket als Dateien anzuzeigen

Nachdem Sie die vorherigen Verfahren abgeschlossen haben, können Sie nun S3-Objekte als Dateien auf Ihrem lokalen Mountpfad mithilfe von Standardoperationen des Dateisystems lesen und schreiben. Wenn Sie Objekte in Ihrem S3-Bucket haben, können Sie sie mit dem folgenden Befehl als Dateien anzeigen:

ls {path/to/mount}

Objektbasierter Zugriff

Sie können Dateien mit der S3-API, AWS CLI AWS SDKs, oder Standard-HTTP-Tools zu und von Amazon S3 kopieren. Wenn Sie über die erforderlichen Berechtigungen verfügen, können Sie eine Datei mit einer der folgenden Methoden zu oder von Amazon S3 und Ihrer Instance kopieren.

wget
Anmerkung

Diese Methode funktioniert nur für öffentliche Objekte. Wenn das Objekt nicht öffentlich ist, erhalten Sie die Meldung ERROR 403: Forbidden. Wenn Sie diesen Fehler erhalten, müssen Sie entweder die Amazon S3 S3-Konsole AWS CLI, AWS API, AWS SDK oder AWS Tools for Windows PowerShell, verwenden und Sie müssen über die erforderlichen Berechtigungen verfügen. Weitere Informationen finden Sie unter Identity and Access Management für Amazon S3 und Herunterladen eines Objekts im Amazon-S3-Benutzerhandbuch.

Das wget Hilfsprogramm ist ein HTTP- und FTP-Client, mit dem Sie öffentliche Objekte von Amazon S3 herunterladen können. 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://amzn-s3-demo-bucket.s3.amazonaws.com/path-to-file
PowerShell

Sie können AWS Tools for Windows PowerShell verwenden, um Objekte zu und von Amazon S3 zu verschieben.

Verwenden Sie das Copy-S3ObjectCmdlet, um ein Amazon S3 S3-Objekt wie folgt in Ihre Windows-Instance zu kopieren.

Copy-S3Object ` -BucketName amzn-s3-demo-bucket ` -Key path-to-file ` -LocalFile my_copied_file.ext

Alternativ können Sie die Amazon-S3-Konsole mit einem Webbrowser auf der Windows-Instance öffnen.

AWS CLI

Sie können die AWS Command Line Interface (AWS CLI) verwenden, um eingeschränkte Artikel von Amazon S3 herunterzuladen und Artikel 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-cp-Befehl. 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:

aws s3 cp s3://amzn-s3-demo-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:

aws s3 cp my_copied_file.ext s3://amzn-s3-demo-bucket/my_folder/my_file.ext

Mit dem Befehl aws s3 sync lässt sich ein ganzer Amazon-S3-Bucket mit einem Speicherort in einem lokalen Verzeichnis synchronisieren. Dies kann hilfreich sein, wenn Sie einen Datensatz herunterladen und die lokale Kopie up-to-date zusammen mit dem Remote-Set behalten möchten. 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 gesamten Amazon S3 S3-Bucket in ein lokales Verzeichnis auf Ihrer Instance herunterzuladen:

aws s3 sync s3://amzn-s3-demo-source-bucket local_directory
Amazon S3 API

Sie können eine API verwenden, um auf Daten in Amazon S3 zuzugreifen. Sie können diese API verwenden, um Ihre Anwendung zu entwickeln und sie in andere APIs Anwendungen zu integrieren SDKs. Weitere Informationen finden Sie in den Codebeispielen für die Verwendung von Amazon S3 AWS SDKs in der Amazon Simple Storage Service API-Referenz.