Balanceamento de carga e cluster avançados no Amazon Web Services

POSTADO POR Zevenet | 24 julho, 2020

Introdução

O artigo a seguir descreve como configurar serviços avançados de balanceamento de carga com o ZEVENET Load Balancer para alta disponibilidade em Infraestrutura do Amazon Web Services EC2. Vamos descrever o procedimento para configurar um Grupo ZEVENET e configure um perfil de balanceamento de carga TCP para serviços HTTP de balanceamento de carga com 3 servidores de back-end da web.

Infraestrutura AWS e ZEVENET

O diagrama a seguir descreve a arquitetura que queremos implementar o balanceamento de carga da web com o ZEVENET Application Delivery Controller na AWS.

É necessário implantar dois controladores de entrega de aplicativos ZEVENET, este modelo está disponível no mercado Amazon Web Services e cada controlador de entrega de aplicativos ZEVENET está configurado na mesma VPC que os servidores de back-end da web, conforme mostrado no diagrama acima com a sub-rede 17.32.16.0./20.

Cada instância do ZEVENET ADC é configurada com uma interface eth0e cada instância é atribuída a uma IP elástico, também um IP elástico adicional é atribuído a um IP adicional por meio de eth0 no ZLB1-prod instância que será usada para fins de balanceamento de carga, conforme descrito abaixo:

ZLB1-prod está atribuído a 172.31.20.89 em eth0, essa instância será acessada diretamente por um IP elástico 34.225.30.206
ZLB2-prod está atribuído a 172.31.26.237 em eth0, essa instância será acessada diretamente por um IP elástico 54.161.240.226

Um IP adicional é atribuído a ZLB1-prod e configurado no balanceador de carga com o nome eth0: vip1 e IP 172.31.26.47, esse IP é usado para configurar aqui um serviço de balanceamento de carga e fazer parte do serviço de cluster, portanto, esse IP funcionará apenas em uma das instâncias da ZEVENET por vez, que gerencia o ACTIVE papel no cluster. Esse IP interno é atribuído a um IP Elastic, que é acessado pelos clientes para se conectar ao serviço da Web real publicado.

Finalmente back-end01, back-end02 e back-end03 são instâncias do EC2 com servidores da Web baseados em Linux, essas instâncias fazem parte do serviço de balanceamento de carga em que o cliente se conecta quando solicitado http://54.144.190.17/ .

Implantando duas instâncias ZEVENET no AWS Marketplace

Vamos implantar dois balanceadores de carga ZEVENET e configurá-los como descrito anteriormente.

Vá para a seção de instâncias do EC2 e pressione Iniciar instância.

1. Procure a AMI necessária do ZEVENET Load Balancer Enterprise Edition. este A AMI é baseada em uma licença BYOL modelo. A fase de avaliação é gratuita e a assistência é incluída durante um mês. Após esse período, é necessária uma licença definitiva para o trabalho.

2. Escolha um Tipo de Instância. Selecione aqui a instância necessária com base nos recursos que você deseja carregar o saldo. Um único t2.pequeno exemplo é bom começar a trabalhar com Perfis L4, mas se você quiser usar Perfis HTTP então recomendamos pelo menos um t2.médio instância. Mas um t2.micro instância é boa o suficiente para fins de teste.

3. configurar Detalhes da Instância. Selecione aqui a VPC onde executa as novas instâncias do ZEVENET. Neste exemplo de configuração, apresentaremos as instâncias do ZEVENET EC2 na mesma VPC que os servidores de back-end da web reais já configurados.

4. Adicionar armazenamento. Por padrão, a instância do ZEVENET EC2 requer pelo menos 12 GB de armazenamento; se você deseja ativar os logs por padrão, recomendamos aumentar esse tamanho em pelo menos 20 GB. O ZEVENET não requer acesso ao disco, apenas para salvar logs, portanto, o Tipo de volume para fins gerais é uma boa escolha.

5. Adicionar tags. Configure aqui algumas tags de descrição, se desejar.

6. configurar Grupo de segurança. O ZEVENET, por padrão, usa a porta TCP 444 para fins de gerenciamento da GUI da web HTTPS e a porta TCP 22 no SSH para fins de gerenciamento de linha de comando e cluster. Além disso, cada Porta virtual usado nos serviços virtuais do balanceador de carga precisará ser incluído no seu grupo de segurança. Configuramos um grupo de segurança usado para essas instâncias do ZEVENET EC2 em um modo menos restritivo, como a seguir:

TYPE = All traffic
Protocol = ALL 
Port Range = All
Source = 0.0.0.0/0
Description = Allow all from all to all

Este grupo de segurança é criado para fins de teste, você pode optar por bloquear todas as portas e permitir apenas os utilizados para balanceamento e gerenciamento de carga.

Depois que o assistente de configuração retornar à Lista de Instâncias do EC2, o novo dispositivo começará a ser implantado e o Iniciando O estado será mostrado. Em seguida, configure agora um nome descritivo no campo Nome, no nosso caso, nossos balanceadores de carga implantados no EC2 são nomeados ZLB1-prod e ZLB2-prod.

Configurando a rede para as instâncias do ZEVENET EC2

Depois que os dispositivos virtuais ZEVENET foram implantados e os Estados da instância estão mostrando Corrida modo, podemos prosseguir para configurar a rede.

Clique no botão direito sobre o ZLB1-prod aparelho e escolha Rede> Gerenciar endereços IP, Na Gerenciar endereços IP janela pop-up pressione Atribuir novo IP e pressione o botão Sim, atualização, o sistema atribuirá um novo IP para eth0 no mesmo VPC. Lembre-se desse novo IP, em nosso exemplo, esse novo IP será 172.31.26.47. O sistema atribuiu um novo IP que será usado para fins de balanceamento de carga no futuro serviço de cluster.

Vá para a seção IPs elásticos e atribua a cada instância do ZEVENET um novo IP elástico. Esses serão usados ​​para fins de gerenciamento, não para balanceamento de carga.

No mesmo IP elástico seção, atribua um novo IP ao ZLB1-prod, mas nesse caso, escolha o Private IP endereço 172.31.26.47. Após esta configuração ZLB1-prod estará acessível via web e ssh com o IP 34.225.30.206, mas ZLB2-prod está acessível através dos mesmos serviços com o IP 54.161.240.226 e IP elástico 54.144.190.17 atribuído ao IP 172.31.26.47.

Habilitando instâncias do ZEVENET EC2 com licenças temporais

Após a configuração dos IPs elásticos, os balanceadores de carga virtuais ficarão acessíveis da seguinte maneira:

O ZLB1-prod estará acessível através da raiz do usuário https://34.225.30.206:444 e senha do ID da instância.
O ZLB1-prod estará acessível através do ssh no IP 34.225.30.226 com o administrador do usuário e o arquivo de certificado privado; isso é configurado no momento da implantação do EC2.
O ZLB2-prod estará acessível através da raiz do usuário https://54.161.240.226:444 e senha do ID da instância.
O ZLB2-prod estará acessível através do ssh no IP 54.161.240.226 com o administrador do usuário e o arquivo de certificado privado; isso é configurado no momento da implantação do EC2.

Se você considerar alterar o nome do host antes de continuar, reinicie a instância do EC2 para aplicar as alterações.

Depois que o acesso à GUI da web for concluído com êxito, você verá dois valores importantes, o nome do host e a Chave do certificado, ambas as informações são únicas por Load Balancer e estão relacionadas à licença de Ativação, use essas informações na seguinte URL, conforme descrito: https://www.zevenet.com/activate-enterprise-edition-cloud-evaluation/

Uma vez preenchido o formulário, o sistema envia automaticamente a licença para o email indicado. Faça o upload da licença de ativação do PEM recebida por meio da GUI da web em cada balanceador de carga. Depois disso, a GUI da web é desbloqueada e todos os recursos estão totalmente ativados e operacionais.

Execute o mesmo procedimento de ativação nos nós ZLB1-prod e ZLB2-prod.

Configurando o IP virtual para balanceamento de carga

No ponto anterior, já atribuímos um IP adicional ao eth0 172.31.26.47 na instância ZLB1-pro, e esse IP foi atribuído a um IP Elastic 54.144.190.17, agora está pendente fazer essa configuração no balanceador de carga ZBL1-pro.

Acesse o balanceador de carga ZLB1-pro através da interface da web usando seu IP Elastic https://34.225.30.206:444, uma vez logado, vá ao menu de navegação Rede> Interfaces virtuais> Criar interface virtuale faça a seguinte configuração:

Parent Interface = eth0 172.31.26.47

* Como as instâncias do EC2 não sabem nada sobre IPs elásticos, precisamos configurar aqui o IP físico da instância do EC2 vinculado ao IP elástico público usado para fins de balanceamento de carga 54.144.190.17

Virtual Interface name = vip1
IP Address = 172.31.26.47

Imprensa Create para aplicar a configuração.

Agora um novo IP 172.31.26.47 com nome eth0: vip1 foi configurado no ZLB1-pro EC2 ZEVENET Load Balancer e pode ser executado em ping de qualquer instância do EC2 nesta VPC.

Configurando o serviço de cluster ZEVENET no Amazon Web Services

O cluster do ZEVENET Load Balancer funciona em stateful ativo-passivo modo, significa que os recursos do cluster estão configurados nos dois nós, mas disponíveis apenas no ACTIVE nó. Quando esse nó falha e essa função é iniciada no outro membro, os recursos do cluster precisam ser acessados ​​novamente. Como os IPs virtuais também são recursos de cluster, o Amazon Web Service precisa ser anunciado de alguma forma que o IP virtual configurado para balanceamento de carga 172.31.26.47 estará trabalhando agora via ZLB2-prod.

Para isso, o serviço ZEVENET Cluster usa o cliente AWS que precisa ser configurado com permissões no módulo EC2 para gerenciar interfaces, portanto, antes de iniciar o serviço ZEVENET Cluster, precisamos prepará-lo. Então vamos configurar um CHAVE AWS na sua conta com permissões para gerenciar IPs no EC2 para serem usados ​​na interface da linha de comandos da AWS.

Vá para o console da Amazon https://console.aws.amazon.com/iam/ , em seguida, no menu de navegação, escolha Usuário. Clique no botão Adicionar usuário.

Configure a descriptive User name = aws-for-zlb

In Selecione o tipo de acesso da AWS escolher Acesso programático e pressione o botão Próximo: Permissões. Agora no Definir permissões seção pressione Criar grupo e depois na nova janela preencha o campo Nome do grupo com um nome descritivo, por exemplo, AmazonEC2e, finalmente, no campo Políticas de filtro pesquise e selecione a política denominada AmazonEC2FullAccess que fornece permissões para alterar os IPs atribuídos entre instâncias do EC2, entre outros.

pressione Próximo: tags e Próximo: Revisão. Por fim, pressione Criar usuário, a janela final mostrará a você ID da chave de acesso e o Chave de acesso secreta para esse usuário, salve-o para uso futuro.

Agora estamos prontos para configurar o serviço ZEVENET Cluster, então acesse o painel da web no ZLB1-pro através do IP público atribuído https://34.225.30.206:444, seção Sistema> Cluster e preencha o formulário seguindo o exemplo:

Credenciais da AWS: Chave de acesso e Chave secreta são os valores já gerados nas linhas anteriores. A região, selecione aqui a região em que seu controlador ZEVENET Application Delivery está implantado.

Configurar cluster:

IP local: selecione o IP e a NIC de eth0.
IP remoto: insira aqui o IP de eth0 no nó ZLB2-pro.
Senha do Nó Remoto e Confirmar Password: insira aqui a senha raiz do ssh no outro nó, por padrão, o ID da instância do ZLB2-pro.

Clique em Gerar e aguarde alguns segundos enquanto isso, o nó em que você executa a configuração leva o ACTIVE papel (ZLB1-pro) e o outro (ZLB2-pro) assumirá a função PASSIVA Função.

Neste ponto, ZEVENET Cluster foi configurado no AWS e está pronto para funcionar, vamos configurar nosso primeiro serviço com balanceamento de carga em cluster.

Configurando um Balanceamento de Carga L4 Simples para Serviços da Web

Acesse LSLB> Fazendas> Criar Fazenda com os seguintes parâmetros.

Leve em consideração que o IP virtual usado 172.31.26.47 é o IP virtual configurado anteriormente e um recurso do cluster que pode ser acessado sempre a partir do ACTIVE nó. pressione Create E continue.

Agora, na nova janela, configure o Seção global como mostrado abaixo:

E finalmente, configure a seção Serviços como descrito:

Utilização Persistência de IP com um tempo limite de 60 segundos, no caso de você precisar garantir que o mesmo IP do cliente seja conectado ao mesmo back-end durante um certo período de tempo. Configure as verificações de integridade avançadas com FarmGuardian. Usar check_tcp como uma verificação de integridade simples para verificar se a porta 80 de back-end TCP está aberta em cada back-end. Em seguida, adicione os IPs internos dos servidores de back-end e a porta em que os serviços web reais estão sendo executados.

Agora teste a conexão com o IP elástico http://54.144.190.17/ assigned to the internal IP 172.31.26.47, the connection will pass through the load balancer using the eth0: vip1 e encaminhado para um dos back-end disponíveis.

Agora uma força para mudar o ACTIVE função no cluster, por exemplo, reinicialize o nó com essa função e, após alguns segundos, o outro assumirá o serviço virtual e se conectará novamente ao IP público. As conexões atuais e novas do cliente serão estabelecidas no mesmo back-end, mas desta vez através do novo ACTIVE nó sem interrupções do cliente.

Aproveite o balanceamento de carga e o cluster avançados na AWS com o ZEVENET!

Compartilhar no:

Documentação sob os termos da Licença de Documentação Livre GNU.

Esse artigo foi útil?

Artigos Relacionados