X
    Categoria: Amazon

Como criar um ELB para fazer balanceamento da carga através de várias intâncias.

 

Este tutorial ira abordar como criar um ELB para fazer balanceamento da carga de tráfego através de várias intancias (servidores Cloud) EC2 em uma mesma Availability Zone. Iremos abordar os seguintes tópicos:

  • Lançar multiplos web servers em um bloco
  • Criar um Elastic Load Balancer
  • Configurar o ELB para servir de frente aos web servers

Lançando os Web Servers

Neste exemplo nós iremos lançar dois servidores Amazon Linux com um web server Apache com PHP e uma aplicação básica instalada na inicialização. Esse tutorial ira fazer uma rápida introdução com exemplos bastante básicos para as suas instancias como objetivo de fazer você pensar sobre padrões mais complicados que provavelmente você irá querer para implementar na sua empresa.

Navegue através da aba EC2 no console da AWS e clique em Launch Instance

Selecione Launch Classic Wizard e clique Continue

Selecione a AMI básica  64-bit Amazon Linux

Mude o número de instancias para 2 e clique Continue

Na próxima tela nós iremos usar o campo User Data para inicializar nossa instancia, rodando um script customizado para instalar os pacotes necessários (Apache e PHP) e um código de exemplo (scripts em PHP) que usaremos neste tutorial. Para isso, copie e cole o script de inicialização abaixo (você pode usar Shift-Enter para inserir uma nova linha na caixa de texto) dentro do campo  User Data e clique em Continue:

#!/bin/sh
curl -L http://tinyurl.com/bootstrap-sh | sh

Isto irá fazer o download e executar o script bootstrap.sh de um bucket S3. Apenas para conhecimento, nós usamos o servico tinyurl para encurtar o tamanho da URL que você deve digitar na caixa de texto. A URL real é http://awsenterprisetraining.s3.amazonaws.com/scripts/bootstrap.sh. Sinta-se a vontade para fazer o download do script e analisar o que ele faz exatamente para customizar uma AMI Amazon Linux generica para essa aula.

Dê um nome amigável ao seu novo web server como “Lab Web Servers” e clique Continue.

Após isso, crie um par de chaves (se ainda não tiver nenhuma) e faça o download para  c:ec2. Para o exemplo abaixo, nós nomeamos o par de chaves de “Lab”.

Crie um security group, que são suas regras de firewall. Partindo do principio que estamos construindo um Web server, nás vamos nomea-lo de “Lab Web Tier”, e abriremos as portas 22 e 80.

Reveja suas opções, e clique em Launch.

Conectando de forma independente a cada Web Server

Lance as instancias e monitore-as para ter certeza que estão rodando.

Clique no primeiro Web Server, localize o nome de DNS do servidor, selecione e copie este nome.

Cole o nome DNS em outro janela/aba do navegador e você deverá ver algo como mostrado abaixo (repita este passo para o segundo servidor):

Note os diferentes ID’s de instancia presentes em cada web server.

Criando um ELB

Você possui agora dois web servers, mas você precisa de um load balancer na frente destes servidores para que os seus usuários acessem um único lugar e para balancear as requisições para os servidores. No console EC2, clique em Load Balancers, e depois clique no botão Create Load Balancer.

Nós iremos criar apenas um load balancer HTTP simples, então de o nome ao seu ELB de algo como LabELB, deixe as configurações padrão para o Listener, e clique em Continue.

Na proxima tela mude o Ping Path para / (delete o index.html) e aceite as opções avançadas. Note que estas configurações podem ser alteradas no futuro, e configure como o ELB Health Check irá se comportar incluindo o health check protocol, porta, e o caminho assim como o health check interval, timeout, e o heath thresholds.

Selecione seus Web Servers e adicione-os ao seu ELB e clique em Continue.

Revise suas configurações do ELB e clique em Create (seguido de Close).

A AWS está criando agora o seu ELB. Isso irá demorar alguns minutos para personalizar o seu load balancer, anexar os seus web servers, e fazer uma série de verificações para certificar a saúde deles. Clique no seu load balancer, selecione a aba Instances, e espere até que o status das instancias mudem de Out of Service para In Service. Perceba que a coluna Healthy? Mudou de N0 para Yes.

Uma vez que seu ELB estiver estável, clique na aba Description, selecione e copie o nome DNS A Record do ELB.

Abra a URL do ELB em uma outra aba do navegador. Aperte o botão atualizar do navegador e você deverá passar através dos seus servidores web.

Parabéns! Você acabou de configurar e iniciar com sucesso um ELB.

Métricas do ELB com CloudWatch

O ELB reporta automaticamente as métricas de load balancer para o CloudWatch.  Você pode ver essas estatisticas clicando na aba CloudWatch no console, clicando no link ELB a direita, e selecionando a estatística que deseja ver. O ELB reporta request latency, request count, heathy & unhealthy host counts, e uma série de métricas adicionais. As métricas são reportadas assim que são encontradas e podem levar alguns minutos para aparecerem no CloudWatch. Os screenshots a seguir mostram o gráfico HealthyHostCount no CloudWatch, que muda de zero hosts ups para dois assim que o ELB é criado neste tutorial.

Encerrando todos os Serviços Pagos

Essas instruções irão encerrar todos os serviços tarifados feitos neste tutorial. Por favor, apenas siga esses passos se você não planeja completar nenhum tutorial adicional da AWS.
Para encerrar todos os serviços pagos, localize suas instancias de web server no link Instances do console EC2, selecione o web server, clique com o botão direito e selecione Terminate Instance. Logo após clique no link ELB no console EC2, com o botão direito clique no ELB e selecione Delete Load Balancer.

 

 

Juliano Rossetto: Formado em Analise e Desenvolvimento de Sistemas. Desenvolvedor dos principais CMS ( Wordpress, Joomla). Desenvolvedor de E-commerce (Opencart e WooCommerce). Analista de SEO: Otimização de sites para mecanismos de buscas. Analista de Infraestrutura voltado para servidores na nuvem: Amazon Web Services (AWS), DigitalOcean e Linode. Para dúvidas ou serviços entre em contato aqui.