Comment j'ai divisé ma facture Cloudflare par deux en passant des Durable Objects au cache des actifs statiques
J'ai reçu ma facture Cloudflare en décembre et j'ai remarqué quelque chose d'étrange : 12,50 $ pour les Durable Objects.
Durable Objects sont la solution de Cloudflare pour stocker des données qui doivent persister entre les requêtes (informatique sans serveur avec état), comme les messages de chat en direct, l'état des jeux multijoueurs ou l'édition collaborative.
J'ai quelques sites web hébergés sur Cloudflare, et la plupart sont essentiellement des blogs statiques. Pourquoi payais-je pour des Durable Objects ?
Le coupable : la mise en cache par défaut d'OpenNext
Si vous utilisez OpenNext pour déployer Next.js sur Cloudflare Workers, la configuration par défaut utilise des Durable Objects pour l'invalidation du cache ISR (Incremental Static Regeneration). Cela a du sens pour les sites dynamiques qui nécessitent une revalidation à la demande, mais pour un blog ? C'est excessif.
Voici à quoi ressemble la configuration par défaut :
// open-next.config.ts (par défaut)
import { defineCloudflareConfig } from "@opennextjs/cloudflare";
export default defineCloudflareConfig();Cette configuration d'apparence anodine active :
- DOShardedTagCache : Durable Objects pour l'invalidation du cache basée sur les balises
- BucketCachePurge : Durable Objects pour la purge du cache
- DOQueueHandler : Durable Objects pour la gestion des files d'attente
Chacun de ces éléments coûte de l'argent à chaque invocation.
La solution : la mise en cache des actifs statiques
Si votre site est majoritairement statique (comme un blog), vous pouvez passer à un cache d'actifs statiques qui stocke tout dans les Workers Static Assets au moment de la construction. Pas de Durable Objects, pas de coûts récurrents.
// open-next.config.ts (optimisé)
import { defineCloudflareConfig } from "@opennextjs/cloudflare";
import staticAssetsIncrementalCache from "@opennextjs/cloudflare/overrides/incremental-cache/static-assets-incremental-cache";
export default defineCloudflareConfig({
incrementalCache: staticAssetsIncrementalCache,
enableCacheInterception: true,
});C'est tout. Deux lignes de modification de configuration m'ont fait économiser 12,50 $/mois.
Le compromis
Il y a un hic : vous perdez la revalidation ISR. Avec le cache d'actifs statiques, votre contenu ne se met à jour que lorsque vous redéployez. Pour un blog où je contrôle quand le contenu change, c'est parfaitement acceptable. Je déploie de toute façon lorsque je publie un nouvel article.
Mais si vous avez :
- Du contenu généré par l'utilisateur qui se met à jour fréquemment
- Des pages qui doivent se revalider selon un calendrier
- Des données dynamiques qui changent entre les déploiements
Alors vous avez probablement besoin de Durable Objects, et le coût est justifié.
Résultats
Mise à jour (janvier 2026) : Je sais, ce n'est pas une somme énorme, mais ma facture de janvier pour tous mes sites s'est élevée à seulement 6,47 $. J'ai appliqué cette correction à tous, et la facturation des Durable Objects a disparu.
| Service | Décembre | Janvier |
|---|---|---|
| Durable Objects | 12,50 $ | 0,00 $ |
| Workers Payant | 5,00 $ | 5,00 $ |
| AI Neurons (RTN)* | 8,31 $ | 0,42 $ |
| Workers CPU | 0,42 $ | 1,00 $ |
| Vectorize | 0,05 $ | 0,05 $ |
| Total | 26,28 $ | 6,47 $ |
*J'ai également optimisé séparément l'utilisation de l'IA de mon chatbot, ce qui explique la majeure partie des économies sur RTN.
Comment vérifier si vous avez besoin de Durable Objects
Demandez-vous :
- Mon contenu change-t-il entre les déploiements ? Si non, utilisez le cache d'actifs statiques.
- Utilise-je
revalidatedans mes pages Next.js ? Si non, utilisez le cache d'actifs statiques. - Mon site est-il principalement un blog ou de la documentation ? Si oui, utilisez le cache d'actifs statiques.
Pour la plupart des sites personnels et des blogs, le cache d'actifs statiques est le bon choix. Gardez votre argent pour quelque chose de plus utile.