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-API AWS CLI, AWS SDKs oder Tools wie wget, um Objekte von und nach S3 zu kopieren.

Dateizugriff mit Amazon S3 Files

Amazon S3 Files ist ein serverloses Dateisystem, mit dem Sie Ihren S3-Allzweck-Bucket als Hochleistungsdateisystem auf Ihrer Recheninstanz bereitstellen können. Mit S3 Files können Sie auf Ihre S3-Objekte als Dateien zugreifen, indem Sie Standard-Dateisystemoperationen wie Lesen und Schreiben auf dem lokalen Mount-Pfad 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 Status „Verfügbar“. Informationen zum Erstellen eines S3-Dateisystems finden Sie unter Arbeiten mit Amazon S3-Dateien im Amazon S3-Benutzerhandbuch.

  • Eine EC2-Linux-Instance, an die ein Instance-Profil angehängt ist. Informationen zu den erforderlichen Berechtigungen zum Mounten des Dateisystems finden Sie unter IAM-Rollen und -Richtlinien im Amazon 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-Benutzerhandbuch.

Um ein Dateisystem beim Start mithilfe der EC2-Konsole in eine EC2-Instance einzubinden
  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: Irgendwo 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 keine Dateisysteme haben, wählen Sie Neues Dateisystem erstellen, um ein neues zu erstellen.

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

    5. Es wird ein Befehl generiert, um das Dateisystem zu mounten und es 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 sie das S3-Dateisystem beim Start und bei jedem Neustart mountet. Sie können diese Befehle auch in Ihrer EC2-Instance ausführen, nachdem sie gestartet wurde.

  5. Hängen Sie unter Erweiterte Details ein Instance-Profil an Ihre Instance an. 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-Benutzerhandbuch.

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

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

Um ein Dateisystem nach dem Start auf einer 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 Hilfsprogramm Mount Helper, 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. Informationen zu anderen Linux-Distributionen finden Sie im efs-utils-Repository unter. GitHub

  3. Erstellen Sie mit dem folgenden Befehl ein Verzeichnis für den Dateisystem-Mountpoint:

    sudo mkdir {path/to/mount}
  4. Mounten Sie das S3-Dateisystem:

    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 mithilfe von Standarddateisystemoperationen als Dateien in Ihrem lokalen Mount-Pfad 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}

Object-based Zugriff

Sie können Dateien mithilfe der S3-API AWS CLI, AWS SDKs oder Standard-HTTP-Tools von und zu Amazon S3 kopieren. Wenn Sie über die erforderlichen Berechtigungen verfügen, können Sie mithilfe einer der folgenden Methoden eine Datei 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-Konsole AWS CLI, AWS API, AWS SDK oder verwenden AWS Tools for Windows PowerShell, 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 Tool 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-S3Object Cmdlet, um ein Amazon S3-Objekt wie folgt auf 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 das 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 auf 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 in 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, 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 gesamten Amazon 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 und SDKs zu integrieren. Weitere Informationen finden Sie unter Codebeispiele für Amazon S3 mit AWS SDKs in der Amazon Simple Storage Service API-Referenz.