Come ho dimezzato la mia fattura Cloudflare passando dagli Oggetti Durevoli alla cache degli asset statici
Ho ricevuto la fattura di Cloudflare a dicembre e ho notato qualcosa di strano: $12.50 per Durable Objects.
Durable Objects sono il modo in cui Cloudflare memorizza i dati che devono persistere tra le richieste (calcolo serverless con stato), come i messaggi di chat dal vivo, lo stato dei giochi multiplayer o l'editing collaborativo.
Ho diversi siti web ospitati su Cloudflare, e la maggior parte di essi sono fondamentalmente blog statici. Perché stavo pagando per Durable Objects?
Il colpevole: la cache predefinita di OpenNext
Se stai usando OpenNext per distribuire Next.js su Cloudflare Workers, la configurazione predefinita utilizza Durable Objects per l'invalidazione della cache ISR (Incremental Static Regeneration). Questo ha senso per i siti dinamici che necessitano di una rivalidazione su richiesta, ma per un blog? Eccessivo.
Ecco come appare la configurazione predefinita:
// open-next.config.ts (default)
import { defineCloudflareConfig } from "@opennextjs/cloudflare";
export default defineCloudflareConfig();Questa configurazione dall'aspetto innocuo abilita:
- DOShardedTagCache: Durable Objects per l'invalidazione della cache basata su tag
- BucketCachePurge: Durable Objects per la pulizia della cache
- DOQueueHandler: Durable Objects per la gestione delle code
Tutti i quali comportano costi ogni volta che vengono invocati.
La soluzione: cache degli asset statici
Se il tuo sito è prevalentemente statico (come un blog), puoi passare a una cache degli asset statici che memorizza tutto in Workers Static Assets al momento della build. Niente Durable Objects, niente costi ricorrenti.
// open-next.config.ts (ottimizzato)
import { defineCloudflareConfig } from "@opennextjs/cloudflare";
import staticAssetsIncrementalCache from "@opennextjs/cloudflare/overrides/incremental-cache/static-assets-incremental-cache";
export default defineCloudflareConfig({
incrementalCache: staticAssetsIncrementalCache,
enableCacheInterception: true,
});Questo è tutto. Due righe di modifica della configurazione mi hanno fatto risparmiare $12.50 al mese.
Il compromesso
C'è un inconveniente: si perde la rivalidazione ISR. Con la cache degli asset statici, i contenuti vengono aggiornati solo quando si effettua una nuova distribuzione. Per un blog dove controllo io quando cambiano i contenuti, questo va benissimo. Effettuo la distribuzione quando pubblico un nuovo articolo comunque.
Ma se hai:
- Contenuti generati dagli utenti che si aggiornano frequentemente
- Pagine che devono rivalidarsi secondo una pianificazione
- Dati dinamici che cambiano tra una distribuzione e l'altra
Allora probabilmente hai bisogno di Durable Objects, e il costo è giustificato.
Risultati
Aggiornamento (gennaio 2026): So che non è una grande somma di denaro, ma la mia fattura di gennaio per tutti i miei siti è arrivata a soli $6.47. Ho applicato questa soluzione a tutti, e l'addebito per Durable Objects è sparito.
| Servizio | Dicembre | Gennaio |
|---|---|---|
| Durable Objects | $12.50 | $0.00 |
| Workers a pagamento | $5.00 | $5.00 |
| AI Neurons (RTN)* | $8.31 | $0.42 |
| Workers CPU | $0.42 | $1.00 |
| Vectorize | $0.05 | $0.05 |
| Totale | $26.28 | $6.47 |
*Ho ottimizzato separatamente anche l'utilizzo dell'AI del mio chatbot, il che spiega la maggior parte del risparmio su RTN.
Come verificare se hai bisogno di Durable Objects
Chiediti:
- I miei contenuti cambiano tra una distribuzione e l'altra? Se no, usa la cache degli asset statici.
- Uso
revalidatenelle mie pagine Next.js? Se no, usa la cache degli asset statici. - Il mio sito è prevalentemente un blog o documentazione? Se sì, usa la cache degli asset statici.
Per la maggior parte dei siti personali e dei blog, la cache degli asset statici è la scelta giusta. Risparmia i tuoi soldi per qualcosa di più utile.