O que é um Application Load Balancer? - Elastic Load Balancing

O que é um Application Load Balancer?

O Elastic Load Balancing distribui automaticamente seu tráfego de entrada entre vários destinos, como instâncias do EC2, contêineres e endereços IP, em uma ou mais zonas de disponibilidade. Ele monitora a integridade dos destinos registrados e roteia o tráfego apenas para os destinos íntegros. O Elastic Load Balancing escala seu balanceador de carga conforme seu tráfego de entrada muda com o tempo. Ele pode ser dimensionado automaticamente para a vasta maioria das cargas de trabalho.

O Elastic Load Balancing oferece suporte aos seguintes balanceadores de carga: balanceadores de carga da aplicação, balanceadores de carga da rede, balanceadores de carga do gateway e balanceadores de carga clássicos. Você pode selecionar o tipo de balanceador de carga que melhor se adapte às suas necessidades. Este guia aborda os Application Load Balancers Para obter mais informações sobre os outros balanceadores de carga, consulte o Guia do usuário de Network Load Balancers, o Guia do usuário de Gateway Load Balancers e o Guia do usuário de Classic Load Balancers.

Componentes do Application Load Balancer

Um load balancer serve como ponto único de contato para os clientes. O load balancer distribui o tráfego de entrada do aplicativo por vários destinos, como instâncias EC2, em várias Zonas de disponibilidade. Isso aumenta a disponibilidade do seu aplicativo. Você adiciona um ou mais listeners ao seu load balancer.

Um listener verifica a solicitações de conexão de clientes, usando o protocolo e a porta que você configurar. As regras que você define para um listener determinam como o load balancer roteia solicitações para seus destinos registrados. Cada regra consiste em uma prioridade, uma ou mais ações e uma ou mais condições. Quando as condições de uma regra forem atendidas, a ação será executada. É necessário definir uma regra padrão para cada listener e, opcionalmente, você poderá definir regras adicionais.

Cada grupo de destino roteia solicitações a um ou mais destinos registrados, como instâncias EC2, usando o protocolo e o número de porta que você especificar. Você pode registrar um destino com vários grupos de destino. Você pode configurar verificações de integridade em cada grupo de destino. As verificações de integridade são executadas em todos os destinos registrados a um grupo de destino especificado em uma regra de listeners para seu load balancer.

O diagrama a seguir ilustra os componentes básicos. Observe que cada listener contém uma regra padrão e um listener contém outra regra que roteia solicitações para um grupo de destino diferente. Um destino é registrado com dois grupos de destino.

Os componentes de um Application Load Balancer básico

Para obter mais informações, consulte a seguinte documentação do :

Visão geral do Application Load Balancer

Um Application Load Balancer funciona na camada de aplicativos, a sétima camada do modelo Open Systems Interconnection (OSI). Depois que o load balancer recebe a solicitação, ele avalia as regras do listener em ordem de prioridade para determinar qual regra deve ser aplicada e, em seguida, seleciona um destino no grupo de destino para a ação da regra. Você pode configurar regras do listener para rotear as solicitações para diferentes grupos de destino com base no conteúdo do tráfego do aplicativo. O roteamento é realizado de forma independente para cada grupo de destino, até mesmo quando um destino é registrado com vários grupos de destino. Você pode configurar o algoritmo de roteamento usado no nível do grupo de destino. O algoritmo de roteamento padrão é o de ida e volta. Como alternativa, você pode especificar o algoritmo de roteamento de solicitações menos pendentes.

Você pode adicionar e remover destinos do balanceador de carga conforme suas necessidades mudarem, sem perturbar o fluxo geral de solicitações para sua aplicação. O Elastic Load Balancing escala seu balanceador de carga à medida que o tráfego para sua aplicação muda com o tempo. O Elastic Load Balancing pode ser escalado para a vasta maioria de workloads automaticamente.

Você pode configurar verificações de integridade, que são usadas para monitorar a integridade dos destinos registrados para que o load balancer possa enviar solicitações apenas para os destinos íntegros.

Para obter mais informações, consulte Como o Elastic Load Balancing funciona no Manual do usuário do Elastic Load Balancing.

Benefícios da migração de um Classic Load Balancer

O uso de um Application Load Balancer em vez de um Classic Load Balancer oferece os seguintes benefícios:

  • Suporte a Condições do caminho. Você pode configurar regras para seu listener que encaminhe as solicitações com base no URL da solicitação. Isso permite que você estruture seu aplicativo em serviços menores e roteie-as ao serviço correto com base no conteúdo do URL.

  • Suporte a Condições do host. Você pode configurar regras para seu listener que encaminhem solicitações baseadas no campo do host no cabeçalho do HTTP. Isso permite que você roteie solicitações para vários domínios usando um único load balancer.

  • Compatibilidade com roteamento baseado em campos na solicitação, como Condições de cabeçalho HTTP e métodos, parâmetros de consulta e endereços IP de origem.

  • Suporte para solicitações de roteamento para vários aplicativos em uma única instância do EC2. Você pode registrar cada instância ou endereço IP com o mesmo grupo de destino usando portas diferentes.

  • Compatibilidade para redirecionar solicitações de um URL para outro.

  • Compatibilidade para retornar uma resposta HTTP personalizada.

  • Suporte para registrar destinos por endereço IP, incluindo destinos fora da VPC para o load balancer.

  • Compatibilidade para registrar as funções Lambda como destinos.

  • Compatibilidade com o load balancer para autenticar os usuários de seus aplicativos por meio da identidade corporativa ou social desses usuários antes das solicitações de roteamento.

  • Compatibilidade com aplicações em contêineres. O Amazon Elastic Container Service (Amazon ECS) pode selecionar uma porta não utilizada ao programar uma tarefa e registrá-la em um grupo de destino usando essa porta. Isso permite que você faça um uso eficiente dos seus clusters.

  • Compatibilidade com monitoramento da integridade de cada serviço de maneira independente, pois as verificações de integridade são definidas no nível do grupo de destino e várias métricas do CloudWatch são relatadas no nível do grupo de destino. Anexar um grupo de destino a um grupo do Auto Scaling permite que você escale cada serviço dinamicamente com base na demanda.

  • Os logs de acesso contêm informações adicionais e são armazenados em formato compactado.

  • Melhora no desempenho do load balancer.

Para obter mais informações sobre os recursos compatíveis com cada tipo de balanceador de carga, consulte a Comparação de produtos do Elastic Load Balancing.

O Elastic Load Balancing funciona com os serviços a seguir para melhorar a disponibilidade e a escalabilidade das suas aplicações.

  • Amazon EC2: servidores virtuais que executam suas aplicações na nuvem. Você pode configurar o load balancer para rotear o tráfego para suas instâncias EC2.

  • Amazon EC2 Auto Scaling: garante que você esteja executando o número desejado de instâncias, mesmo que uma instância falhe, e permite que você aumente ou diminua automaticamente o número de instâncias conforme a demanda de suas instâncias mude. Se você habilitar o Auto Scaling com o Elastic Load Balancing, as instâncias iniciadas pelo Auto Scaling serão registradas automaticamente no grupo de destino, e as instâncias encerradas pelo Auto Scaling terão o registro cancelado automaticamente do grupo de destino.

  • AWS Certificate Manager: ao criar um receptor HTTPS, você pode especificar certificados fornecidos pelo ACM. O load balancer usa certificados para encerrar conexões e descriptografar solicitações de clientes. Para ter mais informações, consulte Certificados SSL para o Application Load Balancer.

  • Amazon CloudWatch: permite que você monitore o seu balanceador de carga e adote as devidas medidas de acordo com a necessidade. Para ter mais informações, consulte Métricas do CloudWatch para seu Application Load Balancer.

  • Amazon ECS: permite que você execute, interrompa e gerencie contêineres do Docker em um cluster de instâncias do EC2. Você pode configurar o load balancer para rotear o tráfego para seus contêineres. Para obter mais informações, consulte Balanceamento de carga de serviço no Guia do desenvolvedor do Amazon Elastic Container Service.

  • AWS Global Accelerator: melhora a disponibilidade e o desempenho da sua aplicação. Use uma aceleradora para distribuir o tráfego entre vários balanceadores de carga em uma ou mais regiões da AWS. Para mais informações, consulte o Guia do desenvolvedor do AWS Global Accelerator.

  • Route 53: fornece uma forma confiável e econômica para rotear os visitantes dos sites ao traduzir nomes de domínio (como www.example.com) em endereços IP numéricos (como 192.0.2.1) que os computadores usam para estabelecer conexão uns com os outros. A AWS atribui URLs aos seus recursos, como balanceadores de carga. No entanto, você pode querer um URL que seja fácil para seus usuários se lembrarem. Por exemplo, você pode mapear o nome de domínio a um load balancer. Para obter mais informações, consulte Rotear tráfego para um balanceador de carga ELB no Guia do desenvolvedor do Amazon Route 53.

  • AWS WAF: você pode usar o AWS WAF com seu Application Load Balancer para permitir ou bloquear solicitações com base nas regras de uma lista de controle de acesso da Web (ACL da Web). Para ter mais informações, consulte Application Load Balancers e AWS WAF.

Para visualizar informações sobre serviços que estão integrados com seu load balancer, selecione o load balancer no AWS Management Console e selecione a guia Integrated services (Serviços integrados).

Definição de preço

Com o load balancer, você paga somente pelo que utilizar. Para obter mais informações, consulte Preço do Elastic Load Balancing.