Segunda, 14 Janeiro 2013 08:45

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

Escrito por 
Avalie este item
(0 votos)

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

301.bmp

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

EC2#1 EC2#2

Selecione Launch Classic Wizard e clique Continue

303

Selecione a AMI básica  64-bit Amazon Linux

304.bmp

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

305.bmp

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.

306.bmp

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

307.bmp

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

308

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.

309.bmp

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

310.bmp

Conectando de forma independente a cada Web Server

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

311.bmp

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

312.bmp

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):

313

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.

LB#1

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.

315.bmp

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.

316.bmp

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

317.bmp

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

318.bmp

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.

319.bmp

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

320.bmp

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.

321a

321b

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.

CW#1323.bmp

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.

Lido 649 vezes
Juliano Rossetto

// Desenvolvedor PHP e Joomla

// Suporte em ambientes Linux (Ubuntu e Debian).

// Suporte a Amazon Web Services (AWS) - Amazon Cloud Professional

Formado em Análise e Desenvolvimento de Sistemas

Siga no Twitter   Curta Facebook    Google +

Website.: www.jrossetto.com.br/

Busca

Últimos Trabalhos

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

Sobre

// Desenvolvedor PHP e Joomla

// Suporte em ambientes Linux (Ubuntu e Debian).

// Suporte a Amazon Web Services (AWS)