Wie ich meine Cloudflare-Rechnung halbierte, indem ich von Durable Objects auf statische Assets-Caches umgestiegen bin
Ich habe im Dezember meine Cloudflare-Rechnung erhalten und etwas Seltsames bemerkt: 12,50 $ für Durable Objects.
Durable Objects sind Cloudflares Methode zur Speicherung von Daten, die zwischen Anfragen bestehen bleiben müssen (zustandsbehaftetes serverloses Computing), wie z. B. Live-Chat-Nachrichten, Multiplayer-Spielzustände oder kollaboratives Bearbeiten.
Ich habe ein paar Websites, die auf Cloudflare gehostet werden, und die meisten davon sind im Grunde statische Blogs. Warum habe ich für Durable Objects bezahlt?
Der Übeltäter: Die Standard-Caching-Einstellung von OpenNext
Wenn Sie OpenNext verwenden, um Next.js auf Cloudflare Workers bereitzustellen, verwendet die Standardkonfiguration Durable Objects für die ISR (Incremental Static Regeneration) Cache-Invalidierung. Das ist sinnvoll für dynamische Websites, die eine bedarfsgesteuerte Neuvalidierung benötigen, aber für einen Blog? Völlig übertrieben.
So sieht die Standardkonfiguration aus:
// open-next.config.ts (Standard)
import { defineCloudflareConfig } from "@opennextjs/cloudflare";
export default defineCloudflareConfig();Diese harmlos aussehende Konfiguration aktiviert:
- DOShardedTagCache: Durable Objects für tagbasierte Cache-Invalidierung
- BucketCachePurge: Durable Objects für das Leeren des Caches
- DOQueueHandler: Durable Objects für die Warteschlangenverwaltung
All dies kostet jedes Mal Geld, wenn es aufgerufen wird.
Die Lösung: Statischer Asset-Cache
Wenn Ihre Website größtenteils statisch ist (wie ein Blog), können Sie auf einen statischen Asset-Cache umsteigen, der alles zur Build-Zeit in Workers Static Assets speichert. Keine Durable Objects, keine laufenden Kosten.
// open-next.config.ts (optimiert)
import { defineCloudflareConfig } from "@opennextjs/cloudflare";
import staticAssetsIncrementalCache from "@opennextjs/cloudflare/overrides/incremental-cache/static-assets-incremental-cache";
export default defineCloudflareConfig({
incrementalCache: staticAssetsIncrementalCache,
enableCacheInterception: true,
});Das war's. Zwei Zeilen Konfigurationsänderung haben mir 12,50 $/Monat gespart.
Der Kompromiss
Es gibt einen Haken: Sie verlieren die ISR-Neuvalidierung. Beim statischen Asset-Cache werden Ihre Inhalte nur aktualisiert, wenn Sie neu bereitstellen. Für einen Blog, bei dem ich kontrolliere, wann sich Inhalte ändern, ist das völlig in Ordnung. Ich stelle sowieso neu bereit, wenn ich einen neuen Beitrag veröffentliche.
Aber wenn Sie Folgendes haben:
- Benutzergenerierte Inhalte, die sich häufig ändern
- Seiten, die nach einem Zeitplan neu validiert werden müssen
- Dynamische Daten, die sich zwischen den Bereitstellungen ändern
Dann benötigen Sie wahrscheinlich Durable Objects, und die Kosten sind gerechtfertigt.
Ergebnisse
Update (Januar 2026): Ich weiß, es ist kein großer Geldbetrag, aber meine Januar-Rechnung für alle meine Websites belief sich auf nur 6,47 $. Ich habe diese Lösung auf alle angewendet, und die Belastung durch Durable Objects ist verschwunden.
| Dienst | Dezember | Januar |
|---|---|---|
| Durable Objects | 12,50 $ | 0,00 $ |
| Workers Paid | 5,00 $ | 5,00 $ |
| AI Neurons (RTN)* | 8,31 $ | 0,42 $ |
| Workers CPU | 0,42 $ | 1,00 $ |
| Vectorize | 0,05 $ | 0,05 $ |
| Gesamt | 26,28 $ | 6,47 $ |
*Ich habe auch die KI-Nutzung meines Chatbots separat optimiert, was den größten Teil der RTN-Einsparungen ausmacht.
Wie Sie prüfen, ob Sie Durable Objects benötigen
Fragen Sie sich:
- Ändern sich meine Inhalte zwischen den Bereitstellungen? Wenn nein, verwenden Sie den statischen Asset-Cache.
- Verwende ich
revalidatein meinen Next.js-Seiten? Wenn nein, verwenden Sie den statischen Asset-Cache. - Ist meine Website größtenteils ein Blog oder eine Dokumentation? Wenn ja, verwenden Sie den statischen Asset-Cache.
Für die meisten persönlichen Websites und Blogs ist der statische Asset-Cache die richtige Wahl. Sparen Sie Ihr Geld für etwas Nützlicheres.