Proxy für einen lokalen Spiegel von S3-Verzeichnissen

7

Wir haben ein Büro, in dem die Nachfrage nach Zugriff auf große Dateien aus unseren eigenen Amazon S3-Verzeichnissen steigt. Der schnelle Zugriff darauf ist für unser Unternehmen wichtig. Wir sind daher der Meinung, dass es an der Zeit ist, Kopien der Dateien vor Ort aufzubewahren. Dies ist nicht mein Fachgebiet, daher hoffe ich auf einen Rat.

Ein "normaler" Cache allein reicht für uns nicht aus, da wir bereits die erste Anforderung für eine bestimmte Datei beschleunigen möchten. Die AWS-CLI bietet die Möglichkeit, ein lokales Verzeichnis mit S3 synchron zu halten. Daher besteht eine Idee darin, dieses Verzeichnis in Zeiten mit geringem Datenverkehr nach einem Zeitplan auszuführen und dann einen Proxy zu konfigurieren, der dieses Verzeichnis als Cache behandelt, sofern dies möglich ist.

Eine andere Idee besteht darin, Abrufanforderungen von einem Skript an einen Caching-Proxy zu senden, um den Cache nach einem ähnlichen Zeitplan warm zu halten.

Eine Einschränkung ist, dass die S3-Assets privat sind. Daher signieren wir ihre URLs, bevor wir jede Anfrage stellen. Dies bedeutet, dass der Proxy in der Lage sein muss, die lokale Kopie basierend auf der URL ohne Abfrageparameter bereitzustellen. Beispielsweise sollten beide URLs in dieselbe zwischengespeicherte / gespiegelte Datei aufgelöst werden:

  • https://example.com/asset1.txt?signature=1
  • https://example.com/asset1.txt?signature=2

Die Größe des Caches liegt im einstelligen Terabyte und verarbeitet den Datenverkehr für etwa 300 aktive Benutzer.

Also endlich meine Fragen:

  • Klingt einer dieser Ansätze vernünftig?
  • Kann jemand Proxy-Software empfehlen, die so konfiguriert werden kann, wie wir es brauchen?
  • Gibt es Ressourcen, die ich konsultieren kann, um die Hardwareanforderungen für diese Last zu ermitteln?
  • Irgendwelche anderen Gedanken / Vorschläge?
Eric Simonton
quelle
1
Das ist ein interessantes Angebot, das ich noch nicht gesehen habe, @ceejayoz. Vielen Dank. Wenn wir das verwenden würden, würde es anscheinend die AWS CLI-Synchronisation in der ersten Option ersetzen, die ich erwähnt habe. Ich werde das zu unserer Liste der Optionen hinzufügen.
Eric Simonton

Antworten:

5

Wenn Sie nur Ihr lokales Repository mit dem Cloud-basierten Objektspeicher synchronisieren müssen, würde ich mir Rclone oder CloudBerry ansehen. Rclone verfügt über eine Befehlszeilenschnittstelle zum Synchronisieren von Verzeichnissen und Dateien zwischen den Clouds. Es funktioniert für die gängigsten Cloud-Speicher wie Azure, AWS (sowohl S3 als auch Glacier) usw. https://rclone.org/

Wenn Sie alle Daten in der Cloud sichern möchten, besteht auch die Möglichkeit, Sicherungen der virtuellen Bandbibliothek mit einem zusätzlichen Offload in die Cloud durchzuführen. Wenn Sie also Ihre vorhandene Infrastruktur sichern müssen, können Sie Ransomware-sichere Sicherungen mit automatischem Offload in die Cloud durchführen. Es hat Deduplizierung und Komprimierung, aber soweit ich weiß, gibt Starwind es derzeit kostenlos. https://www.starwindsoftware.com/starwind-virtual-tape-library

Beide Lösungen sind ausgereift und zuverlässig. Sie müssen nur die erforderliche Option auswählen. Hoffe es war hilfreich.

Stuka
quelle
Sie können auch den AWS S3-Synchronisierungsbefehl verwenden, wenn Sie nur über eine Befehlszeilenschnittstelle synchronisieren möchten. Ich mache das, um eine Kopie eines S3-Buckets auf meinem PC zu erstellen.
Tim
Was ist mit einer Automatisierung in der AWS S3-Synchronisierung? Kann ich die Synchronisierung über die Eingabeaufforderung planen?
Stuka
Auf meinem PC verwende ich Windows Task Scheduler, um eine Batchdatei auszuführen, die aws s3 sync ausführt. Unter Unix würden Sie cron verwenden.
Tim
0

Abhängig von Ihren Anforderungen bietet Ihnen AWS Storage Gateway möglicherweise das, was Sie benötigen. Storage Gateway ist ein AWS-Angebot, das als virtuelle Maschine in Ihrer lokalen Umgebung bereitgestellt wird.

Es gibt zwei Arten von Storage Gateway, die sofort als potenziell geeignet in den Sinn kommen:

  • File Gateway präsentiert einen S3-Bucket als NFS-Mount und enthält transparentes lokales Caching.

  • Volume Gateway - Zwischengespeicherte Volumes werden als iSCSI-Ziel dargestellt und umfassen auch das lokale Caching von Daten, auf die häufig zugegriffen wird.

Storage Gateway hat einige Nachteile:

  • Es ist NICHT für die Unterstützung von Multi-Master-Szenarien ausgelegt , daher sind Sperrmechanismen auf das Storage Gateway (und nicht auf den zugrunde liegenden S3-Bucket) beschränkt. Von beiden ist ein Multi-Master-Szenario mit File Gateway besser geeignet, da es einen RefreshCache- API- Aufruf unterstützt, der die Metadaten in Ihrer lokalen VM mit Objekten aktualisiert, die seit dem letzten Auflisten des Gateways hinzugefügt / entfernt / ersetzt wurden den Inhalt des Eimers.

  • Volume Gateway bietet keinen Zugriff auf den zugrunde liegenden S3-Bucket . Während File Gateway von einem vom Kunden gesteuerten S3-Bucket unterstützt wird, wird Volume Gateway von einem AWS-gesteuerten S3-Bucket unterstützt. Dies bedeutet, dass für Volume Gateway der S3-Bucket in Ihrem Konto nicht angezeigt wird und Sie nicht als normales S3-Objekt auf die darin enthaltenen Daten zugreifen können. (Ich kann keine Dokumentation finden, die dies bestätigt, aber ich bin zu 95% sicher, dass dies korrekt ist.)

Es gibt andere Arten von Storage Gateway, und Sie können nachlesen, wie AWS Storage Gateway funktioniert .

Wenn Sie Direct Connect noch nicht verwenden , sollten Sie es für einen Zugriff auf AWS-Services mit hoher Bandbreite und geringer Latenz in Betracht ziehen. (Ich vermute, Sie verwenden es bereits angesichts der von Ihnen genannten Datenmenge.)

Bearbeiten 2018-05-21: Storage Gateway-Preise Mit Storage Gateway werden Ihnen der zugrunde liegende Speicher (Datengröße + Anforderungen) und die Datenübertragung in Rechnung gestellt. Das ist es. Jede andere Lösung, die S3 als Speicher verwendet, kostet Sie dasselbe.

Alex Hague
quelle
1
AWS Gateway ist meiner Meinung nach zu teuer für das, was es tut.
NISMO1968
Wenn Sie abstimmen wollen, geben Sie mir bitte einen kurzen Kommentar mit einer Erklärung, damit ich es in Zukunft besser machen kann. Auch wenn es wegen des Preises ist, dann denke ich wirklich, dass einem von uns etwas fehlt und wenn ich etwas vermisse, erklären Sie es bitte. Ich höre zu lernen und mich zu verbessern wie alles andere.
Alex Hague