Às vezes, um projeto mora em um data center estrangeiro barato, cai sob os tapetes de Roskomnadzor, periodicamente se vê sob ataques de DDoS, mas ao mesmo tempo possui terabytes de dados e tráfego.
Como viver com isso?

Preâmbulo
Temos um pequeno banco de fotos para suporte. Não mencionaremos o nome e o país, apenas alguns dados técnicos:
50 TB de dados para armazenamento, cerca de 100 GB são atualizados mensalmente, "dados quentes" (95% das solicitações vão para eles) - 200 GB.
Tráfego médio - 50 TB / mês.
Vários anos atrás, vários servidores da série Hetzner SX com grandes discos foram escolhidos para postar fotos (eu tive que encontrar uma solução mais complicada para armazenar o PD, mas mais nessa outra hora).
Southbridge duvidava que Hetzner fosse adequado para esse projeto, mas o nível exigido de acessibilidade e a qualidade da conectividade foram alcançados.
Além disso, para esse projeto, o uso da CDN será uma ordem de magnitude mais cara do que a distribuição de estática dos servidores em um data center barato.
Traçar
Aqui em nossa história aparece Roskomnadzor, que não seja mencionado em vão. Na primavera de 18, começaram os bloqueios de carpete e, em maio, eles cobriram muitos de nossos clientes.
Alguns clientes resolveram o problema com o acesso ao Hetzner, Amazon, MS Azure, GCE e Digitalocean: mudaram o servidor inteiro para a Rússia (oi, Selectel!), Mas para o nosso herói, um pequeno banco de fotos, que constantemente transporta 50 TB de dados é muito caro , e não deixaríamos os servidores do projeto na Rússia após o fim dos bloqueios.
Para problemas grandes e inadequados, são necessárias soluções pequenas e adequadas.
Resolução de problemas
Por exemplo, use outros servidores ou serviços (desbloqueados) para o front-end. Alterar o intervalo de endereços IP não ajudou 100%, porque O ILV bloqueou novas sub-redes IP todos os dias, por isso decidimos ativar o proxy através do Cloudflare.com. De repente, quem não sabe, eles não apenas protegem contra ataques DDoS (não tão bons quanto os melhores players neste mercado), mas também fornecem um serviço CDN (e fazem isso bem).
Esta é uma ótima solução se seus endereços do Cloudflare não estiverem bloqueados)
Ok, liguei - e comecei a monitorar a estabilidade do trabalho e o retorno do tráfego. Depois de conectar o CF, vimos esta imagem no gráfico da contagem de tráfego de um dos servidores (imagem das estatísticas da Hetzner):

O tráfego de entrada foi alterado dentro da margem de erro (que também é confirmada pelo agendamento para o upload de novas fotos, para as quais foi feita uma métrica de monitoramento separada), o tráfego de saída nesse servidor caiu mais de três vezes no momento da conexão do CF. O tráfego real total não caiu três vezes, apenas o CF começou a distribuir o tráfego entre os servidores de uma maneira diferente.
Por exemplo, um gráfico para o mesmo servidor do nosso sistema de monitoramento (por 3 meses, para que não seja muito pequeno):

E de acordo com um dos outros:

Mas o tráfego geral ainda caiu 20%, ou seja, A CF salvou o projeto de parte do tráfego.
A latência média aumentou, mas não mostraremos esses gráficos.
Razão: Cloudflare tem poucos pontos de distribuição na Rússia. Na Europa e América do Norte, já é muito mais eficaz.
E, paralelamente ao tráfego, monitoramos a atividade de uso do serviço. Novas fotos são enviadas para o serviço, e monitoramos o número delas (e o tráfego recebido).
Programe por 3 meses (abril a junho) de um dos servidores que processa solicitações para upload de fotos:

E aqui está outro servidor:

O Cloudflare começou a distribuir o tráfego de back-end de uma maneira ligeiramente diferente. Mas o conteúdo continuou sendo carregado, o serviço funcionou, não houve queda catastrófica na qualidade (de acordo com as avaliações dos usuários, a diferença não era perceptível em princípio).
Também existe o risco de obter um endereço bloqueado no Cloudflare, mas você pode reduzi-lo pagando uma tarifa paga.
Depois de concluir o ILV Carpet Lock, desativamos o Cloudflare.
Qual é o resultado?
- Por 5 a 20 $ / mês (no nosso caso, eram apenas 5 $ / mês), você pode resolver um problema semelhante e não gastar milhares de dólares alugando servidores mais caros e transferindo dados.
- Mesmo para projetos com terabytes de tráfego, soluções gratuitas ou quase gratuitas são adequadas. Comprovado na prática.
Como alternativa:
- O DDoS-GUARD oferece uma tarifa gratuita com proxies de tráfego e proteção contra ataques DDoS.
- Vários provedores de serviços de proteção contra DDoS tinham um serviço de ajuda gratuito com esses bloqueios. (A propósito, também não levamos dinheiro extra para resolver o problema com bloqueios).
- Você pode usar um dos serviços CDN conhecidos: keycdn.com, cdn77.com, Akamai CDN, CDNVideo, Ngenix.net, etc. Eles resolvem o problema de bloquear a proteção para seus próprios clientes. Mas isso a) é mais caro b) não resolve o problema de retornar conteúdo não estático.
- Você pode conectar outro serviço de proxy e proteção contra DDoS (trabalhamos muito com o Qrator e o SkyparkCDN / G-Core Labs, por exemplo), mas eles precisarão pagar por cada megabit de tráfego útil e será muito caro.
- O "front-end desbloqueado" pode ser implantado em qualquer um dos provedores do mundo, ao mesmo tempo em que você precisa selecionar um intervalo desbloqueado de endereços e garantir uma boa conectividade entre seus servidores e servidores de front-end. Se você realmente precisar fazer isso, verifique primeiro o endereço automaticamente na lista ou manualmente aqui .
Pessoalmente, recomendo o packet.net e o servers.com para esses "frontends" - excelente conectividade e capacidade de levar um servidor a uma taxa horária.
ps Se alguma coisa - eu sou um dos alto-falantes do RedSlerm. Venha, será interessante:
https://slurm.io/redslurm/