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?

Utilizzare un CDN per S3 è l’approccio corretto. Questo ridurrà drasticamente i costi di trasferimento.

Se hai un budget limitato, potresti essere in grado di utilizzare un sottodominio di Cloudflare per questo scopo.

Hmm… guardando i costi della larghezza di banda su Fastly e Amazon CloudFront (e altri), sono praticamente gli stessi che pago ora, ovvero 0,09$/GB :frowning:

Cloudflare sembra non addebitare la larghezza di banda?? Forse è questa la soluzione da provare. Esiste un post su come collegare Cloudflare per la CDN delle immagini S3 su Discourse? Vedo l’opzione s3_cdn_url, ma non riesco a trovare istruzioni su come utilizzarla (a parte il fatto che devo rifare il baking una volta configurata). Guardando Cloudflare, sembra che sia necessario avere un proprio dominio, dato che è necessario modificare il DNS… quindi dovrei creare un CNAME tipo s3-cloudflare.miodominio.com che punti all’IP del mio bucket S3, dire a Cloudflare di gestire quell’URL, impostare anche s3_cdn_url su quello e poi rifare il baking?

Ho trovato questa pagina di supporto di Cloudflare che sembra indicare che potrebbe funzionare:

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

Qualcuno lo sta già facendo?? Sono un po’ sorpreso che non ci siano molti siti con questo problema, dato che per me almeno raddoppia il costo mensile.

Sto usando Cloudflare sul mio sito Discourse e funziona perfettamente. Di base, instradi tutto il tuo traffico attraverso Cloudflare e gli dici cosa elaborare o memorizzare nella cache, ed è tutto. Ci sono però alcune cose da tenere a mente:

  1. Configura Cloudflare in modo che NON memorizzi nulla nella cache (imposta le eccezioni utilizzando le regole delle pagine, vedi sotto).
  2. Non lasciare che Cloudflare modifichi il tuo JavaScript: in particolare, disattiva Rocket Loader.
  3. Non sono ancora sicuro riguardo alla compressione Brotli, l’ho disattivata.
  4. Imposta le regole delle pagine per memorizzare nella cache le directory degli avatar e dei caricamenti come mostrato di seguito (ignora la regola n. 1, è specifica del sito).

Cloudflare sta attualmente memorizzando nella cache poco più di 3 TB di dati al mese per me e serve le grafiche di grandi dimensioni piuttosto velocemente.

Se sei più interessato a una CDN, posso anche consigliare https://www.belugacdn.com/ (non sono affiliato con loro). Li uso su una grande piattaforma WordPress e le prestazioni sono buone, a una frazione del costo di alcune altre piattaforme CDN che ho valutato (quelle potrebbero essere ancora più performanti, ma Beluga soddisfa le mie esigenze).

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.

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.

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:

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

@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.

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.

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

Reazione di Tobey Maguire GIF

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.

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

Stiamo ancora utilizzando la configurazione di Cloudflare, sì.

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?

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:

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?

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

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.

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.