- Introdução
- Infraestrutura AWS e Relianoid
- Implantando duas instâncias Relianoid no AWS Marketplace
- Configurando a rede para as instâncias Relianoid EC2
- Habilitando instâncias Relianoid EC2 com licenças temporais
- Configurando o IP virtual para balanceamento de carga
- Configurando o serviço Relianoid Cluster no Amazon Web Services
- Configurando um Balanceamento de Carga L4 Simples para Serviços da Web
- Adicionando novas interfaces ao Load Balancer
Introdução #
O artigo a seguir descreve como configurar serviços avançados de balanceamento de carga com o Relianoid Load Balancer para alta disponibilidade na infraestrutura do Amazon Web Services EC2 . Descreveremos o procedimento para configurar um cluster Relianoid e um perfil de balanceamento de carga TCP para balancear serviços HTTP com três servidores web de backend.
Infraestrutura AWS e Relianoid #
O diagrama a seguir descreve a arquitetura que queremos implementar o balanceamento de carga da web com o Relianoid Application Delivery Controller na AWS.
É necessário implantar dois Relianoid Application Delivery Controllers. Este modelo está disponível no marketplace da Amazon Web Services e cada Relianoid Application Delivery Controller é 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 Relianoid ADC é configurada com uma interface eth0 , e cada instância é atribuída a um IP elástico . Além disso, um IP elástico adicional é atribuído a um IP adicional através da interface eth0 na instância ZLB1-prod , que será usado para fins de balanceamento de carga, conforme descrito abaixo:
Produto ZLB1 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
Produto ZLB2 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 endereço IP adicional é atribuído ao ZLB1-prod e configurado no balanceador de carga com o nome eth0:vip1 e IP 172.31.26.47 . Este IP é usado para configurar um Serviço de Balanceamento de Carga e fazer parte do serviço de cluster . Portanto, este IP funcionará apenas em uma das instâncias do Relianoid por vez, que gerencia a função ATIVA no cluster. Este IP interno é atribuído a um IP elástico, que é acessado pelos clientes para se conectarem ao serviço web publicado.
Finalmente, backend01 , backend02 e backend03 são instâncias EC2 com servidores web baseados em Linux; essas instâncias fazem parte do serviço de balanceamento de carga onde o cliente se conecta quando solicita http://54.144.190.17/.
Implantando duas instâncias Relianoid no AWS Marketplace #
Vamos implantar dois balanceadores de carga Relianoid e configurá-los conforme descrito anteriormente.
Acesse a seção de instâncias EC2 e clique em Iniciar instância.
1. Procure a AMI (Ambulation Interface) do Relianoid Load Balancer Enterprise Edition necessária. Esta AMI é baseada em um modelo de licença BYOL (Bring Your Own License). A fase de avaliação é gratuita e inclui suporte durante um mês; após esse período, será necessária uma licença definitiva para trabalhar.
2. Escolha um tipo de instância . Selecione aqui a instância necessária com base nos recursos que você deseja balancear. Uma única instância t2.small é adequada para começar a trabalhar com perfis L4 , mas se você quiser usar perfis HTTP , recomendamos pelo menos uma instância t2.medium . No entanto, uma instância t2.micro é suficiente para fins de teste.
3. Configurar detalhes da instância . Selecione aqui a VPC que executará as novas instâncias do Relianoid. Neste exemplo de configuração, introduziremos as instâncias EC2 do Relianoid na mesma VPC dos servidores web de back-end reais já configurados.
4. Adicionar armazenamento . Por padrão, uma instância EC2 do Relianoid requer pelo menos 12 GB de armazenamento. Se você deseja ativar os logs por padrão, recomendamos aumentar esse tamanho para pelo menos 20 GB. O Relianoid não precisa acessar o disco, apenas salvar os logs; portanto, o tipo de volume para fins gerais é uma boa escolha.
5. Adicionar Etiquetas . Configure aqui algumas etiquetas de descrição, se desejar.
6. Configurar o Grupo de Segurança . Por padrão, o Relianoid utiliza a porta TCP 444 para gerenciamento da interface web HTTPS, a porta 9999 para o daemon de sincronização de sessões e a porta TCP 22 via SSH para gerenciamento via linha de comando e clustering. Além disso, cada porta virtual utilizada nos serviços virtuais do balanceador de carga precisa ser incluída no seu grupo de segurança. Configuramos um grupo de segurança para instâncias EC2 do Relianoid em um modo menos restritivo, conforme descrito a seguir:
TIPO = Todo o tráfego Protocolo = TODOS Faixa de portas = Todos Fonte = 0.0.0.0/0 Descrição = Permitir tudo de todos para todos
Este grupo de segurança é criado para fins de teste, você pode optar por bloquear todas as portas e permitir apenas o uso para balanceamento de carga e gerenciamento.
Assim que o assistente de configuração retornar à Lista de Instâncias EC2, o novo dispositivo começará a ser implantado e o estado "Iniciando" será exibido. Em seguida, configure um nome descritivo no campo Nome ; em nosso caso, nossos balanceadores de carga implantados no EC2 são nomeados ZLB1-prod e ZLB2-prod.
Configurando a rede para as instâncias Relianoid EC2 #
Após a implantação dos dispositivos virtuais Relianoid e a exibição do estado " Em execução " nos indicadores de instância, podemos prosseguir com a configuração da rede.
Clique com o botão direito do mouse sobre o dispositivo ZLB1-prod e selecione Rede > Gerenciar endereços IP . Na janela pop-up Gerenciar endereços IP , clique em Atribuir novo IP e depois no botão Sim, Atualizar . O sistema atribuirá um novo IP para a interface eth0 na mesma VPC. Anote este novo IP; em nosso exemplo, será 172.31.26.47 . O sistema atribuiu um novo IP que será usado para balanceamento de carga no futuro serviço de cluster.
Acesse a seção Elastic IPs e atribua um novo Elastic IP a cada instância do Relianoid . Esses endereços serão usados para fins de gerenciamento, não para balanceamento de carga.
Na mesma seção Elastic IP , atribua um novo IP ao ZLB1-prod , mas, neste caso, escolha o endereço IP privado 172.31.26.47 . Após essa configuração, o ZLB1-prod estará acessível via web e SSH com o IP 34.225.30.206 , enquanto o ZLB2-prod estará acessível pelos mesmos serviços com o IP 54.161.240.226 e o Elastic IP 54.144.190.17 atribuído ao IP 172.31.26.47.
Habilitando instâncias Relianoid 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.
Após o acesso bem-sucedido à interface gráfica web, você verá dois valores importantes: o nome do host e a chave do certificado. Ambas as informações são exclusivas para cada balanceador de carga e estão relacionadas à licença de ativação. Utilize essas informações no seguinte URL, conforme descrito: https://www.relianoid.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 à interface eth0 (172.31.26.47) na instância ZLB1-pro, e esse IP foi atribuído a um IP elástico (54.144.190.17) . Agora, resta realizar essa configuração no balanceador de carga ZLB1-pro.
Acesse o balanceador de carga ZLB1-pro através da interface web utilizando seu endereço IP elástico https://34.225.30.206:444 . Após o login, acesse o menu de navegação Rede > Interfaces Virtuais > Criar Interface Virtual e realize a seguinte configuração:
Interface pai = 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
Nome da interface virtual = vip1
Endereço IP = 172.31.26.47
Pressione o botão Criar para aplicar a configuração.
Agora, um novo endereço IP, 172.31.26.47 , com o nome eth0:vip1 , foi configurado no balanceador de carga Relianoid ZLB1-pro para EC2 e pode ser acessado por ping a partir de qualquer instância EC2 nesta VPC.
Configurando o serviço Relianoid Cluster no Amazon Web Services #
O cluster Relianoid Load Balancer opera em modo ativo-passivo com estado , o que significa que os recursos do cluster são configurados em ambos os nós, mas estão disponíveis apenas no nó ATIVO . Quando um desses nós 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 do cluster, o Amazon Web Services precisa ser notificado de alguma forma de que o IP virtual configurado para balanceamento de carga (172.31.26.47) estará funcionando agora por meio do ZLB2-prod.
Para isso, o serviço Relianoid Cluster utiliza o cliente AWS, que precisa ser configurado com permissões no módulo EC2 para gerenciamento de interfaces. Portanto, antes de iniciar o serviço Relianoid Cluster, precisamos prepará-lo. Vamos configurar uma chave AWS em sua conta com permissões para gerenciar IPs no EC2, que serão utilizadas na interface de linha de comando da AWS.
Acesse o console da Amazon em https://console.aws.amazon.com/iam/ e, no menu de navegação, escolha Usuário . Clique no botão Adicionar usuário.
Configure um nome de usuário descritivo = aws-for-zlb
Em Selecionar tipo de acesso da AWS, escolha Acesso programático e clique no botão Próximo: Permissões . Agora, na seção Definir permissões , clique em Criar grupo e, na nova janela, preencha o campo Nome do grupo com um nome descritivo, por exemplo, AmazonEC2 . Por fim, no campo Filtrar políticas, pesquise e selecione a política chamada AmazonEC2FullAccess , que concede permissões para alterar os IPs atribuídos entre instâncias EC2, entre outras.
Clique em Próximo: Etiquetas e em Próximo: Revisar . Por fim, clique em Criar usuário e a janela final exibirá o ID da chave de acesso e a chave de acesso secreta para este usuário. Guarde-os para uso futuro.
Agora estamos prontos para configurar o serviço Relianoid Cluster. Para isso, acesse o painel web do ZLB1-pro pelo endereço 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 : A chave de acesso e a chave secreta são os valores já gerados nas linhas anteriores. Região: selecione aqui a região onde seu controlador de entrega de aplicativos Relianoid 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 palavra-passe: insira aqui a senha raiz do ssh no outro nó, por padrão, o ID da instância do ZLB2-pro.
Clique no botão Gerar e aguarde alguns segundos. Enquanto isso, o nó onde você executou a configuração assumirá a função ATIVA (ZLB1-pro) e o outro (ZLB2-pro) assumirá a função PASSIVA.
Neste ponto, o Relianoid Cluster foi configurado na AWS e está pronto para funcionar. Vamos configurar nosso primeiro serviço de balanceamento de carga em cluster.
Configurando um Balanceamento de Carga L4 Simples para Serviços da Web #
Acesse LSLB > Farms > Criar Farm com os seguintes parâmetros.
Leve em consideração que o IP virtual 172.31.26.47 utilizado é o IP virtual configurado anteriormente e um recurso do cluster que estará sempre acessível a partir do nó ATIVO . Clique em Criar e continuar.
Agora, na nova janela, configure a seção Global conforme mostrado abaixo:
Por fim, configure a seção Serviços conforme descrito:
Utilize persistência de IP com um tempo limite de 60 segundos, caso precise garantir que o mesmo IP do cliente se conecte ao mesmo servidor de backend durante um determinado período. Configure as verificações de integridade avançadas com o FarmGuardian . Use o check_tcp como uma verificação de integridade simples para verificar se a porta TCP 80 do servidor de backend está aberta em cada servidor. Em seguida, adicione os IPs e portas internos dos servidores de backend onde os serviços web reais estão em execução.
Agora teste a conexão com o IP elástico http://54.144.190.17/ atribuído ao IP interno 172.31.26.47; a conexão passará pelo balanceador de carga usando a interface eth0:vip1 e será encaminhada para um dos servidores de backend disponíveis.
Agora, para forçar a mudança da função ATIVA no cluster, por exemplo, reiniciando o nó com essa função, após alguns segundos, o outro assumirá o serviço virtual e se conectará novamente ao IP público. As conexões de clientes atuais e novas serão estabelecidas com o mesmo backend, mas desta vez através do novo nó ATIVO , sem qualquer interrupção para os clientes.
Adicionando novas interfaces ao Load Balancer #
Para fins de balanceamento ou para qualquer outra necessidade, é possível configurar mais interfaces para o balanceador de carga. Para isso, basta seguir os passos descritos pela AWS para adicionar novas interfaces a uma instância EC2. Consulte o artigo da AWS para entender melhor as melhores práticas: https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/best-practices-for-configuring-network-interfaces.html . Ao adicionar novas interfaces à instância EC2, o Relianoid as detectará automaticamente, permitindo que você as configure conforme desejar.
Aproveite o balanceamento de carga e o clustering avançados na AWS com a Relianoid!






