I costi della larghezza di banda per le immagini S3 stanno diventando fastidiosi

Ho notato che i costi di banda (trasferimento) del servizio immagini S3 del nostro sito continuano ad aumentare. Il prezzo è di 0,09 /GB e può accumularsi molto rapidamente.. Immagino di non essere l'unico sito a riscontrare questo problema? Ora pago ad Amazon 70 al mese solo per il trasferimento, una cifra superiore ai costi della mia VM. Il costo di archiviazione S3 è di soli 5 $ al mese; l’intero problema risiede nelle spese di trasferimento.

Non ho configurato alcuna CDN o caching, solo un’istanza Discourse completamente generica in esecuzione su una VM Linode che utilizza i bucket immagini S3. Cosa fanno i siti più grandi con molte immagini? CDN (immagino che questo ridurrà i costi)? Utilizzare Digital Ocean Spaces o Minio? C’è qualcos’altro che mi sfugge?

7 Mi Piace

Using a CDN for S3 is the right approach. That will drive the transfer costs way down.

If you are in a tight budget, you may be able to use a cloudflare subdomain for that.

10 Mi Piace

Hmm… looking at the bandwidth costs on Fastly and the Amazon CloudFront (and others) they are pretty much the same as the .09/GB I am paying now :frowning:

Cloudflare seems to not charge for bandwidth?? Maybe that is the thing to try then. Is there a post on how to hook up Cloudflare for S3 images CDN on Discourse? I see the s3_cdn_url but can’t find instructions on how to use it (other than I need to rebake once I set it up). Looking at Cloudflare it seems like you need to have your own domain since the DNS needs to be changed… so I would have to make a CNAME something like s3-cloudflare.mydomain.com which would point to my S3 bucket IP, and tell Cloudflare to do it’s thing on that URL, and also set s3_cdn_url to that, and then rebake?

Here is a support page I found at Cloudflare which seems to indicate this might work:

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

Anybody doing this?? I am a bit surprised there are not many sites with this issue as it is more than doubling the monthly cost for me at least.

5 Mi Piace

I’m using Cloudflare on my Discourse site and it works fine. You basically route all your traffic through Cloudflare and tell it what to process or cache and that’s it. There are a few things to keep in mind though:

  1. Configure Cloudflare to NOT cache anything (set up exceptions using page rules, see below).
  2. Don’t let Cloudflare touch your Javascript - specifically, turn off Rocket Loader.
  3. I’m not sure about Brotli compression yet, I disabled it.
  4. Set up page rules to cache the avatar and upload directories as below (ignore rule #1, it’s site specific).

Cloudflare is currently caching a little over 3TB of data per month for me and it’s serving large graphics pretty fast.

If you’re more interested in a CDN I can also recommend https://www.belugacdn.com/ (I’m not affiliated with them). I use them on a large WordPress platform and performance is good, at a fraction of the cost of some other CDN platforms I looked at (those might be even more performant, but Beluga meets my needs).

18 Mi Piace

Alla fine hai mai smesso di usare Amazon CloudFront, @scottfsmith?

Mi trovo in una situazione simile per quanto riguarda l’aumento della spesa.

CloudFront è abbastanza nuovo per me. Negli ultimi anni ho gestito solo un bucket S3, ma basandomi sui consigli qui ho configurato CloudFront il mese scorso.

Tutto questo ha fatto sì che il costo si spostasse dal trasferimento dati di S3 al trasferimento dati di CloudFront, ma il totale della fattura mensile rimane lo stesso.

Mi trovo ad affrontare un costo mensile insostenibile per il trasferimento dati.

2 Mi Piace

Sono nella stessa barca. Anche io ho migrato su CloudFront non molto tempo fa e i costi sembrano simili. Pensavo ci fosse un certo risparmio grazie alla cache locale, cioè che la larghezza di banda sarebbe stata inferiore se la stessa immagine venisse caricata ripetutamente dalla stessa posizione geografica, ma finora sembra di no.

Sembra che dovrebbe esserci un’altra CDN che possa funzionare al posto di CloudFront; tutto ciò che fa Discourse è riscrivere gli URL delle immagini, quindi è piuttosto generico (sembra). Forse Cloudflare potrebbe essere utilizzato solo per le immagini.

3 Mi Piace

Anche io avevo esattamente questa comprensione.

Il 98% del nostro traffico proviene dal Regno Unito e, naturalmente, anche il 98% del nostro egress S3 tramite CloudFront è diretto al Regno Unito.

Finora non vedo alcun vantaggio nell’utilizzo di una CDN. Se il nostro traffico fosse mondiale, forse vedrei qualcosa di diverso.

Nei prossimi giorni darò un’occhiata a Cloudflare (come hanno fatto questi due a sfuggire a nomi così simili!) e vedrò se riesco a trovare qualche vantaggio.

Grazie :+1:t2:

4 Mi Piace

Fai un follow-up qui se trovi qualcosa. Avevo intenzione di occuparmene io stesso.

2 Mi Piace

@Richie & @scottfsmith,

Ci sono alcune CDN a costo fisso come https://www.stackpath.com/ a 10 dollari che ho utilizzato per tutti i test su Utilizzo dell’archiviazione oggetti per i caricamenti (S3 e cloni). Potrebbero essere più adatte alla tua community.

6 Mi Piace

Stackpath CDN costa 20 dollari al mese con un limite di 1 TB, e in molti mesi lo supero. Poi il prezzo sale a 200 dollari al mese per un limite di 20 TB, che è più di quanto Amazon mi faccia pagare, circa 100 dollari al mese.

Forse c’è un altro servizio in quella lista che è migliore, grazie per il promemoria sulla lista.

2 Mi Piace

Imgur è gratuito per tutti, ma non esiste un plugin per questo.

Reazione di Tobey Maguire GIF

4 Mi Piace

Cosa farebbe esattamente un tale plugin? Si limiterebbe a non scaricare i plugin di IMGUR, oppure funzionerebbe come il sistema attuale, caricando tutte le immagini su IMGUR tramite un’interfaccia API che presumibilmente esiste?

Quanto varrebbe per te? Dubito che abbia senso per il modello di business di CDCK, dato che il loro hosting a pagamento è ciò che rende possibile Discourse per tutti noi, e il loro hosting funziona perfettamente anche senza un plugin IMGUR.

6 Mi Piace

Qualcuno può confermare se questa configurazione funziona bene nel 2022 o meno? :slight_smile:

1 Mi Piace

Stiamo ancora utilizzando la configurazione di Cloudflare, sì.

2 Mi Piace

Grazie per la conferma.

La configurazione che stai utilizzando non è la cache a pagina intera, giusto?

O c’è qualche vantaggio speciale nell’utilizzare Cloudflare CDN rispetto ad altri?

1 Mi Piace

No, memorizziamo nella cache solo le directory di caricamenti e avatar; vedi le nostre regole sopra. Se provi a fare qualsiasi altra cosa, probabilmente romperai Discourse.

È gratis :slight_smile:

4 Mi Piace

E per quanto riguarda le risorse statiche come JS e CSS?

Se utilizziamo una CDN seguendo questa guida, essa distribuirà anche le risorse statiche insieme ai caricamenti e agli avatar (se non erro).

Allora perché Discourse si bloccherebbe se distribuissimo tutte le risorse statiche tramite Cloudflare?

1 Mi Piace

Non ricordo, sono passati alcuni anni. Perché non provi e riferisci sui risultati?

1 Mi Piace

Mentre questo thread è di nuovo attivo, dovrei fornire un aggiornamento… sembra che Amazon CloudFront abbia abbassato significativamente i suoi prezzi. Non ho idea di cosa abbiano fatto, ma i miei costi medi di AWS sono passati da circa $80 al mese a $15 al mese. Questo sia per S3 che per CloudFront per le immagini (solo) su un sito con un sacco di immagini.

2 Mi Piace

Cloudflare va bene: disabilita solo la loro funzionalità Rocket Loader.

Senza alcuno sforzo di configurazione, risparmia metà della larghezza di banda verso il mio server.

Potrebbe essere che anni fa Cloudflare non funzionasse bene con Discourse, ma oggi non è più vero. Sarebbe bello se non continuassimo a vedere dubbi al riguardo. Se qualcuno ha un problema specifico, dovrebbe aprire un thread di supporto qui descrivendo cosa non funziona.

5 Mi Piace