BillionPhotos.com - stock.adobe.
Object Storage bei den drei großen Cloud-Betreibern
Wir betrachten Objektspeicherdienste der großen Cloud-Anbieter, Amazon S3, Microsoft Azure Blob und Google Cloud Storage, und wie man Kompatibilität zwischen ihnen erreichen kann.
Große Teile des Public Cloud Storage sind auf Objektspeicher aufgebaut. Block und File sind im Rechenzentrum dominant, aber in der Cloud, wo der Bedarf an großen Mengen an relativ billigem Speicher für unstrukturierte Daten besteht, ist Objektspeicher der König.
Es gibt vieles über die Vor- und Nachteile von Objekten im Vergleich zu Block- und Dateispeichern zu sagen. In diesem Artikel wollen wir über die Grundlagen der Objektspeicherumgebungen der drei großen Cloud-Anbieter berichten.
S3 hat sich als De-facto-Standard etabliert. Es entstand aus dem Simple Storage Service von Amazon und hat seinen Namen von dieser Objektspeicherplattform, hat sich aber zu einem weit verbreiteten Mittel entwickelt, um Speicher in der Cloud und in lokaler Objektspeicherhardware wie beispielsweise von Scality zu adressieren.
S3 ist jedoch nur die Sprache eines Unternehmens für die Speicherung von Cloud-Objekten. Microsoft hat Azure Blob Storage und Google hat seinen Cloud Storage. Diese Speicher sind sich ähnlich, aber sie können nicht direkt miteinander kommunizieren - wie also beeinflussen Kunden die Kommunikation zwischen den Cloud Object Storage-Umgebungen der drei großen Cloud-Anbieter?
Es ist durchaus möglich, Skripte zu schreiben, um Daten zwischen den drei Clouds zu verschieben und zu verwalten. Sucht man aber nach einer bereits verfügbaren Lösungen der Cloud-Anbieter, so bietet sich ein unausgeglichenes Bild.
Es ist zum Beispiel recht einfach, Konnektoren für die APIs zu finden, die den Zugriff auf S3-Speicher von Azure und Google Cloud Storage ermöglichen. Und Google spielt aus offensichtlichen Gründen eine große Rolle bei der Migration von Daten von S3 in die eigene Cloud. Es gibt jedoch kein Produkt oder keinen Service, das den Zugriff auf den Google-Objektspeicher von S3 aus ermöglicht.
Der Markt - und die relative Stärke der Anbieter - bestimmt weitgehend, was verfügbar ist. Aber der Hauptzweck dieses Artikels ist es, einen Überblick über die wichtigsten Objektspeicherumgebungen in der Cloud zu geben.
Cloud Object Storage im Allgemeinen
In jedem der Objektspeicherschemata der Anbieter kann ein Objekt ein beliebiges Datenobjekt sein - eine Datei, ein Bild oder eine andere Art von unstrukturiertem Inhalt - und wird typischerweise mit Metadaten gespeichert, die den Inhalt identifizieren und beschreiben.
Es wird auch in einer flachen Struktur gehalten, im Gegensatz zur Hierarchie der Dateistruktur, wie sie bei Network File System (NFS)-basiertem Speicher, Common Internet File System (CIFS)-basiertem Speicher oder Server Message Block (SMB)-basiertem Speicher zu finden ist.
Wo sich die Anbieter am meisten unterscheiden, ist das, was sie „Dinge“ nennen und wie Kunden auf Inhalte zugreifen oder diese zwischen verschiedenen Clouds verschieben können.
Amazon S3
In S3 können Objekte von einigen Kilobyte bis zu 5 Terabyte Größe variieren, und Objekte werden in Buckets angeordnet, die Administrations- und Mandantenfähigkeiten bieten. Auf S3 kann über HTTP(S), REST-basierte APIs und eine Webbrowser-Konsole zugegriffen werden.
Die Befehle umfassen „Put“ zum Speichern neuer Objekte, „Get“ zum Abrufen von Objekten und „Delete“ für den Löschvorgang. Ein Update eines Objekts ist ein Put-Auftrag, der ein bestehendes Objekt überschreibt oder eine neue Version davon erstellt, wenn die Versionierung aktiviert ist.
In S3 können Objekte einen vom Benutzer gewählten eindeutigen Namen und Befehle haben. Auf S3 kann über Software Development Kits für Sprachen wie Java, .Net, PHPund Ruby zugegriffen werden. Die Amazon S3 Storage Tiers umfassen Standard, Standard (Infrequent Access) und Glacier, mit unterschiedlichen Preisen und Zugriffszeiten.
Microsoft Azure Blob
Azure Blob ist das Microsoft-Äquivalent zu den S3-basierten Objektspeicherdiensten von Amazon. Dabei dient ein „Blob“ wie ein Bucket als Framework für die Aufbewahrung von Objekten.
Auf Objekte in Blob (von binären großen Objekten) kann über HTTP(S)-URL und von Benutzern oder Client-Anwendungen über die Azure Storage REST API, Azure PowerShell, Azure CLI oder eine Azure Storage Client-Bibliothek zugegriffen werden, die für mehrere Sprachen verfügbar sind, darunter .Net, Java, Node.js, Python, PHP und Ruby.
Sie können andere Befehle in Azure Blobs über die Shell und die Kommandozeilenschnittstelle (CLI) hochladen, herunterladen, auflisten, verschieben und ausführen. Über die API sind ähnliche Befehle wie Get, Put, Delete wie in S3 verfügbar. Die maximale Objektgröße beträgt 4,7 TByte.
S3-Benutzer können über S3-Befehle mit Tools, wie zum Beispiel S3Proxy, auf den Azure-Speicher zugreifen, wodurch Anwendungen, die die S3-API verwenden, auf den Blob-Speicher zugreifen können.
In der Zwischenzeit stellt (Scality's) Zenko Connect for Azure einen S3-API-kompatiblen Frontend-Übersetzer für Azure Blob Storage zur Verfügung.
Es gibt eine gewisse Interoperabilität zwischen Azure und Google Cloud Storage, mit der Möglichkeit, Daten von letzterer in die erste zu kopieren, z.B. mit Hilfe von Azure Data Factory.
Google Cloud-Plattform
Wie in S3 und Azure bietet Google Cloud Storage Speicherplatz für Objekte in Buckets.
Wie bei den anderen beiden Plattformen gibt es eine maximale Größe von 5 TByte für einzelne Objekte. Es gibt eine Aktualisierungsgrenze von einmal pro Sekunde für jedes Objekt, was bedeutet, dass schnelles Schreiben in ein einzelnes Objekt nicht skaliert werden kann.
Objekte sind über HTTP(S)-URLs adressierbar und Google hat eine eigene CLI, genannt gsutil, sowie APIs und Web Graphical User Interface (GUI)-Zugriff.
Google Cloud Storage wird in vier Klassen angeboten, die sich durch Verfügbarkeit, Zugriffszeit und Kosten auszeichnen: Multi-Regionale Speicherung, regionale Speicherung, Nearline-Speicherung und Coldline-Speicherung.
Es gibt eine gewisse Interoperabilität zwischen Google Cloud Storage und Amazon S3. Neben der Migration können Sie beispielsweise Buckets in S3 von der gsutil-Befehlszeile aus verwalten und mit ihnen arbeiten. Mit dem Storage Transfer Service von Google können Sie Objekte in S3 auswählen und verwalten.