AWS Elastic Load Balancing – Visão Geral

Uma vantagem de ter acesso a um grande número de servidores na nuvem, como instâncias EC2 na AWS, é a capacidade de fornecer uma experiência mais consistente para o usuário final. Uma maneira de garantir consistência, é equilibrar a carga de solicitações em mais de um servidor. Um balanceador de carga é um mecanismo que distribui automaticamente o tráfego em várias instâncias EC2. Você pode gerenciar seus próprios balanceadores de carga virtuais em instâncias ou alavancar um serviço Cloud da AWS chamado Elastic Load Balancing, que fornece um balanceador de carga gerenciado para você.

O serviço Elastic Load Balancing permite que você distribua o tráfego em um grupo de instâncias em uma ou mais zonas de disponibilidade, permitindo que você obtenha alta disponibilidade em seus aplicativos. O Elastic Load Balancing suporta o roteamento e o balanceamento de carga do protocolo de transferência de HTTP, do protocolo de transferência HTTPS, do protocolo de controle de transmissão (TCP) e do tráfego SSL (Secure Sockets Layer) para instâncias da Amazon EC2.

O Balanço de carga elástico fornece um ponto de entrada de registro de nome canônico (CNAME) para a configuração do Sistema de Nomes de Domínio (DNS) e suporta os equilibradores de carga internos voltados para a Internet e para rede interna. Elastic Load Balancing suporta verificações de saúde para instâncias do Amazon EC2 para garantir que o tráfego não seja encaminhado para instâncias não saudáveis ​​ou falhas. Além disso, Elastic Load Balancing pode escalar automaticamente com base nas métricas coletadas.

Existem várias vantagens de usar o Elastic Load Balancing. Como o Elastic Load Balancing é um serviço gerenciado, ele se escala automaticamente para atender às demandas de maior tráfego de aplicativos e está altamente disponível dentro de uma região como serviço. O equilíbrio de carga elástica ajuda você a alcançar alta disponibilidade para seus aplicativos, distribuindo tráfego em instâncias saudáveis ​​em várias zonas de disponibilidade. Além disso, o Elastic Load Balancing integra-se perfeitamente com o serviço Auto Scaling para dimensionar automaticamente as instâncias do Amazon EC2 por trás do balanceador de carga.

Finalmente, o Elastic Load Balancing é seguro, trabalhando com o Amazon Virtual Private Cloud (Amazon VPC) para encaminhar o tráfego internamente entre os níveis de aplicativos, permitindo que você exponha apenas endereços IP públicos voltados para a Internet. O Elastic Load Balancing também suporta gerenciamento integrado de certificados e terminação SSL.

Elastic Load Balancing é um serviço altamente disponível e pode ser usado para ajudar a construir arquiteturas altamente disponíveis.

Tipos de Balanceadores de Carga

A AWS fornece vários tipos de balanceadores de carga para lidar com diferentes tipos de conexões, incluindo varreduras internas, e de carga que suportam conexões criptografadas.

Balanceadores de carga na internet

Um balanceador de carga voltado para a Internet é, como o nome indica, um balanceador de carga que leva pedidos de clientes pela Internet e então os distribui para instâncias da Amazon EC2 registradas no balanceador de carga.

Quando você configura um balanceador de carga, ele recebe um nome DNS público que os clientes poderem usar para enviar pedidos para sua aplicação. Os servidores DNS resolvem o nome DNS para o endereço IP público do seu balanceador de carga, que pode ser visível para aplicativos clientes.

Uma prática recomendada da AWS é sempre referenciar um balanceador de carga por seu nome DNS, em vez do endereço IP do balanceador de carga, para fornecer um ponto de entrada único e estável.

Como o balanceador de carga escala para dentro e para fora para satisfazer a demanda de tráfego, não é recomendado vincular um aplicativo a um endereço IP que pode não ser mais parte do pool de recursos do balanceador de carga.

Balanceadores de carga internos

Em um aplicativo de várias camadas, muitas vezes é útil usarmos o balanceador entre as camadas do aplicação. Por exemplo, um balanceador de carga voltado para a Internet pode receber e equilibrar o tráfego externo para a camada de apresentação ou para a camada da web cujas instâncias do Amazon EC2 enviam suas solicitações para um balanceador de carga sentado na frente do nível do aplicativo. Você pode usar balanceadores de carga internos para encaminhar o tráfego para suas instâncias da Amazon EC2 em VPCs com sub-redes privadas.

Balanceadores de carga HTTPS

Você pode criar um balanceador de carga que usa o protocolo SSL / Transport Layer Security (TLS) para conexões criptografadas (também conhecido como SSL offload). Esse recurso permite criptografia de tráfego entre o balanceador de carga e os clientes que iniciam sessões HTTPS e para conexões entre o balanceador de carga e as instâncias de back-end.

O Elastic Load Balancing fornece políticas de segurança que possuem configurações de negociação de SSL predefinidas para usar de modo a negociar conexões entre clientes e o balanceador de carga. Para usar o SSL, você deve instalar um certificado SSL no balanceador de carga que ele usa para encerrar a conexão e, em seguida, descriptografar as solicitações dos clientes antes de enviar pedidos para as instâncias da Amazon EC2 back-end.

Você pode, opcionalmente, optar por habilitar a autenticação em suas instâncias de back-end.  O Elastic Load Balancing não suporta Server Name Indication (SNI) em seu balanceador de carga. Isso significa que, se você quiser hospedar vários sites em varias instâncias do Amazon EC2 por trás do Elastic Load Balancing com um único certificado SSL.

Listeners

Todo o balanceador de carga deve ter um ou mais listeners configurados. Um listeners é um processo que verifica os pedidos de conexão – por exemplo, um CNAME configurado para o nome de registro A do balanceador de carga. Cada listeners é configurado com um protocolo e uma porta (cliente para balanceador de carga) para uma conexão frontal e um protocolo e uma porta para a conexão back-end (balanço de carga para Amazon EC2). Elastic Load Balancing suporta os seguintes protocolos:

  • HTTP
  • HTTPS
  • TCP
  • SSL

Elastic Load Balancing suporta protocolos operando em dois sistemas abertos diferentesda  Camadas de interconexão (OSI). No modelo OSI, Layer 4 é a camada de transporte que descreve a conexão TCP entre o cliente e sua instância back-end através do balanceador de carga.

A camada 4 é o nível mais baixo que é configurável para o seu balanceador de carga. A camada 7 é a camada de aplicação que descreve o uso de conexões HTTP e HTTPS de clientes para o balanceador de carga e do balanceador de carga para sua instância de back-end.

O protocolo SSL é usado principalmente para criptografar dados confidenciais em redes inseguras como a Internet. O protocolo SSL estabelece uma conexão segura entre um cliente e o servidor back-end e garante que todos os dados passados ​​entre seu cliente e seu servidor sejam privados.