Objetivos de aprendizado
Depois de ler este artigo, você vai conseguir:
- Entender o que é egress e quando ele é cobrado
- Estimar o custo de saída de um projeto com uma conta simples
- Reduzir ou evitar taxas de saída ao escolher um storage
Quando você compara storages na nuvem, o número que todo mundo olha é o preço por GB armazenado. Só que guardar é a parte barata. Em muitos provedores, a conta cresce de verdade quando os arquivos são baixados.
Essa cobrança se chama taxa de saída, ou egress. Ela costuma passar despercebida até a primeira fatura de um projeto com muito download: um site de imagens, um app de vídeo, uma API que entrega arquivos.
O que é egress, na prática?#
Egress é todo dado que sai da rede do provedor. No object storage, isso quer dizer cada vez que alguém baixa um arquivo do seu bucket: um visitante abrindo uma imagem, um app buscando um PDF, outro servidor puxando um dump.
O oposto, ingress, é o dado que entra. Amazon S3 e Azure informam que a transferência de entrada vinda da internet é gratuita. Por isso o modelo é assimétrico: enviar é de graça, baixar custa, e trocar de provedor também custa, porque tirar seus dados de lá é egress.
Como o egress é cobrado?#
O padrão é cobrar por GB transferido, com faixas de preço que mudam por região e por volume. Os grandes provedores seguem um desenho parecido:
- Amazon S3: há uma franquia mensal de saída gratuita para a internet, somada entre todos os serviços e regiões da AWS. Acima dela, o preço por GB depende da região e cai em faixas conforme o volume cresce.
- Azure: também há uma franquia mensal gratuita, e o preço por GB varia com a região de origem: sair da América do Sul costuma custar bem mais que sair da América do Norte ou da Europa.
Os valores são em dólar e mudam com o tempo, então confira as páginas oficiais da AWS e do Azure antes de fazer a sua conta.
A transferência interna tem regras próprias. No S3, ela é gratuita entre buckets da mesma região e cobrada entre regiões. Pense em egress como uma regra sobre para onde o dado vai, não só sobre quanto.
Quanto isso custa num exemplo?#
Os números desta seção são hipotéticos, escolhidos para facilitar a conta. Não são preços de nenhum provedor; os valores reais ficam nas páginas oficiais citadas acima.
Exemplo hipotético: imagine um site que serve imagens e entrega 2 TB por mês (2.000 GB) a visitantes, num provedor que cobra US$ 0,10 por GB e dá uma franquia gratuita de 100 GB:
(2000 GB - 100 GB) x US$ 0,10 = US$ 190 por mêsGuardar esses mesmos 2 TB custaria uma fração disso: a US$ 0,02 por GB-mês, também hipotético, seriam US$ 40. Se o mesmo conteúdo fosse baixado dez vezes mais, a conta chegaria a US$ 1.990 sem que um único byte armazenado mudasse.
A fórmula geral é simples:
custo de saída = (GB baixados no mês - franquia gratuita) x preço por GBPara estimar, multiplique o tamanho médio do arquivo pelo número de downloads e some todos os arquivos populares. Um arquivo de 5 MB baixado 400 mil vezes são 2.000 GB.
Quais são os custos escondidos?#
- Picos de tráfego. Um post viral ou um bot de scraping multiplicam o download sem aviso. Com cobrança por GB, o susto vem na fatura.
- Hotlinking. Outro site usando o link direto das suas imagens gera egress na sua conta.
- Migração. Baixar tudo para trocar de provedor é egress sobre o volume inteiro.
- Transferência entre regiões. Replicar dados para outra região também é cobrado.
- CDN em cascata. Uma CDN reduz requisições ao storage, mas a transferência do storage até a CDN e da CDN até o usuário pode ter preços separados. Veja a regra de cada fornecedor.
Como reduzir ou evitar o egress?#
- Coloque uma CDN na frente de arquivos públicos, com cabeçalhos
Cache-Controllongos. O arquivo sai do storage uma vez e o resto vem do cache. Veja a diferença entre arquivos públicos e privados. - Comprima e redimensione. Uma imagem WebP de 80 KB no lugar de um JPEG de 2 MB corta o egress em mais de 90%.
- Mantenha computação e dados na mesma região, para que a leitura interna não seja cobrada como saída.
- Limite o hotlinking e use links temporários (URLs assinadas) em arquivos que não devem ser públicos.
- Escolha um provedor com egress favorável. Alguns cobram menos ou não cobram. O Backblaze B2, por exemplo, oferece uma franquia de saída gratuita proporcional ao volume armazenado e cobra um preço baixo por GB acima dela. Há também storages compatíveis com S3 sem taxa de saída; confira a política de cada um.
Ao comparar, leia a política de transferência inteira: franquia gratuita, preço por GB, se há cobrança por requisição e se existe política de uso justo. Para o conceito base, veja o que é object storage.
Como fazer isso na Square Cloud#
O Blob Storage da Square Cloud é um object storage com API compatível com S3 e não cobra taxa de saída nem de entrada. Na conta do exemplo acima, a linha de tráfego simplesmente some, porque o download não tem cobrança de banda. O limite que existe é outro: um rate limit de requisições S3 por plano.
A cota de armazenamento incluída vai de 5 GB a 250 GB, conforme o plano, e os valores de cada um estão nas páginas do Blob e de preços. Arquivos públicos são servidos por uma CDN global na edge.
Como o protocolo é compatível com S3, você usa as ferramentas que já conhece, como aws-cli, rclone e boto3. Isso também facilita uma eventual saída: levar seus dados embora não vira cobrança de egress.
Veja como o Blob funciona na página do Blob Storage.
Blob Storage
Object storage compatível com S3, sem taxa de saída
Perguntas frequentes
O que significa egress na nuvem?
Egress é o tráfego que sai de um serviço de nuvem em direção à internet ou a outro provedor. No object storage, é todo download de arquivo feito por usuários, apps ou outros servidores.
Ingress (entrada) também é cobrado?
Em geral não. Amazon S3 e Azure informam que a transferência de dados para dentro, vinda da internet, é gratuita. A cobrança recai sobre a saída.
Como evitar taxas de saída?
Escolha um storage sem taxa de saída ou com franquia generosa, coloque uma CDN na frente dos arquivos públicos, use cache e mantenha aplicação e dados na mesma região, onde a transferência interna costuma ser gratuita.
Egress cobra quando a aplicação lê o arquivo na mesma região?
No Amazon S3, a transferência entre buckets da mesma região e para serviços AWS da mesma região é gratuita. O que costuma ser cobrado é a saída para a internet e entre regiões.
Mais em Storage
Ver todos os 15 artigos- O que é uma URL assinada (pre-signed URL) e quando usarUma URL assinada (pre-signed URL) é um link temporário para um arquivo privado. Veja como funciona, o que ela não faz e quando usar.
- O que é armazenamento de objetos (object storage)Armazenamento de objetos guarda arquivos como objetos com chave e metadados, acessados por API HTTP. Veja como funciona, para que serve e seus limites.
- O que é S3 e armazenamento compatível com S3S3 é o armazenamento de objetos da Amazon e virou a API padrão do setor. Veja o que significa ser compatível com S3, o que muda e como conectar via boto3.
- Upload de arquivos grandes: multipart e upload retomávelO upload multipart divide um arquivo grande em partes enviadas em paralelo e reenviadas uma a uma. Veja o passo a passo em Python, como retomar e os erros comuns.