Migrando do Cloudflare para o Bunny.net
(jola.dev)- Um caso de migração de um blog pessoal para o bunny.net para reduzir a dependência centralizada do Cloudflare
- O bunny.net é um serviço europeu de CDN com sede na Eslovênia, oferecendo desempenho rápido globalmente e uma rede de PoPs eficiente
- Para registro de domínio, foi usado o Porkbun, e o recurso “Orange Cloud” do Cloudflare foi migrado para o ambiente do bunny.net
- A CDN foi configurada por completo com etapas como Pull Zone, política de cache, certificação SSL e Edge Rule
- Só com recursos básicos como proteção contra DDoS, Origin Shield e Stale Cache, já se mostra estável e pode ser uma alternativa prática ao Cloudflare para usuários individuais
Migrando do Cloudflare para o bunny.net
- Um resumo do processo e das configurações usadas para migrar um blog pessoal para o bunny.net a fim de reduzir a dependência do Cloudflare e os problemas de centralização
- O Cloudflare oferece recursos poderosos gratuitamente, mas a dependência de uma única empresa cresce e, em caso de falha, pode afetar a internet como um todo
- O desconforto com a concentração da internet em empresas dos EUA e várias controvérsias levou à busca por uma alternativa
Visão geral do Bunny.net
- O bunny.net é uma empresa europeia com sede na Eslovênia que oferece um serviço de CDN capaz de competir com o Cloudflare
- Apresenta alto desempenho e velocidade no mundo todo, e embora a rede de PoPs seja menor, ela é eficiente
- Também é visto de forma positiva por apoiar o crescimento do ecossistema tecnológico europeu
Saindo do Cloudflare
- O Cloudflare era usado como registrador do domínio do blog, mas foi difícil encontrar uma alternativa dentro da Europa
- O INWX foi descartado por não oferecer privacidade WHOIS gratuita, e foi escolhido o Porkbun
- O Porkbun usa infraestrutura do Cloudflare, mas a qualidade do suporte é excelente
- O recurso “Orange Cloud” do Cloudflare (cache automático, ocultação da origem e funções de proteção) foi migrado para o bunny.net
Etapas de configuração do Bunny.net
-
Criação da conta
- Ao se cadastrar, são oferecidos US$ 20 de crédito por 14 dias, e mais US$ 30 ao registrar um cartão de crédito
- Após a verificação de e-mail, já é possível configurar o serviço, com cobrança por uso (mínimo de US$ 1 por mês)
- A estrutura muda para uma em que “o usuário é cliente, não o produto”
-
Criação da Pull Zone
- É o componente principal para ativar a CDN, conectando o servidor ao definir a Origin URL
- Se estiver operando vários apps, defina o domínio no cabeçalho Host
- É possível escolher a camada Standard e configurar Zones com preços diferentes por região
- Usuários de regiões desativadas são redirecionados para a Zone ativa mais próxima
-
Conectando a Pull Zone
- Em “Add a custom hostname”, insira o domínio do site
- Siga as instruções para adicionar um registro CNAME e conectar o caminho da CDN (no formato
website.b-cdn.net) - Após a propagação do DNS, clique em “Verify & Activate SSL” para concluir a certificação SSL
- Quando der certo, o site passará a ser servido pela CDN do bunny.net
Configuração de cache
- Se o site retornar corretamente o cabeçalho Cache-Control, o bunny.net irá respeitá-lo
- Em “Caching → General”, verifique a opção “Respect origin Cache-Control”
- Se
no-cacheestiver definido, não haverá cache
- Se não houver cabeçalhos de cache, o recurso Smart Cache armazenará automaticamente apenas imagens, CSS, JS etc.
- Em um blog baseado em Elixir Phoenix, foi adicionado um middleware de cabeçalho de cache customizado ao pipeline
public- Com a configuração
cache-control: public, s-maxage=86400, max-age=0, até as páginas HTML passam a ser armazenadas em cache - Ao publicar um novo post, é necessário limpar manualmente o cache da Pull Zone para refletir o HTML mais recente
- Com a configuração
- Medições feitas com a ferramenta Larm confirmaram melhora no tempo de resposta em vários locais do mundo
Configurações básicas recomendadas
- Ative “Force SSL” para forçar todas as requisições a usarem HTTPS
- A proteção contra DDoS já vem habilitada, e ativar adicionalmente o Origin Shield reduz a carga no servidor
- Escolha uma localização próxima da origem para centralizar o cache, e os servidores de edge consultarão primeiro o Origin Shield
- Com as opções “Stale Cache: While Origin Offline / While Updating”
- o conteúdo em cache continua sendo entregue mesmo se a origem sair do ar
- durante atualizações, o cache anterior pode ser servido temporariamente
- Adicione uma Edge Rule para redirecionar o domínio gerado automaticamente da pull zone para o domínio real
- Nome da regra: “Default domain redirect”
- Ação: Redirect, código de status 301
- Condição: ao receber uma requisição para
*://<slug>.b-cdn.net/*, redirecionar parahttps://jola.dev{{path}}
Encerramento e avaliação
- Esta configuração cobre apenas os recursos básicos do bunny.net, e ainda não aborda Edge Rules, configuração avançada de cache, Security Shield, streaming de vídeo, Edge Scripting e Edge Containers
- As estatísticas, logs e métricas do painel são muito detalhados, permitindo rastrear por requisição se houve cache e quais problemas ocorreram
- No futuro, todos os serviços devem ser migrados para o bunny.net, com expectativa pelo lançamento de um storage compatível com S3
- Mesmo para usuários individuais, é uma opção suficientemente competitiva como alternativa ao Cloudflare
1 comentários
Comentários do Hacker News
Se é um post de blog positivo, para haver divulgação transparente, seria bom deixar explícito que todos os links da página apontam para o Bunny Affiliate Program
Eu uso bunny.net para CDN e DNS
Como sempre existe a insegurança de que serviços gratuitos possam virar pagos algum dia, acho melhor já pagar um valor pequeno desde o começo. Subir de US$2 para US$3 tudo bem, mas passar de grátis para US$20 é arriscado
Além disso, prefiro empresas pequenas e independentes que se importam com desenvolvedores. Por isso uso bunny.net, transistor.fm e Plausible Analytics
Eu opero um SaaS com Cloudflare Workers + Pages. A experiência de desenvolvimento é muito boa porque dá para implantar funções serverless e sites estáticos no mesmo repositório
Mas recentemente enfrentei um problema em que o cache de borda do CDN continuava servindo HTML antigo mesmo depois do deploy. É difícil de depurar, e você fica tendo que adivinhar qual camada de cache está causando o problema
Ainda assim, para começar no tier gratuito, é excelente. Com Workers, Pages, KV e R2, dá para rodar um app de produção quase de graça
A Cloudflare agora não é apenas um CDN, mas uma plataforma de edge. Se for fácil migrar para a Bunny, então você provavelmente não estava usando os recursos realmente centrais da Cloudflare
É uma pena que ela não dê suporte adequado a padrões como WinterTC. Usar uma função
serveproprietária, como no BunnySDK, é um lock-in proprietário ainda piorNós usamos a Bunny para várias finalidades e estamos muito satisfeitos. Em especial, a qualidade do suporte é excelente. A Cloudflare é boa, mas tem limitações se você não tiver suporte enterprise pago. A UpCloud também tem suporte ótimo
A frase “Cloudflare é um ponto único de falha da internet” aparece bastante, mas na prática a questão é mais complexa
Se serviços menores forem usados de forma mais diversa, a distribuição das falhas pode mudar. Em compensação, pode haver falhas menores com mais frequência
Além disso, a infraestrutura da Cloudflare não é totalmente centralizada. Alguns serviços são independentes por região
Eu migrei para a Bunny há um ano e estou muito satisfeito. Também gosto de poder oferecer suporte a um CDN baseado na UE, e com o Magic Containers dá para operar uma API escalável globalmente por algo na faixa de US$1 por mês
Este post pode parecer publicidade, mas na verdade foi apenas um compartilhamento de experiência. Os links de afiliado estavam sinalizados, sem intenção de esconder nada
Uma coisa a se observar é que, em instituições de ensino e afins, o domínio
*.b-cdn.netcostuma ser bloqueado com frequênciaUm ponto negativo é a ausência de hospedagem gratuita. Mesmo com pouco tráfego, é preciso pagar 1 euro por mês (sem VAT)
Além disso, não há muitos provedores de DNS que suportem CNAME flattening. E a invalidação de cache precisa ser feita duas vezes para refletir corretamente