Wir freuen uns, die Cloudflare-Lösung R2 Storage vorstellen zu können. Entwickler können damit große Mengen unstrukturierter Daten speichern, sodass die Möglichkeiten von Cloudflare erweitert und zugleich die normalerweise mit Cloud-Speichern verbundenen Bandbreitengebühren für ausgehenden (Egress) Datenverkehr entfallen.
Cloudflare R2 Storage beinhaltet vollständige Kompatibilität mit der S3-API und arbeitet Hand in Hand mit bestehenden Tools und Anwendungen, ohne dass diese angepasst werden müssen.
Wir wollen uns den R2-Speicher jetzt einmal genauer ansehen.
R2 steht für „Really Requestable“ (in hohem Maße anforderbar)
Bei einem Objektspeicher, manchmal auch als Blob-Speicher bezeichnet, werden große unstrukturierte Dateien auf beliebige Weise gespeichert. Er eignet sich beispielsweise gut für die Speicherung von Medien- oder Protokolldateien, aber auch für anwendungsspezifische Metadaten. Diese Methode bietet eine einheitliche Latenz beim Abruf der Daten, eine hohe Langlebigkeit und unbegrenzte Speicherkapazität.
Die geläufigste API für Objektspeicher ist Simple Storage Service (S3) von Amazon, weshalb wir diese bei R2 implementiert haben. Als S3 im Jahr 2006 eingeführt wurde, waren Cloud-Speicher-Dienste für Entwickler ein Segen. Auch wenn sich dies nicht von einem Tag auf den anderen vollzogen hat: In den vergangenen 15 Jahren konnte der Cloud-Speicher und der von ihm versprochene unbegrenzte Speicherplatz die Entwickler überzeugen.
So revolutionär die Cloud-Speicherung auch ist, so gibt es auch eine Kehrseite der Medaille: Die Rückführung der Daten. Im Lauf der Zeit haben Unternehmen riesige Datenmengen in den Netzen von Cloud-Anbietern angehäuft. Wenn sie diese Daten abrufen wollen, sind sie mit horrenden Gebühren für ausgehenden Traffic konfrontiert, die zu dem Kundennutzen in keinerlei Verhältnis stehen – es handelt sich lediglich um eine Art „Steuer“, an deren Zahlung sich die Entwickler gewöhnt haben.
Hier kommt nun R2 ins Spiel.
Bei der herkömmlichen Objektspeicherung werden den Entwicklern drei Dinge in Rechnung gestellt: Bandbreite, Speichergröße und Speicheroperationen.
R2 baut auf dem Engagement von Cloudflare in der Bandwidth Alliance auf und erhebt bei gespeicherten Objekten keinerlei Gebühren für ausgehenden Datenverkehr – unabhängig von der Anfragefrequenz. Die Egress-Bandbreite ist für Objektspeicher nutzende Entwickler oft der größte Kostenfaktor und lässt sich auch am schwersten vorhersagen. Die Beseitigung dieses Problems ist ein großer Gewinn für den offenen Zugang zu den in der Cloud gespeicherten Daten.
Das bedeutet nicht, dass wir die Bandbreitenkosten auf andere Bereiche verlagern. Cloudflare R2 wird zu einem Preis von 0,015 US-Dollar pro GB gespeicherter Daten im Monat angeboten. Die Lösung ist damit deutlich günstiger als die der großen etablierten Anbieter.
Ein seltener Zugriff auf Objekte ist für die Provider oft trivial, verursacht aber pro Operation die gleichen Gebühren. Wir halten es nicht für fair, dass ein typischer Objektspeicher einem Entwickler, der eine Anfrage pro Sekunde stellt, den gleichen Preis in Rechnung stellt wie einem Unternehmen, das Tausende von Anfragen in der Sekunde stellt – häufig sogar einen höheren Preis, wenn man die ausgehandelten Mengenrabatte berücksichtigt.
Auf der anderen Seite können Anbieter, die auf einen seltenen Zugriff ausgelegt sind, in der Regel nicht für eine intensive Nutzung skaliert werden.
Seltene Speichervorgänge unterhalb eines bestimmten Schwellenwerts – der nach derzeitiger Planung im einstelligen Bereich pro Sekunde liegen soll – werden von R2 nicht in Rechnung gestellt. Oberhalb dieser Spanne berechnet R2 deutlich weniger pro Operation als die großen Provider. Unser Objektspeicher wird bei seltenem Zugriff extrem kostengünstig und dennoch in der Lage sein, bei umfangreicherem Maßstab mit den großen, etablierten Anbietern mitzuhalten und diese preislich zu unterbieten.
Dieser niedrigere Preis geht also nicht mit einer geringeren Skalierbarkeit einher. Hinter den Kulissen verwaltet R2 automatisch und intelligent die Datenkategorisierung (das Tiering), um sowohl die Performance bei Spitzenlast als auch die Kosten für selten angeforderte Objekte zu senken. Wir haben uns von komplexen manuellen Tiering-Richtlinien verabschiedet, um das zu erreichen, was sich Entwickler schon immer von Objektspeichern gewünscht haben: grenzenlose Skalierbarkeit zu den geringstmöglichen Kosten.
R2 steht für „Repositioning Records“ (Repositionierung von Datensätzen)
Gebührenfreier Ausgangs-Traffic bedeutet, dass Objekte leicht abgerufen werden können. Aber wie sieht es mit Hinzufügen von Objekten aus? Die Migration von Daten zwischen Cloud-Anbietern ist selbst dann fehleranfällig und kostspielig, wenn beide die vollständige S3-API unterstützen.
Um dies zu erleichtern, ohne dass Änderungen an den vorhandenen Tools vorgenommen werden müssen, bietet Cloudflare einen Migrationsdienst von S3-kompatiblen Cloud-Speicher-Diensten an. Dieser Migrator macht das manuelle Hochladen von Objekten weniger mühsam, indem er Objekte schrittweise nach R2 kopiert, sobald sie angefordert werden. Diese Multi-Cloud-Architektur erlaubt es, mit der Bereitstellung von Objekten aus R2 zu beginnen, noch während diese migriert werden. Dadurch können Kosten gespart und gleichzeitig die Vorteile von Multi-Cloud-Modellen genutzt werden.
Unsere Vision für R2 umfasst einen Mehrregionenspeicher, der Objekte automatisch an den Standorten repliziert, von denen sie häufig angefordert werden. Wie bei Durable Objects planen wir die Einführung von Einschränkungen zur Einhaltung der lokalen Gesetze. Das wird es Entwicklern ermöglichen, komplizierte Anforderungen hinsichtlich Datenhoheit über eine einfache API zu erfüllen.
R2 steht für „Ridiculously Reliable“ (absurd zuverlässig)
Der Kern dessen, was Object Storage so großartig macht, ist die Zuverlässigkeit. So standen bei der Entwicklung von R2 die Langlebigkeit und Ausfallsicherheit der Daten im Mittelpunkt. R2 bietet eine jährliche Zuverlässigkeit von 99,999999999 % (elf Neunen) : So hoch liegt die Wahrscheinlichkeit, dass es nicht zu einem Datenverlust kommen wird. Wenn Sie 1.000.000 Objekte auf R2 speichern, können Sie davon ausgehen, dass eines davon alle 100.000 Jahre verloren geht – das entspricht der von anderen großen Anbietern gebotenen Langlebigkeit. R2 ist resistent gegen regionale Ausfälle und repliziert Objekte mehrfach, um eine hohe Verfügbarkeit zu gewährleisten.
Um die Zuverlässigkeit sicherzustellen, ist R2 mit Redundanz über eine große Anzahl von Regionen hinweg konzipiert. Wir planen, mit einer automatischen weltweiten Verteilung zu beginnen und wie oben beschrieben regionalspezifische Kontrollen hinzuzufügen, wenn Daten lokal gespeichert werden müssen.
R2 steht für „Radically Reprogrammable“ (radikal reprogrammierbar)
R2 ist vollständig mit der serverlosen Laufzeitumgebung Cloudflare Workers integriert. Ein Worker kann mit einem bestimmten Bucket verknüpft werden und Objekte lassen sich beim Schreiben in oder Auslesen aus Speicher-Buckets dynamisch umwandeln. Dank der tiefgreifenden Integration zwischen Workers und R2 ist der Aufbau von Datenpipelines und die Bearbeitung von Objekten kinderleicht.
R2 ist so konzipiert, dass sich die Lösung in die übrigen Produkte von Cloudflare integrieren lässt. Beispielsweise ist geplant, Durable Objects mit R2 als Backup-Ziel zu konfigurieren und eine automatische Integration zwischen R2 und dem Cloudflare-Cache zu ermöglichen, um die Cache-Lebensdauer für sich selten ändernde Objekte erheblich zu verlängern.
Was wird man mit Cloudflare R2 entwickeln können?
Mit Langzeitspeichern lässt sich eine Menge anstellen, vor allem, wenn man daneben auch auf die Workers-Rechenplattform zugreifen kann.
So wird zum Beispiel das Streaming von Daten einer großen Anzahl von IoT-Geräten mit R2 zum Kinderspiel. Ausgehend von einem Worker, der die Daten umwandelt und bearbeitet, kann R2 große Mengen von Sensordaten erfassen und kostengünstig speichern. Da keine Gebühren für ausgehenden Datenverkehr anfallen, können Datenmengen problemlos je nach Bedarf in mehrere Datenbanken und Analyselösungen migriert werden, was die Speicherkosten drastisch senkt. Mit der Möglichkeit, einen Worker auch auf ausgehendem Traffic laufen zu lassen, ist die Datenpipeline selbst flexibler.
R2 ist zudem ein idealer Ort für CDN-Assets und große Mediendateien. Bei großen Dateien kann R2 die Cache-Lebensdauer beträchtlich verlängern und gleichzeitig die Egress-Gebühren drastisch senken. In Kombination mit der Cache-API und den Workern lassen sich Inhalte dynamisch zwischenspeichern, um einen weltweiten Zugriff mit geringer Latenz zu ermöglichen.
Vor allem die Tatsache, dass bei R2 keine Gebühren für die Egress-Bandbreite anfallen, macht die Lösung ideal für das Speichern von Inhalten, auf die häufig zugegriffen wird. R2 lässt sich heute zur Bewältigung großer Anfragelasten und zum dynamischen Ordnen von Objekten gut skalieren, um die beste Performance zu den niedrigsten Kosten zu bieten. Dank dieses dynamischen Tiering können wir am günstigsten sein und gleichzeitig Spitzenleistungen unterstützen – und das ganz ohne Nutzerkonfiguration.
Zugang zu Cloudflare R2
R2 befindet sich derzeit in der Entwicklung – Sie können sich hier auf die Warteliste setzen lassen, um Zugang zu erhalten. Wir freuen uns auf die Zusammenarbeit mit einer Reihe früher Nutzer zur Verfeinerung und zum Testen des Produkts. Wir werden in Kürze eine Open Beta-Phase ankündigen, in der sich jeder Nutzer für den Dienst anmelden kann.
Wir freuen uns darauf, das Produkt weiter zu entwickeln und die Open Beta-Phase voranzutreiben. Außerdem haben wir große Ideen dazu, wie die Zukunft der Speicherung an der Cloudflare-Edge aussehen könnte. Wenn Sie ein/e Ingenieur/in für verteilte Systeme sind und uns dabei helfen möchten, die Zukunft von „State at the Edge“ zu gestalten, steigen Sie bei uns ein!