Infraestrutura WordPress Alto Tráfego na AWS 5 mil Conexões

Neste artigo irei conversar um pouco sobre ambientes de alto tráfego na AWS para WordPress, não se trata de um artigo com linguagem muito técnica.

Ultimamente tenho trabalhado bastante em projetos que precisam de um ambiente seguro, escalável e que aguente um tráfego considerável de acessos simultâneos.

Em apenas um único mês configurei 03 (três) ambientes nesse modelo, 2 na AWS e 1 no GCP. Um fato curioso é que todos os projetos eram em WordPress, em suma:

  • 1 Portal de notícias ( 5/10 Milhões de acessos mês )  – GCP
  • 1 Portal de eventos ( 10/20 mil usuários simultâneos )  – AWS
  • 1 Portal de eventos ( 5 mil usuários simultâneos)  – AWS

Obs: Serviços realizados em 08-2020

Nesse artigo irei comentar um pouco sobre esse tipo de ambiente na Amazon AWS, o que eu fiz, o que levei em consideração e algumas dicas para clarear sua mente.

 

Hospedagem de Alto Tráfego, o que é ?

Hospedagem de Alto Tráfego nada mais é do que uma infraestrutura projetada para aguentar uma carga maior de acessos simultâneos, e estamos falando de um ambiente privado.

Toda e qualquer hospedagem tradicional geralmente é compartilhada, não suporta muitos acessos e quando você recebe uma quantidade de acessos que ultrapassa os limites propostos pelo provedor, seu plano é cancelado ou seu site fica OFF. 

Quem precisa de uma hospedagem de alto tráfego ?

Esse é um momento delicado, para ser bem sincero não é todo projeto que precisa de servidores de alto tráfego. Afinal, nem recebem muitos acessos, mas o site ou loja é super lenta, e ai descobrem que existe outros modelos de hospedagem como: Hospedagem em Alta Disponibilidade, Hospedagem Otimizada, Hospedagem Dedicada.

E agora ? O que significa cada coisa? Veja no final do artigo.

 

A hospedagem de alto tráfego é direcionada para todo e qualquer projeto que terá uma carga grande de acessos, carga esta que uma hospedagem tradicional não dará conta para suprir, os projetos mais comuns são:

  • Portais de Notícias
  • Blogs com público formado
  • E-Commerce de médio/grande porte
  • Sites que vão receber tráfego ADS recorrente
  • Sites de Eventos, Streaming e Transmissões ao vivo
  • Aplicações Web
  • Sites adultos

Quando falo em alto tráfego estou me referindo a projetos que tem muitos acessos, milhares, senão centenas de milhares de acessos simultâneos.

 

Infraestrutura WordPress Alto Tráfego na Amazon AWS

Nós que costumamos arquitetar e implementar infraestrutura web, com o tempo criamos nossos próprios modelos de implementações para cenários que trabalhamos com mais frequência.

Não existe uma única forma ou método de projetar um ambiente. E existem diversas tecnologias e possibilidades de configurações e otimizações distintas que podem fazer um site ficar mais rápido e aguentar mais carga de acessos em um ambiente de servidor WordPress para alto tráfego.

Como dito no início do artigo, realizei algumas implementações na AWS e GCP onde arquitetei ambientes para alto tráfego de sites em WordPress.

Antes de iniciar a arquitetura e implementação do ambiente, solicitei algumas métricas importantes que foram:

 

1. Média de acessos simultâneos e mensal do WordPress

Ter essas métricas bem definidas por mais que o site esteja em crescimento exponencial, é muito importante para a implementação do ambiente. Sem elas, o arquiteto ficará as cegas e vai implementar “supondo” tal tráfego. Isso não é seguro, pois se o tráfego for muito maior, você terá problemas.

Essas métricas são importantes paras as seguintes tarefas:

  • Escolha do tipo de servidor(es)
  • Quantidade de CPU RAM
  • Escolha do Web Server
  • Otimizações no Nginx ou LiteSpeed Web Server
  • Otimizações no PHP
  • Otimizações e arquitetura do MySQL

 

2. Tamanho do Banco de Dados

Não sou especialista em banco de dados, existem profissionais para isso, os famosos DBA’s. No entanto, adquiri conhecimento suficiente para entender os principais gargalos e problemas com banco de dados.

Sites em WordPress com banco de dados muito grande, dependendo do nível do servidor, após ter uma carga leve de acessos a parte interna do site fica extremamente lenta, mesmo que as paginas para os visitantes estejam rápidas.

Em projetos de alto tráfego sempre coloco como requisito que o banco de dados seja contratado a parte, ou seja, externo. Isso vai fazer com que o servidor não tenha gargalos de CPU por conta do banco de dados.

Ou seja, você terá no mínimo 01 servidor para o banco de dados e 01 servidor para o WordPress propriamente dito.

 

Cenário para Sites de Alto Tráfego AWS – Cliente com 5 mil conexões Simultâneas

Vou dar uma pincelada básica na arquitetura que utilizamos para um de nossos clientes. Ele possui um projeto em WordPress para eventos e Streaming, o requisito era aguentar um tráfego simultâneo e constante de 5 mil pessoas online.

1. Hardware

Na AWS existem vários tipos de famílias de servidores, desde as mais genéricas até as mais potentes. Nesse case em específico usamos:

  • Servidor EC2 família T2
  • Discos SSD EFS 
  • Banco de Dados RDS

Servidor EC2 t2.xlarge / 4 CPU / 16 GB RAM

Banco de Dados RDS: db.t3.large / 2 CPU / 8 GB RAM

 

Não copie esses dados e tente replicar em seu cenário. Pois eu conheci o projeto, vi como funciona então escolhi os serviços que poderiam atender a demanda. 

 

2. Softwares e Configurações

A partir do budget máximo do cliente eu precisava escolher o melhor ambiente, mas precisava também escolher a melhor solução em termos de software. Não estava no escopo do projeto, mas tomei a liberdade de pensar em algo mais “rápido e otimizado”, com um cache reforçado.

As soluções utilizadas foram:

  • LiteSpeed Web Server + LiteSpeed Cache 
  • PHP 7.4 
  • Redis Server

Mas só isso Alex? Sim! Mas tem uma sacada que os leigos acabam deixando passar, afinal, executar alguns comandos no servidor para a instalação é bem simples. Mas como fica os ajustes no servidor e aplicações instaladas focado em WordPress ? Hein ?

A primeira coisa que otimizamos foi o PHP. Por padrão ele vem com configurações mínimas, dando pouco poder aos processos e deixando o WordPress bem limitado para executar o código.

A segunda coisa que realizamos foi configurações de otimização e cache no LiteSpeed, por padrão ele já é muito bom, mas quando incrementamos fica incrível. Ele também oferece um plugin de cache e otimização gratuito e instalamos no site, ficou um foguete!

Mas ainda faltava o Redis, ele é super importante para o cache de objetos. Com ele o site ganha uma performance muito interessante no carregamento da página. E ainda realizei ajustes de otimização e ganhamos muito poder de performance no site do cliente.

 

3. Banco de Dados Externo RDS

O RDS é um serviço de banco de dados externo e gerenciado pelos engenheiros da Amazon AWS. Você não precisa instalar ou configurar nada, ele já vem pronto. Sua única tarefa é de criar o usuário, a base de dados e migrar o banco. 

Mas é de suma importância que a região onde está o RDS seja a mesma do Servidor EC2 para que você não tenha problemas de latência. Imagine o tempo de carregamento de um site onde o servidor está em um pais e o banco de dados em outro pais. Imagine a caca rs. 

 

4. CDN com CloudFront e S3 Storage

O CloudFront é um serviço da AWS para entrega de conteúdo ( CDN ) como: vídeos, imagens, arquivos. No geral seu site ficará mais rápido, pois o serviço possui uma baixa latência, inclusive o CloudFront da AWS possui 03 Data Center em SP.

A partir do momento que você utiliza um CDN, sempre que um visitante acessar seu site, muitas imagens, vídeos, CSS e arquivos estáticos estarão em cache, o servidor não irá gastar recursos para fornecer essas informações. Isso maximiza também na quantidade de novas conexões que o servidor irá suportar.

O S3 Storage é o serviço que irá guardar os arquivos dentro de baldes de objetos, os famosos buckets. Então configuramos o CloudFront e o S3 com um subdomínio personalizado para o cliente, seguindo o modelo: cdn.exemplo.com.br ,.

A missão agora era integrar tudo, fazer com que os vídeos e imagens do site “que eram muitas” fossem enviados para o bucket do S3 e fossem distribuídas para o CDN CloudFront. Felizmente existe um plugin gratuito que possui uma versão paga para WordPress, o WP Offload Media.

Se tiver interesse em adquirir o plugin WP OFFLOAD MEDIA clique no banner abaixo para saber mais detalhes.

Esse plugin em sua versão paga, faz com que todas as suas imagens, videos e arquivos sejam enviados para o S3 e sincronizados com o CDN. Na sua versão gratuita apenas os novos conteúdos são sincronizados.

Após configurarmos o CDN , realizamos vários testes e o cliente ficou extremamente contente com o serviço prestado. Durante a transmissão não houve quedas, batemos quase as 5 mil conexões.

O servidor teve um consumo de CPU máximo de 30/40% e nem 20% de memória RAM. Tudo isso pelo simples fato de configurarmos toda uma estrutura otimizada com o LiteSpeed + LiteSpeed Cache , o Redis cacheando com muita performance e a cereja do bolo, o CDN CloudFront.

Caprichamos tanto que esse servidor aguentaria fácil 10/15 mil conexões simultâneas sem ter quedas ou ficar muito lento.

 

Demonstração: Ambiente Alto Tráfego WordPress na AWS com 10 mil conexões simultâneas

No vídeo abaixo arquitetei um laboratório na Amazon  AWS para testar um tráfego de 10 mil conexões/acessos simultâneos em um site WordPress. Confira em primeira mão:

 

 

Considerações Finais

Se você possui uma empresa ou projeto que tem muito tráfego, você precisa de uma solução em servidor focado em alto tráfego. Nesse artigo comentei sobre a Amazon AWS, mas existem várias empresas que podemos realizar algo de qualidade tanto quanto na AWS. 

Você terá uma mudança na questão financeira, pois os valores de uma hospedagem comum em comparação a um serviço privado de alta qualidade são totalmente distintos. Se seu projeto tem muito tráfego, é muito provável que você esteja monetizando ou tendo algum lucro real com condições para investir, caso contrário não te entendo, e nem sei qual língua você fala.

Serviços privados e personalizados para seu projeto vão te dar uma segurança enorme, juntamente com a qualidade e profissionalismo que seu projeto vai alcançar. Mas diferente das hospedagens tradicionais, em um ambiente privado você é dono do ambiente, então você terá que ter um especialista cloud por conta, seja mensal ou por hora técnica. 

Não importa se os servidores possuem 100GB de RAM 100 CPU e 1000Tb de disco, é necessário que o ambiente seja otimizado e configurado de forma personalizada para sua aplicação. Caso contrário mesmo você tendo o servidor mais potente do mundo, irá encontrar problemas e até travamentos.

Ainda irei abordar mais assuntos sobre isso, mas o que achou sobre o artigo ? Deixe seu comentário.

 

Abraços. 

 

Mais Artigos

Serviço para Desktop Remoto em Cloud na Amazon AWS

Com todos os problemas envolvendo a pandemia do Coronavírus (COVID-19) no ano de 2020 surge cada vez mais a necessidade de pensarmos em estratégias e soluções para que os processos e serviços da empresa sejam

0 comentário

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Abrir chat
Olá, vamos conversar?