Les coûts de bande passante des images S3 deviennent ennuyeux

J’ai remarqué que les coûts de bande passante (transfert) de notre service d’images S3 augmentent continuellement. Le tarif est de 0,09 /Go, ce qui peut s'accumuler rapidement. Je suppose que je ne suis pas le seul site à rencontrer ce problème ? Je paie actuellement 70 par mois à Amazon uniquement pour le transfert, ce qui est plus élevé que mes coûts de VM. Le coût de stockage S3 n’est que de 5 $ par mois ; le problème entier réside dans les frais de transfert.

Je n’ai aucune configuration de CDN ou de mise en cache, juste une instance Discourse générique fonctionnant sur une VM Linode utilisant des buckets d’images S3. Que font les sites plus importants avec beaucoup d’images ? Un CDN (je suppose que cela réduira les coûts) ? L’utilisation de Digital Ocean Spaces ou de Minio ? Y a-t-il autre chose que je manque ?

L’utilisation d’un CDN pour S3 est la bonne approche. Cela permettra de réduire considérablement les coûts de transfert.

Si votre budget est serré, vous pourrez peut-être utiliser un sous-domaine Cloudflare à cette fin.

Hmm… en regardant les coûts de bande passante chez Fastly et Amazon CloudFront (et autres), ils sont à peu près les mêmes que les 0,09 $/Go que je paie actuellement :frowning:

Cloudflare semble ne pas facturer la bande passante ?? Peut-être que c’est la solution à essayer alors. Y a-t-il un article expliquant comment configurer Cloudflare pour un CDN d’images S3 sur Discourse ? Je vois l’option s3_cdn_url, mais je ne trouve pas d’instructions sur son utilisation (si ce n’est que je dois régénérer les images une fois configuré). En regardant Cloudflare, il semble que vous deviez avoir votre propre domaine, car il faut modifier les enregistrements DNS… donc je devrais créer un CNAME du type s3-cloudflare.mondomaine.com pointant vers l’adresse IP de mon bucket S3, dire à Cloudflare de gérer cette URL, définir s3_cdn_url sur cette adresse, puis régénérer les images ?

Voici une page d’assistance de Cloudflare qui semble indiquer que cela pourrait fonctionner :

https://support.cloudflare.com/hc/en-us/articles/360013791312-Fetching-object-storage-assets-through-the-Cloudflare-CDN-using-a-Cloudflare-Worker

Quelqu’un le fait-il ?? Je suis un peu surpris qu’il n’y ait pas beaucoup de sites confrontés à ce problème, car cela double au moins mes coûts mensuels.

J’utilise Cloudflare sur mon site Discourse et tout fonctionne parfaitement. Vous routez essentiellement tout votre trafic via Cloudflare et vous lui indiquez ce qu’il doit traiter ou mettre en cache, et c’est tout. Il y a toutefois quelques points à garder à l’esprit :

  1. Configurez Cloudflare pour qu’il ne mette rien en cache (créez des exceptions via les règles de page, voir ci-dessous).
  2. Ne laissez pas Cloudflare modifier votre JavaScript — désactivez notamment Rocket Loader.
  3. Je ne suis pas encore certain au sujet de la compression Brotli, je l’ai désactivée.
  4. Configurez des règles de page pour mettre en cache les répertoires des avatars et des uploads comme indiqué ci-dessous (ignorez la règle n°1, elle est spécifique au site).

Cloudflare met actuellement un peu plus de 3 To de données en cache par mois pour moi et il sert les graphiques lourds assez rapidement.

Si vous êtes plus intéressé par un CDN, je peux aussi recommander https://www.belugacdn.com/ (je n’ai aucun lien avec eux). Je les utilise sur une grande plateforme WordPress et les performances sont bonnes, à une fraction du coût d’autres plateformes CDN que j’ai examinées (elles pourraient être encore plus performantes, mais Beluga répond à mes besoins).

Est-ce que vous avez fini par quitter Amazon CloudFront, @scottfsmith ?

Je me retrouve dans une situation similaire en termes de dépenses croissantes.

CloudFront est assez nouveau pour moi. J’ai exploité uniquement un bucket S3 au cours des dernières années, mais sur la base des recommandations ici, j’ai configuré CloudFront le mois dernier.

Tout cela n’a fait que déplacer le coût du transfert de données S3 vers le transfert de données CloudFront ; la facture mensuelle totale reste la même.

Je me vois approcher d’une facture mensuelle insoutenable pour le transfert de données.

Je suis dans le même cas. J’ai également migré vers CloudFront il y a peu de temps et les coûts semblent similaires. J’imaginais qu’il y aurait une certaine économie grâce à la mise en cache locale, c’est-à-dire que la bande passante serait moindre si la même image était chargée à plusieurs reprises depuis la même région géographique, mais pour l’instant, il semble que ce ne soit pas le cas.

Il semblerait qu’il existe un autre CDN qui pourrait remplacer CloudFront. Discourse se contente de réécrire les URL des images, ce qui semble assez générique. Peut-être que Cloudflare pourrait être utilisé uniquement pour les images.

C’était exactement ma compréhension aussi.

+98 % de notre trafic est basé au Royaume-Uni, et naturellement 98 % de notre sortie S3 via CloudFront est également vers le Royaume-Uni.

Je ne vois aucun avantage à avoir un CDN jusqu’à présent. Si notre trafic était mondial, peut-être que je verrais quelque chose de différent.

Je vais me renseigner sur Cloudflare (comment ces deux-là ont-ils pu s’en tirer avec des noms si similaires !) dans les prochains jours et voir si je peux trouver un quelconque avantage.

Merci :+1:t2:

Veuillez faire un suivi ici si vous trouvez quelque chose. J’avais l’intention de m’en occuper moi-même.

@Richie & @scottfsmith,

Il existe des CDN à coût fixe comme https://www.stackpath.com/ à 10 $, que j’ai utilisés pour tous les tests sur Utiliser le stockage objet pour les uploads (S3 & clones). Ils pourraient mieux convenir à votre communauté.

Stackpath CDN coûte 20 /mois avec une limite de 1 To, et je dépasse souvent ce seuil. Ensuite, le prix passe à 200 /mois pour une limite de 20 To, ce qui est plus élevé que les environ 100 $/mois que me facture Amazon.

Il y a peut-être une autre option dans cette liste qui serait plus avantageuse. Merci pour le rappel concernant cette liste.

Imgur est gratuit pour tous, mais il n’existe aucun plugin pour cela.

Réaction GIF de Tobey Maguire

Que ferait un tel plugin ? Se contenterait-il de ne pas télécharger les plugins IMGUR, ou fonctionnerait-il comme le système actuel, en téléchargeant toutes les images vers IMGUR via une interface API qui existe probablement ?

Quelle valeur cela aurait-il pour vous ? Je doute que cela ait du sens dans le modèle économique de CDCK, car leur hébergement payant est ce qui rend Discourse possible pour nous tous, et leur hébergement fonctionne parfaitement sans plugin IMGUR.

Quelqu’un peut-il confirmer si cette configuration fonctionne bien en 2022 ou non ? :slight_smile:

Nous utilisons toujours la configuration Cloudflare, oui.

Merci de votre confirmation.

La configuration que vous utilisez n’est pas en cache pleine page, n’est-ce pas ?

Ou y a-t-il un avantage particulier à utiliser Cloudflare CDN par rapport à d’autres ?

Non, nous ne mettons en cache que les répertoires d’uploads et d’avatars ; consultez nos règles ci-dessus. Si vous essayez de faire autre chose, vous risquez de casser Discourse.

C’est gratuit :slight_smile:

Qu’en est-il des ressources statiques comme JS et CSS ?

Si nous utilisons un CDN en suivant ce guide, il livrera également les ressources statiques ainsi que les téléchargements et les avatars (si je ne me trompe pas).

Alors pourquoi Discourse planterait-il si nous livrons toutes les ressources statiques via Cloudflare ?

Je ne me souviens pas, ça fait quelques années. Pourquoi ne pas essayer et nous faire part des résultats ?

Alors que ce fil est de nouveau actif, je devrais faire un suivi… il semble qu’Amazon CloudFront ait considérablement baissé ses prix. Je n’ai aucune idée de ce qu’ils ont fait, mais mes coûts AWS moyens sont passés d’environ 80 par mois à 15 par mois. Il s’agit à la fois de S3 et de CloudFront pour les images (uniquement) sur un site avec beaucoup d’images.

Cloudflare est bien – désactivez simplement leur fonctionnalité Rocket Loader.

Sans aucun effort de configuration, cela économise la moitié de la bande passante vers mon serveur.

Il se peut que, il y a des années, Cloudflare ne fonctionnait pas bien avec Discourse, mais ce n’est plus le cas aujourd’hui. Il serait bon que nous n’entendions plus de doutes à ce sujet. Si quelqu’un a un problème spécifique, il devrait ouvrir un fil de discussion de support ici décrivant ce qui ne fonctionne pas.