Nota: O seguinte artigo irá ajudá-lo com: Elastic Load Balancing na AWS
O Elastic Load Balancing é o coração dos aplicativos na AWS. Saiba tudo sobre o ELB, seus tipos e recursos neste post.
Atualmente, a maioria das organizações precisa gerenciar e aumentar a escalabilidade, disponibilidade e tolerância a falhas de seus aplicativos. A AWS oferece uma excelente solução para isso, ou seja, o serviço Elastic Load Balancing. Esse serviço consiste em um balanceador de carga que pode distribuir cargas de trabalho em muitos recursos de computação, como servidores virtuais.
Os serviços de balanceamento de carga nos permitem configurar verificações de integridade para monitorar a integridade dos recursos de computação. Ele também nos permite descarregar o trabalho de criptografia e descriptografia para seu balanceador de carga para que os recursos de computação possam se concentrar em seu trabalho principal.
Elastic Load Balancing (ELB): visão geral
O ELB é um serviço que distribui automaticamente o tráfego de entrada em várias instâncias do EC2. Isso ajuda a alcançar níveis mais altos de tolerância a falhas em seus aplicativos, fornecendo a capacidade de balanceamento de carga para distribuir o tráfego de aplicativos.

Além disso, o Elastic Load Balancing pode detectar instâncias do EC2 não íntegras e, assim que uma instância do EC2 não estiver íntegra, o ELB parará de enviar tráfego para ela até que se torne íntegra novamente. Os clientes podem habilitar facilmente o Elastic Load Balancing em uma ou várias zonas de disponibilidade para obter um desempenho de aplicativos mais consistente.
Recursos do Elastic Load Balancing
Segurança
Você pode gerenciar e criar grupos de segurança associados ao Elastic Load Balancing na Amazon Virtual Private Cloud (VPC) para fornecer opções extras de rede e segurança para o Application Load Balancer e o Classic Load Balancer.
Alta disponibilidade
Um Elastic Load Balancer é altamente disponível. Você pode distribuir o tráfego de entrada para seu aplicativo para instâncias do EC2 em uma única zona de disponibilidade ou em várias zonas de disponibilidade.
Alta taxa de transferência
Os Elastic Load Balancers são projetados para lidar com o tráfego à medida que crescem e podem carregar e balancear milhões de solicitações/s. Ele também pode lidar com picos repentinos de tráfego.
Verificações de integridade
Com o Elastic Load Balancing, você pode manter a integridade de suas instâncias do EC2 sob controle e não correr o risco de enviar tráfego para uma instância não íntegra.
Monitoramento e registro operacional
O Amazon CloudWatch relata as métricas do Application e do Classic Load Balancer, como contagens de erros, tipos de erro, latência de solicitação, contagens de solicitação e muito mais.
Excluir proteção
Você pode habilitar a proteção de exclusão em um Elastic Load Balancer para evitar que ele seja excluído acidentalmente.

Componentes dos Elastic Load Balancers
Ouvintes
Você precisa configurar um ou mais ouvintes para seu balanceador de carga. É um processo que verifica as solicitações de conexão. Ele é configurado com um protocolo e uma porta para conexões para as conexões de front-end (cliente para balanceador de carga) e um protocolo para conexões de back-end (balanceador de carga para instância de back-end).
Os protocolos com suporte para balanceamento de carga elástico incluem:
- HTTPS (HTTP seguro)
- TCP
- SSL (TCP seguro)
Balanceador de carga
Um balanceador de carga funciona como o “policial de trânsito” na frente de seus servidores, distribuindo solicitações de clientes em todos os servidores equipados para tratá-los de forma a maximizar a velocidade e a utilização da capacidade e garantir que nenhum servidor seja sobrecarregado, o que pode resultar em degradação do desempenho.
O balanceador de carga roteia o tráfego para os servidores ativos caso um servidor fique offline. O balanceador de carga inicia solicitações para um novo servidor quando ele é adicionado ao grupo de servidores.
Grupos-alvo
As solicitações são roteadas para um ou mais destinos registrados usando cada grupo de destino. Você define um grupo de destino e condições ao criar cada regra de ouvinte. Quando uma condição de regra é satisfeita, o tráfego é roteado para o grupo de destino apropriado.
Para vários tipos de solicitações, você pode criar grupos-alvo separados. Por exemplo, crie diferentes grupos de destino para solicitações aos microsserviços do seu aplicativo e solicitações genéricas.
Tipos de balanceadores de carga
Balanceador de carga de aplicativos
O Application Load Balancer permite que os desenvolvedores configurem e direcionem o tráfego de entrada do usuário final para aplicativos executados na nuvem pública da AWS.
O balanceamento de carga é crucial em um ambiente de nuvem com vários aplicativos da web. Um balanceador de carga garante que nenhum servidor seja sobrecarregado, dividindo o tráfego de rede e os fluxos de informações entre vários servidores. Isso aumenta a experiência do usuário, aumenta a capacidade de resposta e a disponibilidade do aplicativo e pode se defender contra ataques distribuídos de negação de serviço (DDoS).

O acesso a aplicações web tem crescido significativamente nos últimos anos. No entanto, aumentos inesperados de tráfego podem desacelerar os serviços online e reduzir a disponibilidade. O Application Load Balancer distribui com eficiência a carga da rede na nuvem pública para aumentar a estabilidade e a disponibilidade.
O Application Load Balancer só direcionará o tráfego para um destino íntegro dentro do recurso de nuvem se um aplicativo problemático atingir a Camada 7. WebSocket é outro protocolo suportado pelo Application Load Balancer para aumentar a conectividade com o servidor subjacente.
Sites e aplicativos móveis executados em contêineres ou em instâncias do AWS EC2 são os que mais se beneficiam do uso de um balanceador de carga de aplicativos. Em uma arquitetura de microsserviços, o Application Load Balancer pode ser utilizado como um load balancer interno na frente de instâncias do EC2 ou contêineres do Docker que implementam um serviço específico. Além disso, ele pode ser usado na frente de um aplicativo de API RESTful.
Vários serviços da AWS são compatíveis com o balanceador de carga de aplicativos, incluindo:
- Escalonamento automático da AWS
- Amazon Elastic Container Service
- AWS CloudFormation
- AWS CodeDeploy
- Gerenciador de certificados da AWS
Balanceador de carga clássico
O tráfego de aplicativos de entrada é dividido em várias instâncias do EC2 em várias zonas de disponibilidade usando um balanceador de carga clássico. Um balanceador de carga clássico atua como o único ponto de contato do cliente. Isso torna seu aplicativo mais acessível. Sem prejudicar o fluxo geral de solicitações para seu aplicativo, você pode adicionar/remover instâncias de seu balanceador de carga clássico conforme suas necessidades mudam.
Um ouvinte usa o protocolo e a porta que você definiu para monitorar as solicitações de conexão do cliente. O ouvinte então transmite solicitações para uma ou mais instâncias registradas usando o protocolo e a porta configurados. Você modifica seu load balancer adicionando um ou mais listeners.
Para garantir que o load balancer roteie apenas solicitações para instâncias íntegras, você pode configurar verificações de integridade, que são usadas para monitorar a condição das instâncias registradas.
O balanceador de carga clássico, por padrão, distribui uniformemente o tráfego entre as zonas de disponibilidade que você habilita para seu balanceador de carga. Habilite o balanceamento de carga entre zonas em seu balanceador de carga para distribuir o tráfego entre todas as instâncias registradas em todas as zonas de disponibilidade ativadas.

Tipos de Classic Load Balancer:
- Classic Load Balancers voltados para a Internet: um balanceador de carga voltado para a Internet pode rotear solicitações de clientes para as instâncias do EC2 registradas com o balanceador de carga pela Internet, graças ao seu domínio DNS que pode ser resolvido publicamente. Seu load balancer recebe um nome DNS público quando é criado, que os clientes podem usar para fazer solicitações. Os servidores DNS traduzem o nome DNS do seu balanceador de carga para os endereços IP públicos dos nós do balanceador de carga. Os endereços IP privados conectam cada nó de balanceamento de carga às instâncias de back-end.
- Balanceadores de carga clássicos internos: Os nós de um balanceador de carga interno têm apenas endereços IP pessoais. O nome DNS de um balanceador de carga interno pode ser resolvido publicamente para os endereços IP dos nós. Como resultado, as solicitações só podem ser roteadas por balanceadores de carga internos de clientes que têm acesso à VPC do balanceador de carga.
Balanceador de carga de rede
O balanceador de carga de rede funciona na quarta camada do modelo OSI. Ele pode lidar com milhões de solicitações por segundo.
O load balancer escolhe um destino do grupo de destino para a regra padrão após receber uma solicitação de conexão. Ele tenta estabelecer uma conexão TCP com o destino selecionado na porta indicada nas configurações do ouvinte.

Para aumentar a tolerância a falhas do seu aplicativo, você pode habilitar várias zonas de disponibilidade, um serviço pago na AWS para balanceadores de carga de rede. Se uma zona de disponibilidade ficar inativa, seu aplicativo não parará de funcionar.
Para tráfego TCP, um destino é selecionado usando um algoritmo de hash de fluxo com base no protocolo, porta de origem, endereço IP de origem, porta de destino, endereço IP de destino e o número de sequência TCP.
As conexões TCP dos clientes têm números de sequência e portas de origem diferentes, portanto, as conexões são roteadas para outros destinos. Cada conexão TCP exclusiva é roteada para um único destino durante a conexão.
Balanceador de carga de gateway
Seus dispositivos virtuais de terceiros podem ser simplesmente implantados, dimensionados e gerenciados com a ajuda do Gateway Load Balancer. Ele fornece um único gateway para dividir o tráfego entre vários dispositivos virtuais e dimensioná-los para cima ou para baixo em resposta à demanda. Isso elimina possíveis pontos de falha em sua rede e aumenta a disponibilidade.

Dispositivos virtuais de fabricantes independentes podem ser encontrados, testados e adquiridos diretamente por meio do AWS Marketplace. Se você deseja continuar trabalhando com seus fornecedores atuais ou experimentar algo novo, essa experiência integrada acelera o processo de implantação para que você possa se beneficiar de seus dispositivos virtuais mais rapidamente.
Benefícios do balanceador de carga do gateway:
- Implementação mais rápida de dispositivos virtuais de terceiros.
- Dimensionando seus dispositivos virtuais enquanto gerencia os custos.
- Melhore a disponibilidade do dispositivo virtual
Palavras finais
Os Elastic Load Balancers são uma parte crítica de muitas infraestruturas feitas na AWS. Os recursos que obtemos de um ELB facilitam o gerenciamento de sua infraestrutura. O Elastic Load Balancing é um método testado e comprovado de distribuir solicitações de aplicativos e tráfego da Web em vários destinos ou instâncias.
Você pode dimensionar automaticamente suas várias cargas de trabalho usando o Elastic Load Balancer. Cobrimos todos os tipos de balanceadores de carga fornecidos pela AWS e você pode usá-los de acordo com as demandas do seu aplicativo.