Escalabilidade da camada da Web - Práticas recomendadas para o WordPress na AWS

Escalabilidade da camada da Web

Para transformar sua arquitetura de servidor único em uma arquitetura escalável de vários servidores, é necessário usar cinco componentes principais:

  • Instâncias do Amazon EC2

  • Imagens Amazon Machine Images (AMIs)

  • Balanceadores de carga

  • Escalabilidade automática

  • Health checks

A AWS fornece uma variedade grande de tipos de instâncias do EC2 para que você escolha a melhor configuração de servidor para performance e custo. De um modo geral, o tipo de instância otimizado para computação (por exemplo, C4) pode ser uma boa opção para um servidor Web do WordPress. É possível implantar as instâncias em várias zonas de disponibilidade dentro de uma região AWS para aumentar a confiabilidade da arquitetura toda.

Como você tem controle total de sua instância do EC2, é possível fazer login com acesso root para instalar e configurar todos os componentes de software necessários para executar um site do WordPress. Feito isso, você pode salvar essa configuração como uma AMI, que pode em seguida usar para executar novas instâncias com todas as personalizações que você fez.

Para distribuir solicitações do usuário final a diversos nós de servidor Web, você precisa de uma solução de balanceamento de carga. A AWS fornece esse recurso por meio do Elastic Load Balancing, um serviço altamente disponível que distribui tráfego para várias instâncias do EC2. Como seu site está veiculando conteúdo para os usuários via HTTP ou HTTPS, recomendamos que use o Application Load Balancer, um balanceador de carga na camada da aplicação com roteamento de conteúdo e capacidade de executar diversos sites do WordPress em domínios diferentes, se necessário.

O Elastic Load Balancing aceita a distribuição de solicitações em diversas zonas de disponibilidade na região AWS. Você ainda pode configurar uma health check para que o Application Load Balancer pare automaticamente de enviar tráfego para instâncias individuais que falharam (por exemplo, por um problema de hardware ou falha no software). A AWS recomenda usar a página de login do administrador do WordPress (/wp-login.php) para a health check, pois ela confirma se um servidor Web está funcionando e configurado para entregar arquivos PHP corretamente.

Você pode optar por criar uma página de health check personalizada que confira outros recursos dependentes, como banco de dados e recursos de cache. Para obter mais informações, consulte Health checks para os grupos de destino, no Guia do Application Load Balancer.

Elasticidade é uma característica importante da Nuvem AWS. É possível executar maior capacidade computacional (por exemplo, servidores Web) quando precisar e executar menos quando não precisar. O AWS Auto Scaling é um serviço da AWS que ajuda a automatizar esse provisionamento a fim de aumentar ou diminuir a capacidade do Amazon EC2 de acordo com as condições definidas, sem necessidade de intervenção manual. Você pode configurar o AWS Auto Scaling de modo que o número de instâncias do EC2 em uso aumente facilmente durante os picos de demanda para manter a performance e diminua automaticamente quando o tráfego diminui, para minimizar os custos.

O Elastic Load Balancing também aceita a adição e a remoção dinâmicas de hosts do Amazon EC2 na alternância do balanceamento de carga. O próprio Elastic Load Balancing também aumenta e diminui dinamicamente a capacidade de balanceamento de carga para se ajustar às demandas de tráfego, sem intervenção manual.