paint-brush
Alles, was Sie zur Repatriierung von AWS S3 zu MinIO wissen müssenvon@minio
8,789 Lesungen
8,789 Lesungen

Alles, was Sie zur Repatriierung von AWS S3 zu MinIO wissen müssen

von MinIO12m2024/03/22
Read on Terminal Reader
Read this story w/o Javascript

Zu lang; Lesen

Lassen Sie uns etwas tiefer auf die mit der Rückführung verbundenen Kosten und Einsparungen eingehen, um Ihnen die Erstellung Ihrer eigenen Analyse zu erleichtern.

People Mentioned

Mention Thumbnail
featured image - Alles, was Sie zur Repatriierung von AWS S3 zu MinIO wissen müssen
MinIO HackerNoon profile picture


Die Antwort auf unseren vorherigen Beitrag, So repatriieren Sie von AWS S3 zu MinIO , war außergewöhnlich – wir haben Dutzende von Anrufen von Unternehmen erhalten, die uns um Rat zur Rückführung gebeten haben. Wir haben diese Antworten in diesem neuen Beitrag zusammengefasst, in dem wir etwas tiefer auf die mit der Rückführung verbundenen Kosten und Einsparungen eingehen, um Ihnen die Zusammenstellung Ihrer eigenen Analyse zu erleichtern. Die Migration von Daten ist für viele eine gewaltige Aufgabe. In der Praxis zielen sie darauf ab, neue Daten zu MinIO zu bringen und lassen sich Zeit, alte Daten aus der Cloud zu migrieren oder sie an Ort und Stelle zu lassen und nicht zu wachsen.

Übersicht zur Rückführung

Um Daten aus AWS S3 zu repatriieren, befolgen Sie diese allgemeinen Richtlinien:


  1. Datenanforderungen überprüfen: Bestimmen Sie die spezifischen Buckets und Objekte, die von AWS S3 repatriiert werden müssen. Stellen Sie sicher, dass Sie die Geschäftsanforderungen und Compliance-Anforderungen für jeden Bucket einzeln verstehen.


  2. Rückführungsziel bestimmen: Sie haben sich bereits für eine Rückführung zu MinIO entschieden. Jetzt können Sie wählen, ob Sie MinIO in einem lokalen Rechenzentrum oder bei einem anderen Cloud-Anbieter oder einer Colocation-Einrichtung ausführen möchten. Anhand der Anforderungen aus Nr. 1 wählen Sie Hardware oder Instanzen für die prognostizierten Speicher-, Übertragungs- und Verfügbarkeitsanforderungen aus.


  3. Datenübertragung: Planen und führen Sie die Datenübertragung von AWS S3 zu MinIO aus. Verwenden Sie einfach die integrierte Batch-Replikation von MinIO oder spiegeln Sie sie mit dem MinIO-Client (siehe So repatriieren Sie von AWS S3 zu MinIO für Details). Es gibt mehrere zusätzliche Methoden, die Sie für die Datenübertragung verwenden können, z. B. AWS DataSync, AWS Snowball oder TD SYNNEX Datenmigration , oder direkt mithilfe von AWS-APIs.


  4. Datenzugriff und Berechtigungen: Stellen Sie sicher, dass für die repatriierten Daten auf Bucket-Basis entsprechende Zugriffskontrollen und Berechtigungen eingerichtet sind. Dazu gehören IAM- und Bucket-Richtlinien zur Verwaltung des Benutzerzugriffs, der Authentifizierung und der Autorisierung, um die Sicherheit der Daten zu gewährleisten.


  5. Objektsperren: Es ist wichtig, die Richtlinien zur Objektsperrenaufbewahrung und zum gesetzlichen Aufbewahrungsrecht nach der Migration beizubehalten. Der Zielobjektspeicher muss die Regeln auf die gleiche Weise interpretieren wie Amazon S3. Wenn Sie sich nicht sicher sind, fragen Sie nach der Konformitätsbewertung von Cohasset Associates von der Zielobjektspeicherimplementierung.


  6. Datenlebenszyklusmanagement: Definieren und implementieren Sie eine Datenlebenszyklusmanagementstrategie für die repatriierten Daten. Dazu gehört das Definieren von Aufbewahrungsrichtlinien, Sicherungs- und Wiederherstellungsverfahren sowie Datenarchivierungspraktiken auf Bucket-Basis.


  7. Datenvalidierung: Validieren Sie die übertragenen Daten, um ihre Integrität und Vollständigkeit sicherzustellen. Führen Sie die erforderlichen Prüfungen und Tests durch, um sicherzustellen, dass die Daten erfolgreich und ohne Beschädigung oder Verlust übertragen wurden. Nach der Übertragung stimmen Objektname, ETag und Metadaten, Prüfsumme und Anzahl der Objekte zwischen Quelle und Ziel überein.


  8. Anwendungen und Workflows aktualisieren: Die gute Nachricht ist, dass Sie Ihre Anwendungen nur für den neuen MinIO-Endpunkt neu konfigurieren müssen, wenn Sie beim Erstellen Ihrer Anwendungen Cloud-native-Prinzipien befolgen. Wenn Ihre Anwendungen und Workflows jedoch für die Zusammenarbeit mit dem AWS-Ökosystem konzipiert wurden, nehmen Sie die erforderlichen Aktualisierungen vor, um die repatriierten Daten zu berücksichtigen. Dies kann die Aktualisierung von Konfigurationen, die Neukonfiguration von Integrationen oder in einigen Fällen die Änderung von Code beinhalten.


  9. Überwachen und optimieren: Überwachen und optimieren Sie die repatriierte Datenumgebung kontinuierlich, um optimale Leistung, Kosteneffizienz und Einhaltung der Best Practices im Datenmanagement sicherzustellen.

Schritte zur Rückführung

Bei der Budgetierung und Planung der Cloud-Repatriierung müssen viele Faktoren berücksichtigt werden. Glücklicherweise haben unsere Ingenieure dies bereits mit vielen Kunden durchgeführt und wir haben einen detaillierten Plan für Sie entwickelt. Wir haben Kunden, die alles von einer Handvoll Workloads bis hin zu Hunderten von Petabyte repatriiert haben.


Die größte Planungsaufgabe besteht darin, über die Auswahlmöglichkeiten in Bezug auf Netzwerk, gemietete Bandbreite, Serverhardware, Archivierungskosten für die nicht zur Rückführung ausgewählten Daten und die Personalkosten für die Verwaltung und Wartung Ihrer eigenen Cloud-Infrastruktur nachzudenken. Schätzen Sie diese Kosten und planen Sie sie ein. Die Kosten für die Rückführung in die Cloud umfassen Datenausgangsgebühren für die Übertragung der Daten aus der Cloud zurück in das Rechenzentrum. Diese Gebühren sind absichtlich hoch genug, um eine Bindung an die Cloud zu erzwingen. Beachten Sie diese hohen Ausgangsgebühren – sie untermauern das wirtschaftliche Argument, die öffentliche Cloud zu verlassen, denn mit der wachsenden Menge der von Ihnen verwalteten Daten steigen die Ausgangsgebühren. Wenn Sie also eine Rückführung planen, lohnt es sich, eher früher als später zu handeln.


Wir konzentrieren uns auf die Daten und Metadaten, die verschoben werden müssen – das sind 80 % der für die Rückführung erforderlichen Arbeit. Zu den Metadaten gehören Bucket-Eigenschaften und -Richtlinien (Zugriffsverwaltung basierend auf Zugriffs-/Geheimschlüssel, Lebenszyklusverwaltung, Verschlüsselung, anonymer öffentlicher Zugriff, Objektsperre und Versionierung).


Konzentrieren wir uns zunächst auf die Daten (Objekte). Erstellen Sie für jeden Namespace, den Sie migrieren möchten, eine Bestandsaufnahme der Buckets und Objekte, die Sie verschieben möchten. Wahrscheinlich weiß Ihr DevOps-Team bereits, welche Buckets wichtige aktuelle Daten enthalten. Sie können auch Amazon S3 Inventar . Auf hoher Ebene sieht das ungefähr so aus:


Namensraum

Eimer gesamt

Gesamtobjektanzahl

Gesamtobjektgröße (GB)

Täglicher Gesamtupload (TB)

Täglicher Gesamtdownload (TB)

ns-001

166

47.751.258

980.014,48

50,04

14,80

ns-002

44

24.320.810

615.033,35

23,84

675,81

ns-002

648

88.207.041

601.298,91

328,25

620,93

ns-001

240

68.394.231

128.042,16

62,48

12.45


Der nächste Schritt besteht darin, alle Buckets und ihre Eigenschaften nach Namespace aufzulisten, und zwar für alle Buckets, die Sie migrieren möchten. Notieren Sie die Anwendungen, die Daten in diesem Bucket speichern und lesen. Klassifizieren Sie jeden Bucket je nach Nutzung als Hot-, Warm- oder Cold-Tier-Daten.


In einer gekürzten Fassung sieht das dann etwa so aus:


Bucket-Name

Eigenschaften

App(s)

Heiß/Warm/Kalt-Stufe

A

Kopieren Sie JSON und fügen Sie es hier ein

Spark, Eisberg, Dremio

Heiß

B

Kopieren Sie JSON und fügen Sie es hier ein

Elastisch

Warm

C

Kopieren Sie JSON und fügen Sie es hier ein

Elastic (Schnappschüsse)

Kalt


An diesem Punkt müssen Sie einige Entscheidungen zum Datenlebenszyklusmanagement treffen und dabei gut aufpassen, denn hier können Sie AWS-Gebühren sparen. Kategorisieren Sie Objekte in jedem Bucket als heiß, warm oder kalt, je nachdem, wie häufig auf sie zugegriffen wird. Eine großartige Möglichkeit, Geld zu sparen, ist die direkte Migration von Buckets der kalten Ebene zu S3 Glacier – es gibt keinen Grund, Austrittsgebühren für das Herunterladen zu zahlen, nur um sie dann wieder hochzuladen.


Abhängig von der Datenmenge, die Sie repatriieren, haben Sie mehrere Möglichkeiten, die Migrationsmethode auszuwählen. Wir empfehlen, dass Sie neue Daten auf den neuen MinIO-Cluster laden und damit arbeiten, während Sie im Laufe der Zeit heiße und warme Daten in den neuen Cluster kopieren. Die zum Kopieren von Objekten benötigte Zeit und Bandbreite hängt natürlich von der Anzahl und Größe der zu kopierenden Objekte ab.


Hier ist es sehr hilfreich, die Gesamtdatenmenge zu berechnen, die Sie von AWS S3 zurückführen möchten. Sehen Sie sich Ihren Bestand an und addieren Sie die Größe aller Buckets, die als heiß und warm klassifiziert sind.


Gesamtdaten der Hot- und Warm-Tier-Ebene = 1.534.096,7 GB

Verfügbare Bandbreite = 10 Gbit/s

Erforderliche Mindestübertragungszeit (Gesamtobjektgröße / verfügbare Bandbreite) = 14,2 Tage


Berechnen Sie die Datenausgangsgebühren auf der Grundlage der oben genannten Summe. Ich verwende Listenpreis , aber Ihre Organisation hat möglicherweise Anspruch auf einen Rabatt von AWS. Ich verwende auch 10 Gbit/s als Verbindungsbandbreite, aber Ihnen steht möglicherweise mehr oder weniger zur Verfügung. Schließlich gehe ich davon aus, dass ein Drittel der S3-Daten lediglich in das S3 Glacier Deep Archive verschoben wird.


Gesamtanzahl der auf S3 Glacier übertragenen Daten = 767.048,337 GB

Transfergebühren von S3 zu S3 Glacier (0,05 $/1000 Objekte) = 3.773,11 $

Monatliche Speichergebühr für S3 Glacier Deep Archive = 760 $


Vergessen Sie nicht, die künftige Nutzung des S3 Glacier Deep Archive in Ihr Budget einzuplanen.


Gesamtmenge der zu übertragenden Daten = 1.534.096,7 GB

Erste 10 TB zu 0,09 $/GB = 900 $

Die nächsten 40 TB zu 0,085 USD/GB = 3.400 USD

Die nächsten 100 TB zu 0,07 USD/GB = 70.000 USD

Zusätzlich über 150 TB zu 0,05 USD/GB = 69.205 USD

Gesamte Austrittsgebühren = 143.504 USD


Der Einfachheit halber enthält die obige Berechnung weder die Gebühr für Vorgänge pro Objekt (0,40 USD/1 Mio.) noch die Kosten für die Auflistung (5 USD/1 Mio.). Bei sehr großen Repatriierungsprojekten können wir Objekte auch komprimieren, bevor wir sie über das Netzwerk senden, wodurch Sie einen Teil der Kosten für Ausgangsgebühren sparen.


Eine weitere Möglichkeit besteht darin, AWS Snowball zum Übertragen von Objekten zu verwenden. Snowball-Geräte haben jeweils eine Kapazität von 80 TB, daher wissen wir im Voraus, dass wir 20 davon für unsere Rückführungsbemühungen benötigen. Die Gebühr pro Gerät umfasst 10 Tage Nutzung plus 2 Tage für den Versand. Zusätzliche Tage sind für 30 USD pro Gerät verfügbar.


Servicegebühr für 20 Snowball-Geräte (je 300 USD) = 6.000 USD

R/T-Versand (3-5 Tage zu 400 USD/Gerät) = 8.000 USD

S3-Datenausgang (0,02 $/GB) = 30.682 $

Gesamte Snowball-Gebühren = 38.981,93 USD


AWS berechnet Ihnen Standardgebühren für Anfragen, Speicher und Datenübertragungen für das Lesen und Schreiben von AWS-Diensten, einschließlich Amazon S3 Und AWS-Schlüsselverwaltungsdienst (KMS) . Es gibt weitere Überlegungen bei der Arbeit mit Amazon S3-Speicherklassen . Für S3-Exportaufträge werden Daten, die von S3 auf Ihr Snow Family-Gerät übertragen werden, zu den Standard-S3-Gebühren für Vorgänge wie LIST, GET und andere in Rechnung gestellt. Ihnen werden auch Standardtarife für Amazon CloudWatch Logs, Amazon CloudWatch Metrics und Amazon CloudWatch Events berechnet.


Jetzt wissen wir, wie lange die Migration dieser riesigen Datenmenge dauern wird und wie hoch die Kosten sind. Treffen Sie eine geschäftliche Entscheidung darüber, welche Methode Ihren Anforderungen am besten entspricht, basierend auf der Kombination aus Zeitaufwand und Kosten.


An diesem Punkt kennen wir auch die Anforderungen an die Hardware, die für den Betrieb von MinIO vor Ort oder in einer Colocation-Einrichtung erforderlich ist. Nehmen Sie die oben genannte Anforderung für 1,5 PB Speicher, schätzen Sie das Datenwachstum und konsultieren Sie unsere Empfohlene Hardware und Konfiguration Seite und Auswahl der besten Hardware für Ihre MinIO-Bereitstellung .


Der erste Schritt besteht darin, Ihre S3-Buckets in MinIO neu zu erstellen. Dies müssen Sie unabhängig davon tun, wie Sie Objekte migrieren möchten. Obwohl sowohl S3 als auch MinIO Objekte mit serverseitiger Verschlüsselung speichern, müssen Sie sich keine Gedanken über die Migration von Verschlüsselungsschlüsseln machen. Sie können eine Verbindung zu Ihrem KMS Ihrer Wahl herstellen mit MinIO KES zur Verwaltung von Verschlüsselungsschlüsseln . Auf diese Weise werden automatisch neue Schlüssel für Sie generiert, wenn verschlüsselte Mandanten und Buckets in MinIO erstellt werden.


Sie haben mehrere Möglichkeiten, Objekte zu kopieren: Batch-Replikation und mc mirror . Mein vorheriger Blogbeitrag, So repatriieren Sie von AWS S3 zu MinIO enthält detaillierte Anweisungen für beide Methoden. Sie können Objekte direkt von S3 auf das lokale MinIO kopieren oder einen temporären MinIO-Cluster verwenden, der auf EC2 ausgeführt wird, um S3 abzufragen und dann auf das lokale MinIO zu spiegeln.


Normalerweise verwenden Kunden von uns geschriebene Tools in Kombination mit der Datenmigrationshardware und -diensten von AWS Snowball oder TD SYNNEX, um größere Datenmengen (über 1 PB) zu verschieben.


MinIO hat sich kürzlich mit Western Digital und TD SYNNEX zusammengeschlossen, um eine Snowball-Alternative anzubieten. Kunden können Zeitfenster für die Lieferung der Western Digital-Hardware vereinbaren und während der Mietdauer nur das bezahlen, was sie benötigen. Noch wichtiger ist, dass der Service nicht an eine bestimmte Cloud gebunden ist. Das heißt, das Unternehmen kann den Service nutzen, um Daten in, aus und zwischen Clouds zu verschieben – alles unter Verwendung des allgegenwärtigen S3-Protokolls. Weitere Einzelheiten zum Service finden Sie auf der Datenmigrationsdienst Seite auf der TD SYNNEX-Site.


Bucket-Metadaten, einschließlich Richtlinien und Bucket-Eigenschaften, können mit get-bucket gelesen werden. S3-API-Aufrufe und dann in MinIO einrichten. Wenn Sie sich für MinIO SUBNET anmelden, arbeiten unsere Techniker mit Ihnen zusammen, um diese Einstellungen von AWS S3 zu migrieren: Zugriffsverwaltung basierend auf Zugriffsschlüssel/geheimem Schlüssel, Richtlinien zur Lebenszyklusverwaltung, Verschlüsselung, anonymer öffentlicher Zugriff, Unveränderlichkeit und Versionierung. Ein Hinweis zur Versionierung: Die AWS-Versions-ID bleibt bei der Datenmigration normalerweise nicht erhalten, da jede Versions-ID eine interne UUID ist. Dies ist für Kunden im Großen und Ganzen kein Problem, da Objekte normalerweise beim Namen aufgerufen werden. Wenn jedoch die AWS-Versions-ID erforderlich ist, haben wir eine Erweiterung, die sie in MinIO beibehält, und wir helfen Ihnen, sie zu aktivieren.


Achten Sie besonders auf IAM- und Bucket-Richtlinien . S3 wird nicht der einzige Teil der AWS-Infrastruktur sein, den Sie zurücklassen. Sie werden viele Servicekonten für Anwendungen haben, die beim Zugriff auf S3-Buckets verwendet werden. Dies wäre ein guter Zeitpunkt, um alle Ihre Servicekonten aufzulisten und zu prüfen. Dann können Sie entscheiden, ob Sie sie in Ihrem Identitätsanbieter neu erstellen möchten oder nicht. Wenn Sie sich für die Automatisierung entscheiden, verwenden Sie Amazon Cognito, um IAM-Informationen mit externen OpenID Connect IDPs und AD/LDAP zu teilen.


Achten Sie besonders auf das Data Lifecycle Management, wie z. B. Objektaufbewahrung, Objektsperre und Archivierung/Tiering. Führen Sie für jeden Bucket eine get-bucket-lifecycle-configuration aus, um eine menschenlesbare JSON-Liste mit Lebenszyklusregeln zu erhalten. Sie können AWS S3-Einstellungen problemlos mithilfe der MinIO-Konsole oder des MinIO-Clients (mc) neu erstellen. Verwenden Sie Befehle wie get-object-legal-hold und get-object-lock-configuration um Objekte zu identifizieren, die eine besondere Sicherheits- und Governance-Behandlung erfordern.


Wenn wir schon beim Thema Lebenszyklus sind, lassen Sie uns kurz über Backup und Disaster Recovery sprechen. Möchten Sie einen zusätzlichen MinIO-Cluster, auf den Sie für Backup und Disaster Recovery replizieren können?


Nachdem Objekte von AWS S3 nach MinIO kopiert wurden, ist es wichtig, die Datenintegrität zu überprüfen. Der einfachste Weg hierfür besteht darin, mit dem MinIO-Client mc diff für alte Buckets in S3 und neue Buckets auf MinIO auszuführen. Dadurch wird die Differenz zwischen den Buckets berechnet und eine Liste nur der Objekte zurückgegeben, die fehlen oder sich unterscheiden. Dieser Befehl verwendet die Argumente der Quell- und Ziel-Buckets. Der Einfachheit halber können Sie Folgendes erstellen: Aliase für S3 und MinIO, damit Sie nicht immer wieder vollständige Adressen und Anmeldeinformationen eintippen müssen. Beispiel:


 mc diff s3/bucket1 minio/bucket1


Die gute Nachricht ist, dass Sie lediglich vorhandene Apps auf den neuen MinIO-Endpunkt richten müssen. Konfigurationen können über einen bestimmten Zeitraum hinweg App für App neu geschrieben werden. Die Datenmigration im Objektspeicher ist weniger störend als bei einem Dateisystem. Ändern Sie einfach die URL, um von einem neuen Cluster aus zu lesen/schreiben. Beachten Sie, dass AWS-Dienste, die Sie bisher zur Unterstützung Ihrer Anwendungen verwendet haben, in Ihrem Rechenzentrum nicht mehr vorhanden sind. Sie müssen sie also durch ihr Open-Source-Äquivalent ersetzen und etwas Code neu schreiben. Beispielsweise kann Athena durch Spark SQL, Apache Hive und Presto, Kinesis durch Apache Kafka und AWS Glue durch Apache Airflow ersetzt werden.


Wenn Ihre S3-Migration Teil einer größeren Anstrengung ist, eine ganze Anwendung vor Ort zu verlagern, dann haben Sie wahrscheinlich S3-Ereignisbenachrichtigungen um nachgelagerte Dienste aufzurufen, wenn neue Daten eintreffen. Wenn dies der Fall ist, dann keine Angst - MinIO unterstützt Ereignisbenachrichtigung auch. Die einfachste Migration wäre hier die Implementierung eines benutzerdefinierten Webhooks zum Empfangen der Benachrichtigung. Wenn Sie jedoch ein Ziel benötigen, das langlebiger und widerstandsfähiger ist, verwenden Sie Messaging-Dienste wie Kafka oder RabbitMQ. Wir unterstützen auch das Senden von Ereignissen an Datenbanken wie PostgreSQL und MySQL.


Nachdem Sie die Repatriierung abgeschlossen haben, ist es an der Zeit, Ihre Aufmerksamkeit auf Speicherbetrieb, Überwachung und Optimierung zu richten. Die gute Nachricht ist, dass für MinIO keine Optimierung erforderlich ist – wir haben die Optimierung direkt in die Software integriert, damit Sie wissen, dass Sie die beste Leistung für Ihre Hardware erhalten. Sie sollten mit der Überwachung Ihres neuen MinIO-Clusters beginnen, um die Ressourcennutzung und Leistung kontinuierlich zu bewerten. MinIO stellt Folgendes bereit: Metriken über einen Prometheus-Endpunkt, den Sie in Ihrem Überwachungs- und Warnplattform Ihrer Wahl Weitere Informationen zur Überwachung finden Sie unter Multi-Cloud-Überwachung und -Alarmierung mit Prometheus und Grafana Und Metriken mit MinIO unter Verwendung von OpenTelemetry, Flask und Prometheus .


Mit Subnetz , wir unterstützen Sie, wenn es um Operationen am zweiten Tag mit MinIO. Abonnenten erhalten Zugriff auf integrierte automatisierte Tools zur Fehlerbehebung, damit ihre Cluster reibungslos laufen. Über unser Support-Portal erhalten sie außerdem unbegrenzten, direkten Support in Echtzeit. Mit einer jährlichen Architekturüberprüfung helfen wir Ihnen außerdem, Ihre Investition in Objektspeicher zukunftssicher zu machen.

Migrieren und speichern

Es ist kein Geheimnis, dass die Zeiten vorbei sind, in denen man Cloud-Anbietern Blankoschecks ausstellen konnte. Viele Unternehmen prüfen derzeit ihre Cloud-Ausgaben, um mögliche Einsparungen zu finden. Jetzt haben Sie alles, was Sie brauchen, um mit der Migration von AWS S3 zu MinIO zu beginnen, einschließlich konkreter technischer Schritte und eines finanziellen Rahmens.


Wenn Sie sich für die Möglichkeit interessieren, Kosten für die Repatriierung zu sparen, dann kontaktieren Sie uns bitte unter [email protected] .


Erscheint auch hier .