Como configurar o balanceador de carga do aplicativo para roteamento inteligente

Como configurar o balanceador de carga do aplicativo para roteamento inteligente
Balancer de carga de aplicação (ALB) é um tipo de balanceador de carga elástico fornecido pela AWS. Ele opera na 7ª camada do modelo de camada OSI e pode ser configurado para roteamento inteligente. Usando o balanceador de carga do aplicativo, o tráfego pode ser roteado para diferentes grupos -alvo, dependendo dos seguintes parâmetros:

● Métodos HTTP
● Parâmetros de consulta
● IP de origem
● Cabeçalho HTTP
● Caminho
● Roteamento baseado em DNS (cabeçalhos de host)

A solicitação pode ser encaminhada para um alvo específico, validando qualquer um dos parâmetros mencionados acima. Neste artigo, discutiremos como podemos rotear o tráfego com base nos parâmetros mencionados acima usando o Application Load Balancer na AWS.

Configurando o ambiente

Para continuar o roteamento inteligente, você precisa configurar o ambiente básico, incluindo instâncias, grupo -alvo e balanceador de carga de aplicativos.

Criando instâncias do EC2

Para configurar a instância do EC2, basta seguir as seguintes etapas:

● Selecione Amazon Machine Image (AMI)
● Selecione o tipo de instância
● Forneça detalhes de configuração (VPC, sub -rede, AZ, metadados, etc.)
● Anexe o armazenamento (EBS, armazenamento de instâncias)
● Gerenciar grupo de segurança
● Revise e inicie

As instâncias agora estão configuradas. O próximo é criar o grupo -alvo.

Criando grupo -alvo

Precisaremos de pelo menos dois grupos -alvo para demonstrar com êxito os métodos de roteamento para o balanceador de carga do aplicativo, por isso vamos criar dois grupos -alvo usando as seguintes etapas:

● Escolha o tipo de destino
● Selecione Protocolo de rede e porta
● Selecione VPC
● Configurar verificações de saúde
● Registrar metas

Primeiro, temos que selecionar o tipo de destino - pode ser uma instância, endereço IP, função lambda ou outro balanceador de carga de aplicação.

Selecione Protocolo de rede. Nesse caso, selecionaremos o HTTP na porta padrão 80, pois este é o protocolo suportado por um balanceador de carga de aplicativos. Você também terá que selecionar o VPC no qual suas instâncias estão executando.

Para configurar a verificação de saúde, basta selecionar o protocolo que você está usando para o seu aplicativo. Verificações de saúde ajudam a encaminhar o tráfego apenas para metas saudáveis.

Registre as metas (que são instâncias do EC2 neste caso).

Depois de registrar as metas, clique no grupo de alvo Create e ele será criado.

Criação de balanceador de carga de aplicativos (ALB)

Agora, vamos criar o balanceador de carga do aplicativo. O procedimento é definido abaixo.

● Selecionar esquema de rede (público / privado)
● Selecione Tipo de endereço IP (IPv4 / IPv4 e IPv6)
● Selecione VPC
● Selecione zonas de disponibilidade (AZ)
● Configurar o grupo de segurança
● Adicionar ouvintes

Você pode simplesmente visitar o seguinte artigo para criar e configurar o balanceador de carga do aplicativo na AWS.

https: // linuxhint.com/create-e-configure-aplicativo-carregar-balancer-on-aws/

Gerenciando regras para roteamento inteligente

Já criamos instâncias do EC2, grupos -alvo e um balanceador de carga de aplicativos. Agora, discutiremos como criar regras para um balanceador de carga de aplicativos para rotear o tráfego de acordo. O roteamento inteligente é uma habilidade que permite rotear e encaminhar o tráfego de rede e solicitações para um alvo especificado com base na condição e nas regras que você especificar sobre as solicitações recebidas.

Para configurar as regras para o roteamento inteligente, basta abrir a guia dos ouvintes em seu alb e clique nas regras de visualização/edição para o seu ouvinte.

Neste console, você pode criar e editar suas condições de roteamento e regras.

Agora, vamos começar e ver em detalhes todos os métodos que listamos desde o início.

Cabeçalho do host

Aqui, você deve especificar o alvo com base no DNS da solicitação recebida. Você pode definir vários domínios apontando para um único balanceador de carga; Cada um terá um alvo específico. Este esquema também é conhecido como roteamento baseado em DNS.

Clique na guia Inserir regra e selecione o cabeçalho do host no menu suspenso.

Especifique o cabeçalho do host que você deseja.

Em seguida, selecione a ação que deseja executar se a solicitação for recebida do cabeçalho do host que você especificou na etapa anterior. Você pode encaminhar a solicitação, redirecionar a solicitação ou retornar uma resposta fixa à solicitação. Para esta demonstração, encaminharemos a solicitação a um grupo -alvo.

Selecione o grupo -alvo. Agora todo o tráfego do DNS www.exemplo1.com será encaminhado ao grupo -alvo nomeado Demo-TG-1.

Da mesma forma, você pode adicionar várias regras especificando alvos diferentes para cada cabeçalho do host.

Roteamento baseado em caminho

No roteamento baseado no caminho, definimos o caminho DNS completo na condição da regra do ouvinte. Por exemplo, se você tiver uma seção de blog e seção de imagens em seu site, poderá rotear facilmente o tráfego para cada seção para um alvo diferente.

Crie uma nova regra e selecione a opção de caminho.

Especifique o caminho completo do destino.

Adicione a ação para encaminhar as solicitações ao seu grupo -alvo desejado.

A primeira regra significa que o tráfego de /API/V1 será encaminhado para Demo-TG-1. A segunda regra significa que o tráfego de /API/V2 será roteado para Demo-TG-2.

Cabeçalho HTTP

Quando há comunicação de servidor e cliente através das solicitações HTTP, alguns dados são passados ​​entre o servidor e o cliente usando os cabeçalhos HTTP. Esses cabeçalhos são de diferentes tipos, como cabeçalhos de solicitação, cabeçalhos de resposta, cabeçalhos gerais e cabeçalhos da entidade. Estes estão na forma de pares de chave e valor. O tráfego de rede em seu aplicativo também pode ser roteado para diferentes alvos, dependendo desses cabeçalhos HTTP definidos na solicitação.

Defina o cabeçalho HTTP com base em onde você deseja rotear a solicitação de rede. Para demonstração, tomamos o cabeçalho como localização = L1.

Depois de definir o cabeçalho HTTP, adicione o alvo para a regra e simplesmente crie -o.

Dessa forma, podemos especificar que a solicitação com o cabeçalho do local definido como L1 atingirá a demonstração de destino-TG-1 e L2 atingirá a demonstração de destino-TG-2.

Método de solicitação HTTP

Existem vários métodos de solicitação para solicitações HTTP como get, post, put, exclusão etc. Aqui, vamos ver como podemos rotear nossos pedidos com base nesses pedidos.

Para fazer isso, crie uma nova regra para o método de solicitação HTTP.

Forneça o tipo do seu método de solicitação HTTP. Iremos inserir o pedido para esta demonstração.

Adicione o alvo ao qual deseja encaminhar todos os pedidos de obtenção do seu aplicativo da web e clique em Salvar, e sua regra se tornará ativa. Dessa forma, solicitações diferentes podem ser roteadas para diferentes grupos -alvo.

Parâmetros de consulta

Às vezes, esta informação adicional é adicionada com as solicitações HTTP. É definido na forma de pares de valor -chave. O tráfego de rede em um balanceador de carga também pode ser roteado para um destino específico, dependendo dos parâmetros de sequência de consulta fornecidos na solicitação do usuário.

Para começar, selecione a sequência de consulta como uma condição para sua regra.

Agora, defina um par de valores -chave como seu parâmetro de consulta.

Escolha o alvo e termine a configuração da regra.

Você pode ver abaixo das duas regras. As solicitações com o parâmetro de consulta Tipo = T1 são encaminhadas para Demo-TG-1 enquanto e as solicitações com o Tipo de parâmetro de consulta = T2 atingiu o alvo Demo-TG-2.

IP fonte

Você também pode definir uma regra do ouvinte para encaminhar a solicitação a um grupo -alvo específico, dependendo do endereço IP do usuário que está fazendo a solicitação para o balanceador de carga.

Para configurar o IP de origem, basta fornecer o CIDR e escolher o alvo que você deseja.

Cada intervalo de endereço IP ou IP pode ser especificamente roteado para um alvo diferente, como mostrado abaixo.

Conclusão

O roteamento inteligente é muito importante quando se trata de projetar um aplicativo da Web avançado e de alto nível. Como o que é demonstrado neste artigo, podemos encaminhar as solicitações a muitos alvos usando um único balanceador de carga de aplicativos com base nos parâmetros de solicitação que obtemos dos usuários. Verifique os outros artigos do Linux Dint para obter mais dicas e tutoriais.