Custos de largura de banda de imagem S3 estão ficando irritantes

Percebi que os custos de largura de banda (transferência) do serviço de imagens S3 do nosso site continuam subindo. O preço é de $0,09/GB e isso pode aumentar rapidamente. Suponho que não sou o único site com esse problema? Estou pagando à Amazon $70/mês apenas pela transferência, o que é mais do que meus custos com a VM. O custo de armazenamento S3 é de apenas $5/mês; todo o problema são as taxas de transferência.

Não tenho nenhuma CDN ou cache configurado, apenas um Discourse totalmente genérico rodando em uma VM Linode usando os buckets de imagens S3. O que sites maiores com muitas imagens estão fazendo? CDN (suponho que isso reduzirá os custos)? Usar Digital Ocean Spaces ou Minio? Algo mais que estou esquecendo?

Usar um CDN para o S3 é a abordagem correta. Isso reduzirá drasticamente os custos de transferência.

Se você tiver um orçamento limitado, poderá usar um subdomínio do Cloudflare para isso.

Hmm… analisando os custos de largura de banda na Fastly e na Amazon CloudFront (e outras), eles são praticamente os mesmos que os US$ 0,09/GB que estou pagando agora :frowning:

Parece que a Cloudflare não cobra pela largura de banda?? Talvez essa seja a solução a tentar. Existe algum post sobre como configurar a Cloudflare para servir imagens do S3 via CDN no Discourse? Vejo a opção s3_cdn_url, mas não encontro instruções sobre como usá-la (além de saber que preciso rebakear após configurá-la). Ao analisar a Cloudflare, parece que é necessário ter seu próprio domínio, já que o DNS precisa ser alterado… então eu teria que criar um CNAME algo como s3-cloudflare.meudominio.com, apontando para o IP do meu bucket S3, instruir a Cloudflare a atuar sobre essa URL, configurar o s3_cdn_url para esse endereço e, em seguida, rebakear?

Aqui está uma página de suporte da Cloudflare que parece indicar que isso pode funcionar:

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

Alguém está fazendo isso?? Estou um pouco surpreso de que não haja muitos sites com esse problema, já que isso mais que dobra meu custo mensal, pelo menos no meu caso.

Estou usando o Cloudflare no meu site Discourse e funciona perfeitamente. Basicamente, você direciona todo o seu tráfego pelo Cloudflare e configura o que deve ser processado ou armazenado em cache — e pronto. No entanto, há algumas coisas a ter em mente:

  1. Configure o Cloudflare para NÃO armazenar nada em cache (crie exceções usando regras de página, veja abaixo).
  2. Não deixe o Cloudflare modificar seu JavaScript — especificamente, desative o Rocket Loader.
  3. Ainda não tenho certeza sobre a compressão Brotli; desativei.
  4. Configure regras de página para armazenar em cache os diretórios de avatares e uploads, conforme abaixo (ignore a regra nº 1, pois é específica do site).

Atualmente, o Cloudflare está armazenando em cache pouco mais de 3 TB de dados por mês para mim e está servindo imagens grandes com bastante rapidez.

Se você estiver mais interessado em uma CDN, também posso recomendar https://www.belugacdn.com/ (não tenho vínculo com eles). Uso em uma grande plataforma WordPress e o desempenho é bom, por uma fração do custo de outras plataformas de CDN que analisei (essas podem ser ainda mais performáticas, mas a Beluga atende às minhas necessidades).

Você acabou migrando da Amazon CloudFront no final, @scottfsmith?

Estou me encontrando em uma situação semelhante, com o aumento dos gastos.

A CloudFront é algo relativamente novo para mim. Nos últimos anos, eu gerenciei apenas um bucket S3, mas com base nas recomendações aqui, configurei a CloudFront no mês passado.

Tudo isso fez foi transferir o custo da transferência de dados do S3 para a transferência de dados da CloudFront; a fatura mensal total continua a mesma.

Estou chegando a uma fatura mensal insustentável para transferência de dados.

Estou no mesmo barco. Também migrei para o CloudFront há pouco tempo e os custos estão parecidos. Eu pensava que haveria alguma economia devido ao cache local, ou seja, a largura de banda seria menor se a mesma imagem fosse carregada repetidamente da mesma localização geográfica, mas até agora parece que não.

Parece que deveria haver algum outro CDN que funcione no lugar do CloudFront; tudo o que o Discourse faz é reescrever as URLs das imagens, então é bem genérico (parece). Talvez o Cloudflare pudesse ser usado apenas para as imagens.

Essa era exatamente a minha compreensão também.

+98% do nosso tráfego é baseado no Reino Unido e, naturalmente, 98% da nossa saída do S3 via CloudFront também é para o Reino Unido.

Até agora, não vejo nenhum benefício em ter uma CDN. Se nosso tráfego fosse mundial, talvez eu estivesse vendo algo diferente.

Vou ler mais sobre o Cloudflare (como é que esses dois conseguiram ficar com nomes tão parecidos!) nos próximos dias e ver se consigo encontrar algum benefício.

Obrigado :+1:t2:

Por favor, dê um feedback aqui se encontrar algo. Eu já estava pensando em investigar isso eu mesmo.

@Richie e @scottfsmith,

Existem algumas CDNs de custo fixo, como a https://www.stackpath.com/ por US$ 10, que usei para todos os testes em Usando Armazenamento de Objetos para Uploads (S3 e Clones). Elas podem ser uma opção mais adequada para a sua comunidade.

O Stackpath CDN custa US$ 20/mês com um limite de 1 TB, e em muitos meses eu ultrapasso esse valor. Em seguida, o preço salta para US$ 200/mês para o limite de 20 TB, o que é mais do que os cerca de US$ 100/mês que a Amazon me cobra.

Talvez haja outro serviço nessa lista que seja melhor, embora. Obrigado pela lembrança sobre a lista.

imgur é gratuito para todos, mas não há plugin para isso

Tobey Maguire Reaction GIF

O que um plugin assim faria? Ele simplesmente não baixaria plugins do IMGUR, ou funcionaria como o sistema atual, fazendo o upload de todas as imagens para o IMGUR por meio de alguma interface de API que presumivelmente existe?

Quanto isso valeria para você? Duvido que seja algo que faça sentido para o modelo de negócios da CDCK, já que o hospedagem paga é o que torna o Discourse possível para todos nós, e a hospedagem deles funciona perfeitamente sem um plugin do IMGUR.

Alguém pode confirmar se esta configuração funciona bem em 2022 ou não? :slight_smile:

Ainda estamos usando a configuração do Cloudflare, sim.

Obrigado pela confirmação.

A configuração que você está usando não é de cache de página inteira, certo?

Ou existe algum benefício especial em usar o Cloudflare CDN em relação a outros?

Não, nós apenas armazenamos em cache os diretórios de uploads e avatares; veja nossas regras acima. Se você tentar fazer qualquer outra coisa, provavelmente quebrará o Discourse.

É grátis :slight_smile:

E quanto aos ativos estáticos como JS e CSS?

Se usarmos uma CDN seguindo este guia, ela entregará ativos estáticos também, juntamente com uploads e avatares (se eu souber corretamente).

Então, por que o Discourse quebraria se entregássemos todos os ativos estáticos através do Cloudflare?

Não me lembro, já faz alguns anos. Por que não tenta e relata os resultados?

Embora este tópico esteja ativo novamente, devo dar seguimento… parece que o Amazon CloudFront reduziu significativamente seus preços. Não tenho ideia do que eles fizeram, mas meus custos médios da AWS passaram de cerca de US$ 80 por mês para US$ 15 por mês. Isso é para S3 e CloudFront para imagens (apenas) em um site com muitas imagens.

O Cloudflare está bom - basta desativar o recurso Rocket Loader deles.

Sem esforço de configuração, ele economiza metade da largura de banda de volta para o meu servidor.

Pode ser que anos atrás o Cloudflare não funcionasse bem com o Discourse, mas hoje não é verdade. Seria bom se não continuássemos vendo dúvidas sobre isso. Se alguém tiver um problema específico, deve iniciar um tópico de suporte aqui descrevendo o que não está funcionando.