Configuração do Cloudflare R2 para Mídia no Mastodon: Guia e Custos
🔍 WiseChecker

Configuração do Cloudflare R2 para Mídia no Mastodon: Guia e Custos

Instâncias do Mastodon armazenam imagens, vídeos e outros arquivos de mídia enviados por usuários. O armazenamento local pode encher rapidamente e se tornar caro para escalar. O Cloudflare R2 oferece um serviço de armazenamento de objetos compatível com S3 sem taxas de egress, sendo uma opção econômica para administradores do Mastodon. Este artigo explica como configurar o Cloudflare R2 para sua instância do Mastodon e detalha os custos esperados.

Principais Conclusões: Visão Geral da Configuração e Custos do Cloudflare R2 para Mastodon

  • Configuração do bucket Cloudflare R2: É necessário um bucket público com credenciais compatíveis com S3 para armazenamento de mídia do Mastodon.
  • Variáveis de ambiente do Mastodon: S3_ENABLED, S3_BUCKET, S3_REGION, S3_ENDPOINT e S3_ACCESS_KEY_ID/S3_SECRET_ACCESS_KEY devem ser configuradas corretamente.
  • Sem taxas de egress: O R2 cobra apenas por armazenamento e operações de API, não pela transferência de dados para fora da Cloudflare.

ADVERTISEMENT

Por que Cloudflare R2 para Armazenamento de Mídia no Mastodon

O armazenamento local padrão do Mastodon usa o disco rígido do servidor. Conforme os usuários enviam mídia, o espaço em disco acaba. Os administradores precisam redimensionar o disco do servidor ou transferir arquivos para armazenamento externo. Provedores S3 tradicionais, como Amazon S3, cobram taxas de egress quando a mídia é servida aos usuários. O Cloudflare R2 elimina completamente as taxas de egress. Isso significa que você paga apenas pelo armazenamento que sua mídia ocupa e pelas requisições de API usadas para ler e escrever arquivos. Para instâncias do Mastodon com tráfego moderado a alto, o R2 pode reduzir significativamente os custos mensais em comparação com outros serviços de armazenamento de objetos.

Pré-requisitos para Usar R2 com Mastodon

Antes de iniciar a configuração, você precisa de uma conta Cloudflare com faturamento ativado. Crie um bucket R2 no painel da Cloudflare. O bucket deve ser configurado como público para que o Mastodon possa servir mídia diretamente dele. Você também precisa de um token de API compatível com S3 com permissões de leitura e gravação para esse bucket. O Mastodon suporta armazenamento compatível com S3 nativamente desde a versão 3.1. Verifique sua versão do Mastodon antes de prosseguir.

Passos para Configurar Cloudflare R2 para Mastodon

A configuração envolve duas partes: criar o bucket R2 e definir as variáveis de ambiente corretas em sua implantação do Mastodon. Siga estes passos exatamente.

  1. Crie um bucket R2 no painel da Cloudflare
    Faça login na sua conta Cloudflare. Vá para R2 e clique em Criar Bucket. Digite um nome de bucket único, como mastodon-media-sua-instancia. Selecione a região mais próxima do seu servidor. Deixe as configurações padrão para bloqueio de objetos e versionamento. Após a criação, clique no nome do bucket e ative o Acesso Público na aba Configurações.
  2. Gere um token de API R2
    No painel do R2, vá em Gerenciar Tokens de API R2. Clique em Criar Token de API. Escolha o nível de permissão: Admin Leitura e Gravação. Selecione o bucket específico que você acabou de criar. Copie o Access Key ID e o Secret Access Key imediatamente. A Cloudflare não mostra a chave secreta novamente.
  3. Defina as variáveis de ambiente do Mastodon
    Edite o arquivo de ambiente do Mastodon. Este arquivo geralmente está localizado em /home/mastodon/live/.env.production ou definido no seu arquivo Docker Compose. Adicione ou atualize as seguintes variáveis:

    S3_ENABLED=true
    S3_BUCKET=mastodon-media-sua-instancia
    S3_REGION=auto
    S3_ENDPOINT=https://suaconta.r2.cloudflarestorage.com
    S3_ACCESS_KEY_ID=seu_access_key_id
    S3_SECRET_ACCESS_KEY=seu_secret_access_key

    Substitua suaconta pelo ID da sua conta Cloudflare. Você pode encontrar isso no painel da Cloudflare em R2 > Bucket > Configurações > API S3.

  4. Reinicie os serviços do Mastodon
    Execute os seguintes comandos para aplicar as alterações:

    cd /home/mastodon/live
    RAILS_ENV=production bin/tootctl cache clear
    systemctl restart mastodon-web mastodon-sidekiq mastodon-streaming

    Se você usa Docker, reinicie os contêineres.

  5. Verifique se a mídia está armazenada no R2
    Faça upload de uma imagem de teste na interface web do Mastodon. Depois, verifique o bucket R2 no painel da Cloudflare. O arquivo deve aparecer. Confirme também que a imagem carrega corretamente no navegador. Se a imagem estiver quebrada, verifique a configuração de acesso público e a URL do S3_ENDPOINT.

ADVERTISEMENT

O que Evitar ao Usar R2 com Mastodon

Uploads de Mídia Falham com 403 Forbidden

Isso geralmente acontece quando o token de API não tem permissão de gravação para o bucket. Regere o token com permissões Admin Leitura e Gravação. Certifique-se também de que o nome do bucket está escrito exatamente na variável S3_BUCKET.

Imagens Carregam Lentamente ou Expiram

O R2 serve mídia através da rede global da Cloudflare. Se sua instância do Mastodon estiver longe da região R2 selecionada, a latência aumenta. Escolha uma região geograficamente próxima ao seu servidor. Você também pode ativar as regras de cache da Cloudflare para reduzir buscas repetidas ao R2.

Mídia Local Existente Não Migrada

Após mudar para o R2, a mídia enviada anteriormente permanece no disco local. Para movê-la, execute o seguinte comando:

RAILS_ENV=production bin/tootctl media remove –days=0

Este comando exclui cópias locais em cache após serem enviadas para o R2. Execute-o apenas depois de confirmar que o R2 está funcionando corretamente.

Cloudflare R2 vs Amazon S3 para Armazenamento de Mídia no Mastodon

Item Cloudflare R2 Amazon S3
Taxas de egress Nenhuma $0,09 por GB após os primeiros 100 GB
Custo de armazenamento $0,015 por GB por mês $0,023 por GB por mês
Operações Classe A (gravação) $4,50 por milhão de requisições $5,00 por milhão de requisições
Operações Classe B (leitura) $0,36 por milhão de requisições $0,40 por milhão de requisições
Rede global CDN da Cloudflare incluída Requer CloudFront para CDN

O Cloudflare R2 é geralmente mais barato para instâncias do Mastodon que servem muita mídia aos usuários. A ausência de taxas de egress por si só pode economizar centenas de dólares por mês para instâncias movimentadas. O Amazon S3 ainda pode ser uma escolha melhor se você já usa outros serviços AWS e deseja integração mais estreita. Para a maioria dos administradores do Mastodon, o R2 oferece a solução de armazenamento de mídia mais simples e econômica.

ADVERTISEMENT