Sollten Sie eine S3-Alternative für die Objektspeicherung verwenden?

0
12
Shutterstock/Gorodenkoff

Der Simple Storage Service (S3) von Amazon bietet eine sehr nützliche Schnittstelle zum Speichern von Objekten in einem redundanten Cloud-Speicher, bei dem Sie sich nicht um die zugrunde liegende Hardware kümmern müssen. Es ist nicht nur ein von Amazon angebotener Dienst, sondern auch eine Industriestandard-API, und es gibt viele Dienste, die damit kompatibel sind.

What Ist S3 kompatibel?

Wenn Sie zu einem anderen Cloud-Anbieter wechseln, müssen Sie in vielen Fällen viele Ihrer Anwendungen überarbeiten. Wenn Sie jedoch S3 als Objektspeicher-Back-End verwenden, können Sie nahtlos zu vielen anderen Diensten wechseln.

Das liegt daran, dass S3 ein offener API-Standard ist. AWS Simple Storage Service ist nur eine Implementierung dieses Standards; Es ist nativ und bietet natürlich den besten Support, aber es gibt andere Dienste, die eine akzeptable Leistung und Stabilität bieten, oft zu geringeren Kosten.

Der Wechsel zu diesen Diensten ist einfach, —Sie müssen lediglich den URL-Endpunkt ändern, den Ihre Anwendung verwendet, und in der Regel ist es sinnvoll, nach einigen kleinen Anpassungen an der Schlüsselhandhabung fortzufahren. Sie müssen Ihre Daten mit rclone migrieren, aber es ist kein schwieriger Prozess, nur in einigen Fällen ein langer.

Es ist kein Geheimnis, dass AWS teuer ist. Bei S3 ist das nicht anders. Das Speichern von Dateien ist zwar sehr günstig, der eigentliche Zugriff auf diese Dateien jedoch nicht. Bei einer typischen schweren Lese-/Schreib-Workload, die Live-Dateien für Benutzer bereitstellt, ist das Speichern der Dateien normalerweise billig; die höchsten Kosten sind tatsächlich AWS-Datenübertragungsgebühren und S3-Anforderungsgebühren:

Werbung

Bei einer solchen Aufschlüsselung von Cost Explorer könnten Sie versucht sein, dies in Betracht zu ziehen ein Drittanbieterdienst, der bei den Datenübertragungsgebühren für Ihre Arbeitslast günstiger ist.

Die beiden größten Konkurrenten von AWS S3 kommen von Google und Microsoft. Google hat seinen unkreativ benannten “Cloud Storage” und Microsoft Azure verfügt über Azure Blob Storage. Der Speicher von Google ist S3-kompatibel und lässt sich auch relativ einfach migrieren. Azure hingegen ist nicht S3-kompatibel, obwohl es Tools wie S3Proxy gibt, die sie zusammenflicken können.

Allerdings berechnen Ihnen alle Speicherdienste der drei großen Cloud-Anbieter hohe Gebühren dafür Daten. Sie sind für Unternehmenskunden konzipiert, und wenn Sie ein kleines Unternehmen sind, das versucht, Ihre Kosten zu minimieren, sollten Sie sich woanders umsehen. Es gibt andere alternative Cloud-Anbieter wie Digital Ocean und Vultr, die schlankere Preismodelle mit ähnlicher Servicequalität anbieten.

Digital Ocean

< /p>

Digital Ocean ist ein Cloud-Anbieter, der auf Einfachheit ausgelegt ist. Es bietet zwar nicht so viele Funktionen wie große Anbieter wie AWS, macht es aber normalerweise aufgrund der angebotenen Dienste richtig. Einer dieser Dienste ist der Objektspeicher, wobei Buckets Spaces genannt werden. Dies empfehlen wir, wenn Sie sich von AWS entfernen möchten.

Leerzeichen sind ziemlich einfach. Der Basispreis beträgt 5 $ pro Monat und beinhaltet 250 GB Speicherplatz sowie ganze TB ausgehende Datenübertragung. Dies ist ein wahnsinnig gutes Angebot&8212;die gleiche Nutzung würde auf AWS S3 über 90 US-Dollar kosten.

Zusätzlicher Datenspeicher kostet 0,02 US-Dollar pro GB, ziemlich Standard im Vergleich zu S3 (obwohl höher, wenn Sie ein billigeres Archiv verwenden möchten Speicher) und zusätzliche Daten sind mit 0,01 $ pro übertragenem GB angemessen, was 90 % günstiger ist als die AWS-Preise.

Werbung

Dies ist natürlich mit einigen Einschränkungen verbunden, und leider sind mit diesem großartigen Angebot noch viel mehr Nachteile und Bedingungen verbunden.

  • 750 Anfragen pro IP-Adresse an alle Ihre Spaces.< /li>
  • 150 kombinierte Operationen pro Sekunde an einen beliebigen Space, ohne GET-Anfragen.
  • 240 Operationen insgesamt, einschließlich GET-Anfragen.
  • 5 PUT- oder COPY-Anfragen pro 5 Minuten bis jedes einzelne Objekt in einem Space

Obwohl diese Ratenlimits nicht großartig sind, sind die Limits ziemlich großzügig und Sie werden sie wahrscheinlich nicht erreichen. Wenn Sie kurz vor dem Überschreiten stehen, können Sie deren Auswirkungen minimieren, indem Sie mehrere Leerzeichen verwenden. Wenn Sie sich nicht sicher sind, können Sie Bucket-Metriken in S3 aktivieren, um Ihre aktuelle Nutzung zu überprüfen.

VERWANDTE: So aktivieren und Anzeigen von Anforderungsmetriken für eine AWS S3-Bucket in CloudWatch

Außerdem erfordern Spaces mit über 3 Millionen Objekten oder 1,5 Millionen mit aktivierter Versionsverwaltung möglicherweise “zeitweilige Wartungsintervalle” um eine konstante Leistung zu gewährleisten. Ich persönlich habe jedoch einen Bucket mit über 2 Millionen versionierten Objekten, bei dem es über 6 Monate anscheinend keine nennenswerten Ausfallzeiten gegeben hat, daher ist dies möglicherweise nicht üblich.

Ein großer Nachteil von Spaces im Vergleich zu S3 ist die Schnittstelle. Spaces ist einfach, und wenn Sie nur Ihre Website-Inhalte hochladen oder einige grundlegende Dateien speichern möchten, ermöglicht die Weboberfläche das Hochladen, Herunterladen und Bearbeiten der meisten Einstellungen. Wenn Sie jedoch viele Dateien speichern oder eine erweiterte Konfiguration benötigen, ist dies ehrlich gesagt ziemlich schlecht und Sie müssen hauptsächlich über die S3-API damit arbeiten.

Beispielsweise verfügt —Spaces nicht einmal über einen Webeditor zum Auswählen Ihrer Lebenszykluskonfiguration, der das Speichern alter Versionen von Objekten übernimmt, die als Backups verwendet werden, falls der Benutzer gelöscht wird. Das bedeutet auch, dass es keine Möglichkeit gibt, auf versionierte Objekte zuzugreifen oder sie zu löschen, ohne die Versionen über die API aufzulisten und direkt über die Versions-ID darauf zuzugreifen.

Sie haben auch nicht viel Dokumentation. Um beispielsweise die Versionierung zu aktivieren, mussten wir die eigene Dokumentation von S3 konsultieren, um den meist ignorierten Endpunkt PutBucketVersioning zu verwenden, der glücklicherweise von Spaces unterstützt wird, obwohl er in den Dokumentationen von DO ignoriert wird. Sie müssen es über diesen Endpunkt aktivieren:

PUT ?versioning <VersioningConfiguration xmlns=”http://s3.amazonaws.com/doc/2006-03-01/”> <Status>Aktiviert</Status> </VersioningConfiguration>

Und dann den Versionsablauf aktivieren:

PUT ?lifecycle <LifecycleConfiguration xmlns=”http://s3.amazonaws.com/doc/2006-03-01/”> <Regel> <ID>Bucket</ID> <Präfix>*</Präfix> <Status>Aktiviert</Status> <Nicht aktuelle VersionAblauf> <NoncurrentDays>90</NoncurrentDays> </NoncurrentVersionExpiration> </Regel> </LifecycleConfiguration> Werbung

API-Schlüssel sind auch sehr einfach. Sie haben keine granulare Kontrolle über einzelne Buckets, Objekte oder alles andere, was mit AWS IAM geliefert wird. Dies kann ein Problem sein, wenn Sie vorhaben, Schlüssel an Dritte weiterzugeben.

Insgesamt ist die Erfahrung mit Digital Ocean definitiv nicht annähernd so gut wie AWS S3. Wenn Sie jedoch mit den Limits einverstanden sind und die API für bestimmte Aufgaben nicht verwenden möchten, können Sie mit Sicherheit eine Menge Geld bei den Bandbreitenkosten sparen.

Selbstveranstalter

Da S3 ein offener Standard ist, können Sie ihn auch selbst hosten , was für viele Menschen vorzuziehen ist. Es gibt viele Tools, um dies zu tun, aber eines der besten ist MinIO, das auf Kubernetes (K8s) läuft.

Auf K8s zu sein bedeutet, dass Sie es in jeder öffentlichen Cloud ausführen können, einschließlich der Ausführung über Serverlos K8s-Dienste wie AWS EKS. In diesem Fall fallen jedoch immer noch Bandbreitenkosten an.

Wo MinIO wirklich glänzt, sind dedizierte Server, Hybrid-Cloud-Lösungen und die Ausführung in lokalen Rechenzentren. Wenn Sie für eine dedizierte Netzwerkverbindung zu einem Server bezahlen, werden Sie nicht müde, wenn Sie diese Verbindung sättigen. Dadurch kann selbst gehosteter Speicher sehr günstig werden, wenn Sie vorhaben, Endbenutzern viele Daten bereitzustellen.

Auch die Ausführung auf eigener Hardware unterliegt nicht den gleichen Einschränkungen wie Dienste wie S3. Sie können MinIO auf blitzschnellen Servern hosten und eine bessere Leistung bei hohen Lese-/Schreib-Workloads erzielen (und Ihnen werden keine Anforderungen in Rechnung gestellt). Natürlich müssen Sie die Hardwarekosten für diese Leistung bezahlen.

Werbung

Wo es schief geht, ist die Redundanz—weil S3 Ihre Daten an so vielen verschiedenen Orten speichert— 8217;s im Grunde garantiert, immer zu arbeiten und Ihre Daten nie zu verlieren, abgesehen von einem riesigen Meteor. MinIO hingegen kann auf einem einzelnen Server oder über eine verteilte Bereitstellung gehostet werden. Wenn Sie auf einem einzelnen Server hosten, werden Sie verarscht, wenn Ihre Instanz ausfällt. Es ist die billigste Option, aber wir empfehlen dringend mehrere Server in einem Cluster oder zumindest eine Art Backup auf S3 durchzuführen.

MinIO kann kostenlos unter der GNU AGPL-Lizenz gehostet werden, aber Sie haben gewonnen& #8217;keine Unterstützung erhalten. Unternehmenslizenzen beginnen bei 1.000 US-Dollar/Monat und bieten 24/7-Support sowie einen "Panik-Button" die ihre Datenwiederherstellungsingenieure bereithalten, um Ihnen bei der Behebung schwerwiegender Serverausfälle zu helfen.