So Synchronisieren Sie Dateien von Linux zu Amazon S3

0
222

AWS S3 Amazon cloud-storage-service, so dass Sie zum speichern von individuellen Dateien als Objekte in einen Eimer. Sie können das hochladen von Dateien von der Befehlszeile auf Ihrem Linux-server, oder auch synchronisieren ganze Verzeichnisse zu S3.

Wenn Sie nur wollen, um Dateien zu teilen, die zwischen EC2-instances, die Sie verwenden können, ein EFS-Band und montieren Sie es direkt auf mehreren Servern, das Ausschneiden der “cloud” zusammen. Aber Sie sollten nicht es verwenden, für alles, weil es viel teurer als das S3, auch mit Gelegentlichem Zugriff aktiviert.

Limit S3 Zugang zu einem IAM-Benutzer

Ihr server vermutlich nicht brauchen, vollen root-Zugriff auf Ihr AWS-Konto, so, bevor Sie jede Art von Datei zu synchronisieren, müssen Sie eine neue IAM-Benutzer für den server zu verwenden. Mit einem IAM-Benutzer, Sie können beschränken Sie Ihre server nur die Verwaltung Ihrer S3-buckets.

Aus dem IAM Management Console, stellen Sie einen neuen Benutzer, und aktivieren Sie “Programmatischen Zugriff.”

Sie werden aufgefordert, wählen Sie die Berechtigungen für diesen Benutzer. Machen Sie eine neue Gruppe, und weisen Sie ihm die “AmazonS3FullAccess” Berechtigung.

Danach werden Sie ein access key und secret key. Notieren Sie sich diese, Sie werden Sie brauchen, um Ihren server identifizieren.

Sie können auch manuell zuweisen, mehr detaillierte S3-Berechtigungen, wie die Erlaubnis für die Verwendung eines bestimmten Eimer oder nur Dateien hochladen, aber einschränken des Zugriffs auf nur S3 sollte in Ordnung sein, in den meisten Fällen.

Datei-Synchronisierung Mit s3cmd

s3cmd ist ein Dienstprogramm, das entworfen, um die Arbeit mit der S3 von der Kommandozeile einfacher. Es ist nicht ein Teil der AWS CLI, so müssen Sie manuell installieren Sie es von Ihrer Distribution Paket-manager. Für Debian-basierte Systeme wie Ubuntu, das wäre:

sudo apt-get install s3cmd

Einmal s3cmd installiert ist, müssen Sie die Verknüpfung mit einem IAM-Benutzer, den Sie erstellt haben, zu verwalten S3. Führen Sie die Konfiguration mit:

s3cmd –configure

Sie werden aufgefordert, den access key und secret key, dass die IAM-Management-Konsole gab Sie. Fügen Sie diese hier ein. Es gibt ein paar mehr Optionen, wie das ändern der Endpunkte für das S3 oder das aktivieren der Verschlüsselung, aber Sie können lassen Sie alle Standardeinstellungen und wählen Sie einfach “Y” am Ende um die Konfiguration zu speichern.

Um eine Datei hochzuladen, verwenden Sie:

s3cmd put file s3://bucket

Ersetzen Sie “Eimer” mit Ihrem Eimer Namen. Zum abrufen dieser Dateien führen:

s3cmd get s3://bucket/remotefile localfile

Und, wenn Sie möchten, zu synchronisieren, die über ein ganzes Verzeichnis ausführen:

s3cmd sync-Verzeichnis s3://bucket/

Dies wird kopieren Sie das gesamte Verzeichnis in einen Ordner in S3. Das nächste mal, wenn Sie es ausführen, werden nur die Dateien kopiert, die sich geändert haben seit dem letzten ran. Es werden nicht alle Dateien löschen, es sei denn, Sie führen Sie es mit der –delete-option entfernt.

s3cmd sync wird nicht automatisch ausgeführt, so dass, wenn Sie nicht möchten, dass dieses Verzeichnis regelmäßig aktualisiert wird, müssen Sie diesen Befehl ausführen regelmäßig. Sie können automatisieren mit cron; Öffnen Sie Ihre crontab mit crontab -e und fügen Sie mit diesem Befehl beenden:

0 0 * * * s3cmd sync-Verzeichnis s3://bucket >/dev/null 2>&1

Dies wird sync “Verzeichnis”, um “Eimer” einmal am Tag. Übrigens, wenn crontab -e habe Sie stecken in vim können Sie ändern Sie die Standard-text-editor mit export VISUAL=nano;, oder je nachdem, was Sie bevorzugen.

s3cmd hat viele Unterbefehle; Sie können kopieren zwischen Eimer mit cp, Dateien verschieben mit mv, und sogar das erstellen und entfernen von Eimern von der Befehlszeile aus mit mb und rb, jeweils. Verwenden s3cmd -h für eine vollständige Liste.

Eine weitere Option: AWS CLI

Darüber hinaus s3cmd, es gibt ein paar weitere command line Optionen für die Synchronisierung von Dateien zu S3. AWS bietet Ihre eigenen tools mit der AWS CLI. Sie müssen Python 3+, und installieren der Befehlszeilenschnittstelle von pip3 mit:

pip3 installieren awscli –upgrade –user

Dies wird installieren Sie die aws-Befehl, die Sie verwenden können, um die Interaktion mit AWS-services. Müssen Sie es in der gleichen Weise wie s3cmd, die Sie tun können, mit:

aws konfigurieren

Sie werden aufgefordert, geben Sie den access key und secret key für Ihre IAM-Benutzer.

Die syntax für die AWS CLI ist ähnlich wie s3cmd. Um eine Datei hochzuladen, verwenden Sie:

aws-s3-cp file s3://bucket

So synchronisieren Sie ganze Ordner verwenden:

aws-s3-sync-Ordner s3://bucket

Sie können kopieren und auch synchronisieren zwischen Eimer mit der gleichen Befehle. Sie können mit aws-Hilfe für eine vollständige Liste mit Befehlen anzuzeigen, oder Lesen Sie die Befehls-Referenz auf Ihre website.

Vollständige Sicherungen: Restic, Doppelzüngigkeit

Wenn Sie wollen, um große backups, die Sie möglicherweise verwenden möchten, ein anderes Instrument als eine einfache sync-Dienstprogramm. Wenn Sie sync auf S3 mit s3cmd oder der AWS CLI, alle änderungen, die Sie vorgenommen haben, überschreiben Sie die aktuellen Dateien. Denn die größte Sorge der cloud file storage ist in der Regel nicht Festplattenausfall, aber das versehentliche löschen ohne Zugriff auf die Versionshistorie, ist das ein problem.

AWS unterstützt die Versionierung von Dateien, die löst dieses Problem etwas, aber Sie können noch wollen, verwenden Sie eine leistungsfähigere backup-Programm handle es sich, vor allem, wenn Sie tun, voll-Laufwerk-backups.

Duplicity ist ein einfaches Dienstprogramm, das sichert Dateien in form von verschlüsselten TAR Bände. Das erste Archiv ist eine komplette Datensicherung und dann werden alle nachfolgenden Archive sind inkrementell, speichern nur die änderungen seit der letzten Archiv.

Dies ist sehr effizient, aber aus einer Sicherung wiederherstellen, ist weniger effizient, als die Wiederherstellung zu Folgen, die Kette der Veränderungen kommt der Letzte Zustand der Daten. Restic löst dieses Problem durch die Speicherung von Daten in verschlüsselten, deduplizierten Blöcke, und hält Sie einen snapshot jeder version für die Restaurierung. Auf diese Weise wird der aktuelle Zustand der Dateien ist einfach referenzierbaren, und jede Version ist immer noch zugänglich.

Beide tools können konfiguriert werden, um mit AWS S3, sowie mehrere andere storage-Anbieter. Alternativ, wenn Sie nur wollen, zu sichern EBS-basierte EC2-instances, die Sie verwenden können, inkrementelle EBS-snapshots, aber es ist teurer als die Sicherung manuell zu S3.