Como criar e configurar o balanceador de carga de rede na AWS

Como criar e configurar o balanceador de carga de rede na AWS
Quando o usuário solicita um aplicativo ou um servidor da web aumentar além de um determinado limite, é difícil para um único servidor lidar com a carga e os usuários começam a enfrentar dificuldades para acessar o aplicativo. Para resolver esse problema, a maioria dos aplicativos da Web está em execução em mais de um servidor para gerenciar a demanda de alta carga dos usuários. Mas exigimos algum mecanismo para dividir os pedidos entre diferentes servidores. Para resolver esse problema, precisamos usar um balanceador de carga que possa distribuir o tráfego nos servidores com base em algum algoritmo. Os algoritmos mais comuns utilizados são ROBIN redondos, Round-Robin ponderado, menor conexão, menor tempo de resposta, hash de fluxo, etc. Como um dos maiores provedores de serviços em nuvem, a AWS oferece diferentes tipos de balanceadores de carga, e você deve decidir qual é mais adequado e econômico para lidar com seu trabalho de aplicativo.

Tipos de balanceadores de carga na AWS

Na AWS, você recebe os quatro tipos de balanceadores de carga a seguir:

Balanceador de carga clássica

Funciona na camada de transporte (TCP) e na camada de aplicação (HTTP). Ele não suporta mapeamento dinâmico de porta e requer uma relação entre a porta do balanceador de carga e a porta da instância. Agora, é um serviço herdado e não é recomendado usar muito.

Balanceador de carga de aplicação

É o balanço de carga mais usado que direciona o tráfego com base na camada de aplicativo (http/https). Ele também suporta o recurso de mapeamento dinâmico de porta e fornece roteamento inteligente.

Balanceador de carga de rede

O balanceador de carga de rede usa um algoritmo de hash de fluxo e opera na camada de transporte (TCP), i i.e., Camada 4 do modelo OSI. Ele pode lidar com mais solicitações do que o balanceador de carga do aplicativo e fornece a menor latência.

Balancer de carga de gateway

É um balanceador de carga que oferece outros benefícios, como segurança de rede e firewall. Ele toma decisões de roteamento na 3ª camada OSI (camada de rede) e usa o protocolo de Geneve na porta 6081.

Criando balanceador de carga de rede usando o AWS Management Console

Neste artigo, criaremos e configuraremos um balanceador de carga de rede. O primeiro passo é configurar o serviço sobre o qual queremos aplicar nosso balanceador de carga. Pode ser instâncias EC2, funções lambda, endereços IP ou balanceadores de carga de aplicativos. Aqui, escolheremos instâncias do EC2, então procure o serviço EC2 no console.

Configure quantos casos você quiser para o seu aplicativo.

Antes de criar nosso balanceador de carga, precisamos criar um grupo -alvo. Abra o console dos grupos -alvo do menu esquerdo na seção EC2.

Agora, clique em Criar Grupo Target para começar.

Primeiro, você precisa escolher o serviço que deseja criar o grupo de destino. Estes serão as instâncias no nosso caso:

Em seguida, forneça o nome do seu grupo -alvo, o protocolo de rede, o número da porta e o VPC (rede privada virtual) à qual suas instâncias do EC2 pertencem.

Para um grupo -alvo que será usado com um balanceador de carga de rede, o protocolo deve ser um protocolo da camada 4 como TCP, TLS, UDP ou TCP_UDP como o balanceador de carga de rede opera na camada 4 do modelo de camada OSI.

A porta aqui mostra a porta em que seu aplicativo está em execução nas instâncias do EC2. Ao configurar seu aplicativo em várias instâncias do EC2 com um grupo -alvo, verifique se o seu aplicativo em todas as instâncias do EC2 está em execução na mesma porta. Nesta demonstração, nosso aplicativo está em execução na porta 80 das instâncias do EC2.

Para VPC, você deve selecionar o VPC em que suas instâncias EC2 existem. Caso contrário, você não pode adicionar as instâncias do EC2 ao grupo -alvo.

Você também pode configurar as verificações de saúde para que, se um alvo cair, o balanceador de carga parará automaticamente de enviar o tráfego de rede para esse alvo.

Agora, você precisa registrar suas instâncias em seu grupo -alvo. As solicitações do usuário serão encaminhadas para as metas registradas.

Para registrar o alvo, basta selecionar esses alvos ou instância neste caso e clique em "Incluir como pendente abaixo". Aqui, escolhemos instâncias pertencentes a diferentes zonas de disponibilidade para manter nosso aplicativo funcionando, mesmo que um AZ desça.

Por fim, clique em Create Target Group e você está pronto para ir.

Agora, criaremos nosso balanceador de carga de rede, então abra a seção de balanceador de carga no menu e clique em Criar o balanceador de carga.

A partir dos tipos a seguir, selecione o balanceador de carga de rede:

Primeiro, defina o nome do seu balanceador de carga de rede na seção de configuração básica.

Agora, escolha o esquema de rede, eu.e., Você deseja que seu balanceador de carga seja público ou apenas deseja usá -lo em sua rede privada (VPC).

O tipo de endereço IP define se suas instâncias do EC2 estão usando endereços IPv4 ou IPv6. Se suas instâncias do EC2 usarem apenas endereços IPv4, você poderá selecionar o IPv4 opção. Caso contrário, selecione o Pilha dupla opção.

Selecione o VPC para o balanceador de carga. Deve ser o mesmo que os de instâncias e grupos -alvo.

Em seguida, você pode selecionar as zonas de disponibilidade e sub -redes nas quais existem instâncias de Target EC2. Mais zonas de disponibilidade significam que mais seus aplicativos estão altamente disponíveis. Ao executar seu aplicativo em mais de uma instância do EC2, verifique se suas instâncias do EC2 estão executando em diferentes zonas de disponibilidade.

Como nossas instâncias pertencem a cada uma das zonas de disponibilidade presentes na região, selecionaremos todos com suas respectivas sub -redes.

EUA-East-2a

EUA-East-2b

EUA-East-2c

Agora, temos que definir o protocolo de rede e a porta e selecionar nosso grupo de destino para o nosso balanceador de carga. O balanceador de carga irá direcionar todo o tráfego para este alvo.

Finalmente, nossa configuração está completa. Basta clicar no balanceador de carga Criar no canto direito do botão, e estamos prontos para ir.

Uma vez configurado, você encontrará um terminal para o seu balanceador de carga na seção de descrição. Você usará este terminal para acessar seu aplicativo.

As solicitações do usuário serão recebidas através do endpoint do Balancero de carga, que o direcionará para a instância configurada através do grupo -alvo. Se você tentar várias solicitações, suas solicitações serão atendidas aleatoriamente por qualquer instância.

Então, criamos e configuramos com sucesso um balanceador de carga de rede usando o AWS Management Console.

Criando o balanceador de carga de rede usando a AWS CLI

O AWS Console é fácil de usar e gerenciar serviços e recursos em sua conta, mas a maioria dos profissionais do setor prefere a interface da linha de comando. É por isso que a AWS criou a solução de fornecer CLI para seus usuários, que podem ser configurados em qualquer ambiente, Windows, Linux ou Mac. Então, vamos ver como podemos criar um balanceador de carga usando a interface da linha de comando.

Então, depois de configurar sua CLI, basta executar o seguinte comando para criar um balanceador de carga de rede:

$: AWS ELBV2 CREATE-BALANCER-NAME --Rede de tipo -Subnets

Em seguida, devemos criar um grupo -alvo para este balanceador de carga de rede.

$: AWS ELBV2 Create-Target-Group-Name --Protocolo TCP --port 80-ID

Em seguida, precisamos adicionar metas ao nosso grupo -alvo usando o seguinte comando:

$: AWS ELBV2 Targets de registro--Grupo-Grupo-Ano --ID dos alvos =

Finalmente, como ouvinte, anexaremos nosso grupo -alvo ao nosso balanceador de carga.

$: AWS ELBV2 CREATENER-LISTER--BALANCER-ARN --protocolo tcp --port 80-Ações-defensores Tipo = Forward, TargetGrouparn =

Então, criamos com sucesso um balanceador de carga de rede e adicionamos um grupo-alvo como ouvinte ao balanceador de carga usando a interface da linha de comando da AWS.

Conclusão

O balanceamento de carga é fundamental para qualquer tipo de aplicativo da Web, pois isso ajuda a fornecer gratificação do usuário, promissora a disponibilidade e um bom tempo de resposta. Eles reduzem o tempo de inatividade, fornecendo as verificações de saúde necessárias, facilitam a implantação do grupo automático, direcionam o tráfego para o servidor, fornecendo a menor latência e rotear o tráfego para outra zona de disponibilidade em caso de falha do sistema. Para lidar com pedidos maciços em nosso servidor, podemos aumentar os recursos de nossa instância, como mais CPU, memória e mais largura de banda de rede. Mas isso só pode ser alcançado para um certo nível e não será bem -sucedido e adequado em muitos aspectos, como custo, confiabilidade e escalabilidade. Definitivamente, teremos que aplicar mais servidores para nosso aplicativo. Apenas um ponto a lembrar é que o Balancero de Carga Elastic AWS (ELB) é responsável apenas por rotear e distribuir as solicitações do usuário. Isso não adicionará ou removerá servidores ou instâncias em sua infraestrutura. Usamos o AWS Auto Scaling Group (ASG). Esperamos que você tenha achado este artigo útil. Verifique os outros artigos de dica do Linux para obter mais dicas e tutoriais.