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
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
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.