fbpx

Balanceamento de carga elástica (ELB) e monitoramento da AWS

balancer
Compartilhar no facebook
Compartilhar no linkedin
Compartilhar no twitter
Compartilhar no whatsapp

Analisamos alguns desenvolvimentos recentes no mundo do balanceamento de carga e monitoramento na AWS que talvez você ainda não conheça.

As empresas hoje em dia não podem permitir que um aplicativo sucumba a um pico de tráfego ou falhe devido a uma sobrecarga de solicitações do usuário.

Dois dos principais benefícios da computação em nuvem hoje são a elasticidade e a escalabilidade, que ajudam a garantir o desempenho ideal de um aplicativo.

A elasticidade permite o escalonamento horizontal para que um aplicativo atenda à demanda em tempo real e a escalabilidade permite que o sistema existente de um aplicativo manipule uma quantidade maior de trabalho.

Manter esses dois elementos é o motivo pelo qual o ELB (Elastic Load Balancer – Balanceador de Carga Elástico) se tornou uma necessidade tão importante se a AWS for o seu provedor de nuvem pública.

Com uma infra-estrutura multicamadas que distribui as solicitações dos usuários sobre vários recursos de computação em vez de uma única máquina, os aplicativos podem alcançar a elasticidade necessária para atender à demanda sem o risco de falha.

O ELB também permite o escalonamento automático (Auto Scaling Groups) para lidar com qualquer aumento e diminuição do tráfego que um aplicativo experimenta, com alta disponibilidade e também o monitoramento (CloudWatch) para inicializar.

A AWS forneceu o balanceamento de carga gerenciado por algum tempo. Mas nos últimos anos, novos desenvolvimentos no balanceamento de carga aumentaram significativamente a capacidade de um aplicativo de obter flexibilidade e desempenho ainda maiores.

Arquitetura de máquina única versus arquitetura em camadas

Quando um aplicativo depende de uma única máquina, sempre que uma capacidade de um servidor da web é violada, muitos usuários enviam solicitações de uma só vez ou uma atualização é executada, o tempo de inatividade pode ocorrer.

Os problemas podem ser exacerbados quando a mesma máquina também está executando um banco de dados, e se os reparos são necessários.

Para empresas maiores e em crescimento que estão enfrentando uma necessidade crescente de aumentar a escala devido à maior demanda, é necessária uma opção mais eficiente e flexível para rotear solicitações de usuários.

O Elastic Load Balancer da AWS usa uma arquitetura de três camadas para fornecer exatamente isso.

Todo o tráfego de usuários é distribuído em várias instâncias do Amazon EC2, e o próprio ELB está em uma VPC (Amazon Virtual Private Cloud) separada, garantindo alta disponibilidade.

Os grupos de escalonamento automático também garantem que qualquer pico de demanda seja dimensionado horizontalmente, de modo que as solicitações de entrada e as respostas de saída sejam tratadas de maneira flexível e contínua, sem o risco de sobrecarga ou falha.

Não apenas um ELB

Existem vários serviços de balanceamento de carga disponíveis, com três tipos fornecidos pela AWS: classic, application e network.

Balanceador de Carga Clássico

Esta é realmente apenas uma opção para aqueles com aplicativos na versão anterior da Amazon de sua atual VPC – a rede EC2-Classic.

Esta rede baseada em conexão essencialmente apenas encaminha as solicitações conforme elas entram no backend, permitindo virtualmente controle e escala zero.

Embora alguns aplicativos ainda precisem do CLB e algumas entidades optem por continuar a usá-lo, o CLB provavelmente será desativado ao longo do tempo, especialmente porque a maioria das atualizações / recursos do AWS será focada no ALB e no NLB.

Balanceador de Carga de Aplicativo

O ALB permite que os pedidos recebidos sejam distribuídos para o backend, dependendo do cabeçalho correspondente; ou seja, todo o tráfego é roteado com base no endereço IP do remetente original.

Trabalhando na sétima camada do modelo OSI e usando um algoritmo round-robin, as solicitações não são simplesmente enviadas para uma instância de back-end, mas sim interpostas e classificadas em várias instâncias por seus cabeçalhos individuais.

Múltiplas conexões também podem ser abertas para lidar com solicitações maiores, conforme necessário. O roteamento de tráfego para situações específicas e endereços IP, como nuvem híbrida, recuperação de desastre e datacenters no local, também pode ser facilmente manipulado, já que o cabeçalho HTTP de cada solicitação recebida pode ser alterado.

Balanceador de carga de rede

Esse é o mais novo balanceador e foi projetado pela AWS para lidar com cargas altas – com dezenas de milhões de solicitações por segundo – com alta taxa de transferência e baixa latência.

O NLB utiliza um algoritmo hash de fluxo na quarta camada do modelo OSI e pode rotear solicitações de entrada para qualquer grupo-alvo.

Devido à sua capacidade de lidar com endereços IP estáticos, o NLB também permite que você conecte um único endereço IP elástico através de uma sub-rede escolhida.

Qual a usar: quando e por quê?

Embora a maioria das novas implementações de balanceamento de carga não inclua os Balanceadores de Carga Clássicos, ainda há motivos para alguns precisarem.

Estes incluem, por página da própria CLB da Amazon, suporte para ouvintes E C2-Classic, TCP e SSL, e sessões sticky usando cookies gerados por aplicativos. Mas o interesse real está nos possíveis casos de uso para ALB e NLB.

Os balanceadores de carga de aplicativos são usados ​​para tráfego HTTP e HTTPS e permitem roteamento avançado, terminação SSL / TLS e visibilidade para microsserviços, contêineres e outras arquiteturas de aplicativos.

O ALB atende melhor às arquiteturas distribuídas, em que os detalhes do cabeçalho HTTP precisam ser lidos; Por esse motivo, o ALB permite uma grande flexibilidade, mas não é adequado para solicitações criptografadas.

Os balanceadores de carga de rede manipulam somente pacotes TCP e não podem acessar os detalhes de uma solicitação HTTP da mesma maneira que ALB. N

o entanto, se a criptografia de ponta a ponta for necessária, o NLB é a melhor opção, pois ela envia pacotes de tráfego diretamente para o servidor da Web, reduzindo a latência e garantindo a segurança do cliente para o servidor. O NLB é útil para aplicativos que exigem endereços IP fixos e roteamento de alto desempenho.

Tanto o ALB quanto o NLB podem manipular o tráfego para portas dinâmicas também.

Monitoramento e Registro de ELB

Juntamente com esses avanços de aplicativos para lidar com o aumento de cargas de usuários, há uma quantidade ainda maior de dados para rastrear e analisar.

Coletando os dados

Quando o log de acesso do ELB é ativado, todos os logs do ELB são enviados para um bucket de armazenamento do S3 e são gerados a cada cinco minutos.

Os dados coletados desses registros vêm do monitoramento de qualquer número de métricas, incluindo a eficiência operacional de um determinado ELB, os sistemas operacionais e navegadores de onde as solicitações chegaram, os tempos de processamento e latência, quais máquinas internas foram acessadas, quão uniformemente o tráfego está sendo distribuído e o volume de tráfego por áreas geográficas específicas, apenas para citar alguns.

As métricas e alarmes e os registros de acesso do CloudWatch podem ser usados ​​para monitorar tanto o ALB quanto o NLB.

Uma das métricas mais importantes do CloudWatch para o ELB é o HealthyHostCount, que permite rastrear instâncias saudáveis ​​em cada zona de disponibilidade.

Dada a ausência de filas de pico – presentes no CLB – a Contagem de Conexões Rejeitadas é outra métrica crítica para seguir a capacidade do ALB de se conectar corretamente a um destino e rotear uma solicitação.

O NLB é um serviço novo e em expansão, mas atualmente suas métricas vitais para monitoramento incluem o HealthyHostCount, ActiveFlowCount, TCP_Client_Reset_Count, TCP_ELB_Reset_Count e TCP_Target_Reset_Count.

Juntamente com as métricas e alarmes do CloudWatch, o Cloud Trail e o VPC Flow Logs também são ferramentas de monitoramento úteis para esse balanceador de carga.

O próximo passo, no entanto, está em suas mãos.

Acessar, agregar e manipular essas informações, seja por meras estatísticas, diagnósticos, solução de problemas ou desenvolvimento futuro, depende de você. As ferramentas certas podem ajudar você a seguir estrategicamente e utilizar sabiamente os inúmeros pontos de dados disponíveis a partir das solicitações dos usuários do seu aplicativo e ficar à frente da curva.

Comentários do Facebook

Conteúdos relacionados