Zurück zum Blog
Cloud
FortgeschrittenFürPlatform EngineersCloud-ArchitektenEngineering Manager
9 min

Cloudflare R2 vs S3: Was Egress wirklich kostet (und wo R2 stattdessen abrechnet)

Egress ist der Posten, der darüber entscheidet, ob Sie eine Cloud verlassen können. R2 berechnet dafür nichts, S3 pro Gigabyte — aber das ist nur die halbe Geschichte. Ein durchgerechneter Vergleich beider Rechnungen, das Kleingedruckte auf jeder Seite und was der EU Data Act verändert hat.

cloudflare-r2r2-preises3-preiseegress-gebuehrenobject-storagecloud-kosten
Titelbild: Cloudflare R2 vs S3: Was Egress wirklich kostet (und wo R2 stattdessen abrechnet)
Inhalt

Die Rechnung für Objektspeicher handelt selten vom Speichern.

Sehen Sie sich eine große S3-Rechnung an: Die Gigabyte, die Sie aufbewahren, sind oft die kleinere Hälfte. Die größere Hälfte sind die Gigabyte, die Sie versenden — und dieser Posten leistet etwas, das kein anderer leistet: Er macht das Weggehen teuer. Ein Datensatz, dessen Umzug Sie sich nicht leisten können, liegt nicht einfach irgendwo. Er wird dort festgehalten.

Cloudflare R2 greift genau diesen Posten an, indem es nichts dafür berechnet. Das ist die Schlagzeile, sie stimmt — und sie ist nicht die ganze Geschichte. Hier ist, was beide Seiten tatsächlich abrechnen, mit Zahlen aus der Dokumentation der Anbieter, geprüft im August 2026.

Warum es Egress überhaupt gibt

Bytes zu speichern ist günstig und wird weiter günstiger. Bytes über die Netzgrenze eines Anbieters zu bewegen ist der Punkt, an dem die Kostenkurve aufhört zu fallen — und an dem die Preismacht sitzt.

Die Asymmetrie ist der verräterische Teil. Bei S3 ist eingehender Datenverkehr aus dem Internet kostenlos. Ausgehender nicht. Kostenlos sind ebenfalls Daten zwischen Buckets derselben Region, Daten von S3 zu einem AWS-Dienst in derselben Region und Daten zu CloudFront. Ihre Daten hineinzubekommen kostet nichts; sie irgendwohin zu bekommen, das nicht AWS ist, kostet pro Gigabyte.

Das ist keine Verschwörung — Bandbreite kostet wirklich Geld — aber die Form bedeutet, dass der Zähler am schnellsten läuft, wenn Sie Ihre Daten anderswo verwenden.

Die Schlagzeilenzahlen

S3 stellt die ersten 100 GB pro Monat ausgehenden Internetverkehrs kostenlos, aggregiert über alle AWS-Dienste und Regionen (außer China und GovCloud). Danach zahlen Sie pro Gigabyte, abhängig von Region und Volumen. AWS’ eigene Dokumentation nennt in einem Beispiel zu Multi-Region Access Points 0,09 $ pro GB für die Übertragung aus Europa (Irland) ins Internet.

Regionsübergreifende Übertragung ist günstiger, aber weiterhin bepreist: AWS nennt 0,01 $/GB von N. Virginia nach Ohio und 0,02 $/GB von Oregon nach N. Virginia.

R2 berechnet 0 $ für Egress auf jeder Speicherklasse. Cloudflares Fußnote zieht die Grenze präzise: Egress direkt aus R2 — über die Workers-API, die S3-kompatible API oder r2.dev-Domains — löst keine Übertragungsgebühr aus. Hängen Sie andere kostenpflichtige Dienste an den Bucket, können diese abrechnen.

Bei 5 TB monatlichem Egress aus Irland — bequem innerhalb der ersten Preisstufe — sind das rund 450 $ auf einer einzigen Zeile, bevor überhaupt jemand etwas gespeichert hat.

Widerstehen Sie der Versuchung, das einfach hochzurechnen. AWS wendet Volumenstufen an und hält fest, dass diese Stufen die aggregierte Nutzung des ausgehenden Datenverkehrs über alle AWS-Dienste hinweg berücksichtigen. Der überall zitierte Gigabyte-Preis gilt nur für die erste Stufe; spätere Gigabyte kosten weniger. Eine flache Multiplikation über 50 TB überschätzt die Rechnung — die Richtung stimmt, die Summe nicht.

Anatomie einer S3- und einer R2-Rechnung im Vergleich: Speicher, Operationen und Egress, wobei Egress bei S3 bepreist und bei R2 kostenlos ist, während R2 das Gewicht auf Class-A- und Class-B-Operationen verlagert
Dieselbe Last, zwei Zähler. R2 entfernt die Egress-Zeile und verlagert das Gewicht auf Operationen.

Was R2 stattdessen abrechnet

R2 ist nicht kostenlos. Es verschiebt den Zähler von ausgehenden Bytes auf Operationen, und bei manchen Lasten läuft dieser Zähler schnell.

Was R2 stattdessen abrechnet
Standard Infrequent Access
Speicher 0,015 $ / GB-Monat 0,01 $ / GB-Monat
Class-A-Operationen 4,50 $ / Million 9,00 $ / Million
Class-B-Operationen 0,36 $ / Million 0,90 $ / Million
Datenabruf keiner 0,01 $ / GB
Egress kostenlos kostenlos

Das Freikontingent umfasst 10 GB-Monat Speicher, 1 Million Class-A- und 10 Millionen Class-B-Operationen pro Monat — nur Standard, nicht Infrequent Access.

Die Aufteilung zählt mehr als die Tarife:

  • Class A (teuer, verändernd): PutObject, CopyObject, ListObjects, ListBuckets, PutBucket, die gesamte Multipart-Familie, Lifecycle-Übergänge und PutBucket*-Konfigurationsaufrufe.
  • Class B (günstig, lesend): GetObject, HeadObject, HeadBucket, UsageSummary, GetBucket*-Aufrufe.
  • Kostenlos: DeleteObject, DeleteBucket, AbortMultipartUpload.

Beachten Sie: Auflisten ist Class A. Ein Job, der bei jedem Durchlauf einen Bucket auflistet, zahlt den teuren Tarif für etwas, das sich wie Lesen anfühlt.

Cloudflares eigenes Asset-Hosting-Beispiel macht den Punkt besser als jedes Argument. 100.000 Dateien à durchschnittlich 100 KB, 10 Millionen Lesevorgänge pro Tag:

Was R2 stattdessen abrechnet
Nutzung Abgerechnet
Speicher 100.000 × 100 KB 0,00 $ (im Freikontingent)
Class A 100.000 Schreibvorgänge 0,00 $ (im Freikontingent)
Class B 300 Millionen Lesevorgänge 104,40 $
Gesamt 104,40 $

Speicher: nichts. Egress: nichts. Die gesamte Rechnung besteht aus Leseoperationen. Wer zu R2 migriert und eine von Gigabyte dominierte Rechnung erwartet, wird von einer Rechnung überrascht, die von Anfragen dominiert wird.

Das Kleingedruckte, das die Summe bewegt

Die Grundpreise sind der einfache Teil. Diese Klauseln verändern, was Sie tatsächlich zahlen — und sie schneiden in beide Richtungen.

Fünf Abrechnungsdetails, die Objektspeicher verteuern: binäre Gigabyte bei S3, LIST zum PUT-Tarif, Gebühren für Bytes nach einem Verbindungsabbruch, Aufrundung auf die nächste Abrechnungseinheit bei R2 sowie Mindestgröße und Mindestdauer
Nichts davon steht im Grundpreis. Alles davon steht auf der Rechnung.

S3 misst in binären Gigabyte. AWS hält ausdrücklich fest, dass die S3-Speichernutzung in binären GB berechnet wird, wobei 1 GB 2³⁰ Bytes entspricht — ein Gibibyte. Wer sein Budget mit dezimalen Gigabyte kalkuliert hat, liegt um rund 7,4 % daneben, bevor irgendetwas anderes passiert.

Egress ist gestuft, und die Stufen gelten kontoweit. Der genannte Gigabyte-Preis gilt nur für die erste Stufe. AWS merkt an, dass die Preisstufen die aggregierte Nutzung des ausgehenden Datenverkehrs über alle AWS-Dienste hinweg berücksichtigen — Ihre S3-Rechnung hängt also davon ab, was CloudFront, EC2 und alles andere in diesem Monat hinausgeschickt haben. Das schneidet in beide Richtungen: Schätzungen mit einem einzigen Satz fallen zu hoch aus, und die Zuordnung pro Dienst ist schwieriger, als sie aussieht.

LIST wird bei S3 zum PUT-Tarif abgerechnet. Nicht zum GET-Tarif. AWS schreibt es direkt: “LIST requests for any storage class are charged at the same rate as S3 Standard PUT, COPY, and POST requests.” Sich durch einen großen Bucket zu blättern ist keine günstige Leseoperation.

Ein Verbindungsabbruch kann mehr kosten, als Sie erhalten haben. Das ist zweimal Lesen wert. AWS dokumentiert: Fordern Sie ein 10-GB-Objekt an und brechen nach 2 GB ab, versucht S3 den Stream zu stoppen, schafft das aber nicht sofort — abgerechnet werden können 3 GB. Clients, die Downloads aggressiv abbrechen, zahlen für Bytes, die niemand konsumiert hat.

R2 rundet auf die nächste Abrechnungseinheit auf. Cloudflares Beispiele: Eine Million und eine Operation wird als zwei Millionen abgerechnet; 1,1 GB-Monat als 2 GB-Monat. Bei kleinen Konten ist diese Rundung anteilig brutal.

Mindestwerte beißen auf beiden Seiten. S3 Standard-IA und One Zone-IA haben eine mindestens abgerechnete Objektgröße von 128 KB und 30 Tage Mindestdauer; Glacier-Stufen liegen bei 90 oder 180 Tagen und ergänzen 40 KB Metadaten je archiviertem Objekt. R2s Infrequent Access trägt eine Mindestdauer von 30 Tagen.

Unautorisierte Anfragen sind bei R2 kostenlos. Cloudflare hält fest, dass keine Gebühren anfallen, wenn dem Aufrufer die Berechtigung fehlt (HTTP 401). Gut zu wissen, wenn Ihr Bucket öffentlich adressierbar ist und Rauschen anzieht.

Wenn Infrequent Access mehr kostet als Standard

Die deutlichste Falle in R2s Preisliste ist die eigene günstigere Stufe. Cloudflare veröffentlicht beide Beispiele nebeneinander.

1.000 Objekte à 1 GB schreiben und jedes im Monat 1.000-mal lesen:

  • Standard: 14,85 $ gesamt (990 abrechenbare GB-Monate nach Freikontingent; Operationen im Freikontingent)
  • Infrequent Access: 29,90 $ gesamt

IA kostet das Doppelte. Die Mechanik: IA hat kein Freikontingent, die Class-A-Operationen kosten das Doppelte, die Class-B das 2,5-Fache, der Abruf kommt mit 0,01 $/GB hinzu, und die Mindestdauer von 30 Tagen bedeutet, dass fünf Tage Speicherung trotzdem 1.000 GB-Monate abrechnen statt 167.

Daraus folgt die Regel: Infrequent Access ist eine Wette darauf, dass Sie die Daten nicht lesen. Verlieren Sie die Wette, zahlen Sie mehr als mit Standard.

Was der EU Data Act verändert hat

Die Verordnung (EU) 2023/2854 — der Data Act — trat am 11. Januar 2024 in Kraft und gilt seit dem 12. September 2025. Zu ihren Maßnahmen gehören Regeln, die Kunden einen wirksamen Wechsel zwischen Anbietern von Datenverarbeitungsdiensten ermöglichen sollen, ausdrücklich mit dem Ziel, den EU-Cloud-Markt zu öffnen.

Interessant ist, wie sich das in einer Preisliste niederschlägt. Auf der S3-Preisseite von AWS steht inzwischen:

EU customers may request reduced data transfer rates for eligible use cases under the European Data Act. Please contact AWS Customer Support for more information.

Lesen Sie genau. Die Erleichterung existiert, und sie ist eine Anfrage, die Sie stellen müssen, für geeignete Anwendungsfälle, über den Support. Es ist keine Tarifänderung, die Ihrem Konto zugewiesen wird, weil Sie in der EU sitzen.

Das ist die praktische Form der Regulierung heute: Der Lock-in-Mechanismus ist verhandelbar geworden, nicht abwesend. Wer aus der EU heraus eine Migration weg von AWS plant, für den ist das Öffnen dieses Support-Tickets ein konkreter, datierbarer Schritt im Plan — keine Fußnote.

Also welches

Die Entscheidung lautet nicht “was ist billiger”, sondern welcher Zähler zu Ihrem Verkehr passt.

R2 gewinnt klar, wenn Bytes die Cloud verlassen. Öffentliche Asset-Auslieferung, Medien, Downloads, Backups, die von Systemen außerhalb von AWS gezogen werden — alles, was in Menge ins offene Internet geht. Dafür wurde R2 gebaut, und die Zahlen sind nicht knapp.

S3 bleibt sinnvoll, wenn Bytes nie hinausgehen. Sind Ihre Konsumenten EC2, Lambda, Athena oder Glue in derselben Region, zahlen Sie bereits null Egress. Diese Last zu R2 zu migrieren, um an einer Zeile zu sparen, die Ihnen nicht berechnet wird, ist Bewegung ohne Fortschritt.

Zählen Sie Operationen, bevor Sie sich festlegen. Eine Last mit vielen kleinen Objekten und hoher Anfragerate kann bei R2 mehr kosten, als sie an Egress spart. Cloudflares eigenes 104,40-$-Beispiel besteht vollständig aus Operationen.

Prüfen Sie, was Sie verlieren. R2 spricht die S3-API, aber “S3-kompatibel” ist nicht “S3-identisch”. Verifizieren Sie vor einer Migration die konkreten Funktionen, von denen Ihr Stack abhängt, statt Gleichwertigkeit anzunehmen.

Migrationswerkzeuge sind kostenlos, größtenteils. Cloudflares Super Slurper (Massenkopie) und Sippy (inkrementell, Migration beim Lesen) kosten nichts — Sie zahlen nur die Class-A-Operationen, die sie gegen Ihren R2-Bucket erzeugen. Ihr Quell-Bucket kann Ihnen die Lesevorgänge und den Egress auf dem Weg hinaus trotzdem berechnen, was die letzte Ironie der ganzen Anordnung ist: Das Weggehen kostet Egress.

Eine Checkliste vor dem Umzug

  1. Ziehen Sie den tatsächlichen Egress des letzten Monats in GB aus dem Cost Explorer — keine Schätzung.
  2. Zählen Sie Ihre Anfragen, getrennt nach Schreiben/Auflisten (Class A) und Lesen (Class B). Multiplizieren Sie mit R2s Tarifen.
  3. Prüfen Sie, wie viel Ihres Verkehrs AWS-intern in derselben Region bleibt. Dieser Teil ist bereits kostenlos und gewinnt nichts.
  4. Messen Sie den Speicher in binären und dezimalen Gigabyte neu, damit Sie Gleiches mit Gleichem vergleichen.
  5. Nutzt ein Bucket IA oder Glacier, prüfen Sie Mindestdauer und Mindestobjektgröße, bevor Sie irgendetwas umlagern.
  6. Sitzen Sie in der EU, eröffnen Sie das AWS-Support-Ticket zu den Data-Act-Übertragungstarifen — holen Sie sich die Zahl schriftlich, bevor Sie die Migration durchrechnen.
  7. Budgetieren Sie die einmaligen Kosten der Migration selbst: Lesevorgänge plus Egress auf der Quellseite.

Der eigentliche Punkt

Egress-Preise sind keine Bandbreitengebühr. Sie sind der Mechanismus, der gespeicherte Daten in gehaltene Kunden verwandelt — weshalb ein Wettbewerber, der genau diese Zeile angreift, immer Aufmerksamkeit bekommen würde, und weshalb irgendwann auch eine Regulierungsbehörde hinsah.

Aber “kostenloser Egress” ist eine Aussage über eine Zeile einer Rechnung, nicht über die Rechnung. Cloudflare berechnet Operationen, rundet auf und bestraft die falsche Speicherklasse genauso konsequent wie AWS. Der Anbieter hat gewechselt; die Notwendigkeit, das Kleingedruckte zu lesen, nicht.

Rechnen Sie Ihre eigene Last gegen beide Zähler. Für ein Medien-CDN lautet die Antwort anders als für eine Analytics-Pipeline, die us-east-1 nie verlässt — und wer etwas anderes behauptet, zitiert einen Grundpreis.


Weiterlesen: Wie Daten überhaupt beweglich bleiben, steht in Backups sind kein Disaster Recovery und Sovereign by Design. Zur Analytics-Seite der Speicherökonomie siehe BigQuery vs Snowflake.

Quellen: Alle Zahlen stammen aus der Anbieterdokumentation, geprüft im August 2026 — Cloudflare R2 Pricing (Stand 7. August 2026), Amazon S3 Pricing und die Data-Act-Seite der Europäischen Kommission. Tarife ändern sich; prüfen Sie vor jeder Budgetzusage die Kalkulatoren der Anbieter.

Häufig gestellte Fragen

Ist Cloudflare R2 wirklich kostenlos beim Egress?

Ja, mit einer präzisen Grenze. Cloudflares Preisdokumentation hält fest, dass der Egress direkt aus R2 — über die Workers-API, die S3-kompatible API oder r2.dev-Domains — auf keiner Speicherklasse Übertragungsgebühren auslöst, auch nicht bei Infrequent Access. Die Fußnote ergänzt den wichtigen Vorbehalt: Wenn Sie andere kostenpflichtige Dienste an einen R2-Bucket anbinden, können diese Dienste Ihnen etwas berechnen. Die Null gilt also für das Auslesen Ihrer Objekte aus R2, nicht für alles, was Sie davorschalten. Abgerechnet werden bei R2 der Speicher pro GB-Monat und die Operationen, aufgeteilt in Class A (Schreiben, Auflisten, Kopieren, Multipart) und Class B (Lesen und Head-Anfragen); Löschvorgänge sind kostenlos.

Wie viel berechnet S3 für ausgehenden Datenverkehr?

S3 stellt die ersten 100 GB pro Monat an ausgehendem Datenverkehr ins Internet kostenlos, aggregiert über alle AWS-Dienste und Regionen außer China und GovCloud. Darüber hinaus zahlen Sie pro Gigabyte zu einem Satz, der je nach Region und Volumenstufe variiert — AWS' eigenes Beispiel zu Multi-Region Access Points nennt 0,09 $ pro GB für die Übertragung aus Europa (Irland) ins Internet. Beachten Sie, dass dies ein Satz der ersten Stufe ist: AWS wendet Volumenstufen an und hält fest, dass diese die aggregierte Nutzung über alle AWS-Dienste hinweg berücksichtigen — eine Hochrechnung mit einem einzigen Satz überschätzt die Rechnung also. Einige Übertragungen sind kostenlos: eingehende Daten aus dem Internet, Daten zwischen S3-Buckets derselben Region, Daten von S3 zu einem AWS-Dienst in derselben Region sowie Daten zu CloudFront. Regionsübergreifende Übertragung ist günstiger als Internet-Egress, aber nicht gratis — AWS nennt 0,01 $/GB von N. Virginia nach Ohio und 0,02 $/GB von Oregon nach N. Virginia.

Ist R2 immer günstiger als S3?

Nein. R2 ist dramatisch günstiger, wenn Ihre Last leselastig über das öffentliche Internet läuft, denn genau diesen Verkehr misst S3 und R2 nicht. Deutlich weniger überzeugend ist es, wenn Ihr Verkehr AWS nie verlässt — S3 zu EC2 in derselben Region ist bereits kostenlos — oder wenn Ihre Last operations- statt bytelastig ist. Cloudflares eigenes Beispiel mit 100.000 kleinen Dateien und 10 Millionen Lesevorgängen pro Tag kommt auf 104,40 $ im Monat, wovon jeder Cent auf Class-B-Operationen entfällt und nichts auf Speicher oder Egress. Rechnen Sie die Operationen durch, nicht nur die Gigabyte.

Was ist der Unterschied zwischen Class-A- und Class-B-Operationen bei R2?

Class-A-Operationen verändern den Zustand und kosten mehr: PutObject, CopyObject, ListObjects, ListBuckets, PutBucket, die gesamte Multipart-Familie (CreateMultipartUpload, UploadPart, UploadPartCopy, ListParts, CompleteMultipartUpload, ListMultipartUploads), Lifecycle-Übergänge sowie die PutBucket*-Konfigurationsaufrufe. Sie kosten 4,50 $ pro Million bei Standard-Speicher. Class-B-Operationen lesen bestehenden Zustand: GetObject, HeadObject, HeadBucket, UsageSummary und die GetBucket*-Aufrufe, zu 0,36 $ pro Million bei Standard. DeleteObject, DeleteBucket und AbortMultipartUpload sind kostenlos. Beachten Sie, dass Auflisten eine Class-A-Operation ist — eine Last, die häufig Buckets auflistet, zahlt den teuren Tarif.

Macht der EU Data Act den Cloud-Wechsel kostenlos?

Er schafft den Rahmen für den Wechsel, aber verlassen Sie sich nicht darauf, dass die Gebühren von selbst verschwinden. Der Data Act — Verordnung (EU) 2023/2854 — trat am 11. Januar 2024 in Kraft und gilt seit dem 12. September 2025. Er regelt, dass Kunden wirksam zwischen Anbietern von Datenverarbeitungsdiensten wechseln und ihre Daten übertragen können. In der Praxis haben die Anbieter mit Prozessen statt automatischer Preisänderungen reagiert: Die S3-Preisseite von AWS hält fest, dass EU-Kunden für geeignete Anwendungsfälle reduzierte Übertragungstarife nach dem European Data Act anfragen können, und verweist auf den AWS-Kundensupport. Praktisch heißt das: Der Nachlass existiert, ist aber eine Anfrage, die Sie stellen müssen, und kein Tarif, den man Ihnen gibt.

Aus der Community

Diskussion im Fediverse

Antworten von Mastodon und Bluesky — direkt aus dem offenen Netz, ohne Tracking.

Antworten werden geladen …

ENDE