Balanceamento de carga na AWS: conheça suas opções

Introdução

Apesar da grande variedade de usos, plataformas e tecnologias, a maioria das aplicações compartilha algumas necessidades comuns: elas devem permanecer online e protegidas contra falhas de hardware, devem ser dimensionadas para atender à demanda e devem ser protegidas contra invasões e ataques.

Desde que os aplicativos começaram a migrar de computadores mainframe para sistemas abertos, as organizações têm usado balanceadores de carga para gerenciar a escalabilidade e a disponibilidade dos aplicativos. Diante de problemas complexos e ameaças à segurança mais sofisticadas, os balanceadores de carga passaram a oferecer conjuntos de recursos mais abrangentes, com funcionalidades adicionais de segurança e otimização.

Com o tempo, o simples balanceador de carga evoluiu e se tornou o poderoso controlador de entrega de aplicações (ADC). Em todo o mundo, milhares de organizações dependem dos ADCs para garantir que as aplicações que fazem parte do nosso dia a dia sejam seguras, rápidas e estejam sempre disponíveis. De serviços médicos de emergência e serviços bancários a jogos e aplicativos de relacionamento, os ADCs fornecem a tecnologia que ajuda as aplicações a oferecer o melhor desempenho possível.

À medida que as aplicações migram dos modelos tradicionais locais para serviços em nuvem, suas necessidades de escalabilidade, segurança e disponibilidade não diminuem. Portanto, não é de surpreender que todas as plataformas de nuvem — públicas e privadas — ofereçam serviços de balanceamento de carga como parte de suas principais ofertas de infraestrutura como serviço (IaaS).

O serviço Elastic Load Balancing (ELB) da Amazon Web Services (AWS) ajuda as organizações a disponibilizar centenas de milhares de aplicações, incluindo algumas das maiores da internet. E, assim como os balanceadores de carga locais incorporaram recursos para atender às necessidades dos clientes, os serviços de balanceamento de carga na AWS continuam incorporando novos recursos e funcionalidades.

Embora o ELB possa ser uma ótima opção para muitas organizações, outras precisam de funcionalidades adicionais para oferecer o melhor suporte possível às suas aplicações essenciais. Além disso, algumas empresas já implantaram ADCs e balanceadores de carga para dimensionar e gerenciar suas aplicações locais. Para essas organizações, adotar na AWS a mesma plataforma usada no data center pode reduzir o tempo, os custos e os riscos de uma migração para a nuvem. Antes de decidir qual serviço de balanceamento de carga é o mais adequado para sua organização, vamos analisar as diversas opções disponíveis na AWS.

Balanceamento de carga na AWS

A Amazon Web Services oferece o mais amplo conjunto de serviços entre os principais provedores de IaaS, abrangendo uma enorme variedade de funcionalidades e aplicações, desde computação simples e armazenamento em blocos até bancos de dados avançados e ambientes de aprendizado de máquina. Um componente essencial de muitas arquiteturas de clientes da AWS é o balanceador de carga, para o qual a AWS oferece dois serviços distintos (ambos sob o nome “Elastic Load Balancing”) para uso em ambientes de nuvem privada virtual (VPC).

Balanceador de Carga de Aplicações

O Application Load Balancer (ALB) da Amazon oferece balanceamento de carga, monitoramento de integridade e roteamento de solicitações baseado em URL na nuvem AWS. O ALB oferece balanceamento de carga para os protocolos HTTP e HTTPS, com certificados SSL do cliente carregados de um dos serviços de gerenciamento de certificados da AWS, além de oferecer suporte ao balanceamento de carga do tráfego WebSocket. Além disso, o ALB permite o dimensionamento automático dos recursos de servidores de back-end do Elastic Compute Cloud (EC2): quando a demanda de tráfego aumenta, o ALB pode acionar a implantação de servidores adicionais e removê-los quando a demanda diminui.

O serviço ALB também é dimensionado para lidar com o aumento da carga. À medida que o tráfego de rede da aplicação aumenta, instâncias adicionais do ALB são criadas e registradas no DNS, e o tráfego é então distribuído entre elas usando o método round-robin de DNS. Para obter o melhor desempenho diante de picos repentinos de carga, recomenda-se o pré-aquecimento das instâncias do ALB, pois a inicialização de novas instâncias pode levar de um a sete minutos.

O ALB pode ser implantado por meio do console web, da CLI, da API, de modelos do CloudFormation (CFTs) e de diversas ferramentas de automação, como o Ansible.

Balanceador de carga de rede

A mais recente adição à família de balanceamento de carga elástico da AWS é o Network Load Balancer (NLB). Assim como o balanceador de carga “clássico”, ele opera na camada 4 e oferece balanceamento de carga baseado em conexões e verificações de integridade nas camadas de rede e de aplicação. O NLB foi projetado para lidar bem com picos de tráfego e grandes volumes de conexões. Além disso, o NLB permite usar como destinos tanto endereços IP privados RFC 1918 quanto instâncias do EC2. As opções de escalabilidade automática, autoescalabilidade e implantação são semelhantes às do ALB.

Balanceador de Carga Clássico

A AWS também continua oferecendo seu Elastic Load Balancer “clássico”, que oferece suporte ao balanceamento de carga básico na camada 4 para tráfego TCP, mas não ao balanceamento nem ao direcionamento de tráfego na camada 7. As opções de escalabilidade automática, autoescalabilidade e implantação são semelhantes às do ALB.

ADC virtual F5 BIG-IP

A plataforma ADC F5® BIG-IP® representa o extremo oposto do espectro de balanceamento de carga em relação ao leve balanceador de carga clássico da AWS. Com um conjunto de recursos que atende a uma enorme variedade de desafios de segurança, otimização de aplicações e disponibilidade, o BIG-IP pode solucionar problemas e gerenciar o tráfego de aplicações de maneiras que soluções mais simples simplesmente não conseguem.

O BIG-IP oferece gerenciamento abrangente do tráfego de aplicações, incluindo inspeção, controle e manipulação completos do tráfego. Isso se aplica tanto às solicitações quanto às respostas na camada de aplicação, permitindo a prevenção contra perda de dados e a manipulação do conteúdo das respostas do servidor. Esse recurso tem se mostrado uma ferramenta rápida, confiável e inestimável para a resolução de problemas em milhares de organizações. Além disso, a inspeção e a manipulação programáticas completas do tráfego de aplicações oferecem aos desenvolvedores uma camada arquitetural adicional para aprimorar o comportamento das aplicações em um ponto de controle estratégico crítico.

BIG-IP vs. ELB: diferenças no gerenciamento

Toda essa capacidade programável de solucionar problemas traz consigo algumas questões que precisam ser reconhecidas. Em primeiro lugar, o BIG-IP opera em uma camada de infraestrutura diferente tanto do balanceador de carga clássico da AWS quanto do ALB. O BIG-IP é implantado como uma instância do EC2 em sua VPC, o que apresenta vantagens e desvantagens. Por fazer parte da VPC, o ADC pode gerenciar com eficiência o tráfego entre todos os componentes de uma zona de disponibilidade, além de oferecer a você um controle significativo sobre a comunicação entre os componentes da VPC.

Ao mesmo tempo, isso cria instâncias EC2 adicionais que precisam ser gerenciadas e mantidas. A alta disponibilidade do que se tornará um componente essencial para a operação — embora seja fácil de configurar — passa a ser sua responsabilidade. O gerenciamento da plataforma subjacente, incluindo atualizações de software e administração geral, não é realizado pela AWS, mas pelo cliente. Além disso, os novos recursos são disponibilizados por meio de versões lançadas no AWS Marketplace, em vez de atualizações de serviço praticamente transparentes.

Por fim, o BIG-IP pode ser dimensionado sob demanda e também pode dimensionar automaticamente as instâncias do servidor de aplicações, mas, quase inevitavelmente, o cliente terá de assumir uma parcela maior dos esforços de configuração em comparação com o uso de um serviço principal da AWS.

Qual balanceador de carga é ideal para mim?

A escolha da solução ideal para sua organização depende, essencialmente, das necessidades de suas aplicações e plataformas. Algumas aplicações e casos de uso são adequados ao AWS ELB, enquanto outros exigem os recursos avançados do BIG-IP.

Balanceamento de Carga Elástico da AWS

O ALB foi projetado para aplicações que exigem balanceamento de carga simples, com algumas regras básicas de mapeamento de URI para destino. O ALB atende às necessidades básicas de distribuição de tráfego e escalabilidade de muitas aplicações nativas da AWS. Quando desenvolvedores ou fornecedores de aplicações estão disponíveis para corrigir problemas de segurança ou funcionalidade em tempo hábil — ou quando o risco geral de comprometimento da segurança é menor —, o ALB é uma escolha óbvia.

Para aplicações semelhantes que usam outros protocolos TCP e precisam de serviços de balanceamento de carga robustos, porém simples, o balanceador de carga clássico geralmente será suficiente.

Balanceamento de carga BIG-IP

Há outros casos de uso em que uma organização pode preferir aproveitar os recursos de um ADC completo na AWS. Alguns dos benefícios de usar o BIG-IP na AWS incluem:

  • Segurança aprimorada
  • Maior controle de tráfego
  • Otimização do tráfego
  • Programabilidade real na camada de aplicação

A arquitetura da plataforma BIG-IP oferece visibilidade e controle completos sobre o tráfego das aplicações. Com uma ampla variedade de recursos, uma instância do BIG-IP em seu ambiente AWS fornece um poderoso conjunto de ferramentas para solucionar problemas de desempenho, segurança ou disponibilidade das aplicações. O BIG-IP pode direcionar solicitações individuais da camada de aplicação para qualquer recurso roteável, desde uma instância local do EC2 ou uma instância de servidor em outra nuvem até um serviço baseado em API ou um dispositivo local.

Por exemplo, o ALB pode direcionar o tráfego para recursos de back-end com base na URL solicitada, mas, se você precisar direcioná-lo com base em características mais complexas — como tipo de dispositivo, velocidade da conexão ou localização do cliente —, o BIG-IP é mais adequado para essa tarefa.

Essa capacidade avançada de resolução de problemas torna-se extremamente relevante quando aplicações empresariais estão sendo migradas para a nuvem ou quando não há desenvolvedores prontamente disponíveis para mitigar vulnerabilidades ou problemas de comportamento das aplicações. Quando sua aplicação precisa de proteção urgente, apresenta comportamento inadequado com um novo tipo de cliente (ou até mesmo após uma mudança no sistema operacional do cliente) ou falha ao receber determinadas solicitações, o BIG-IP geralmente oferece uma solução rápida, simples e confiável.

Outro fator importante é a necessidade de consistência entre o data center e a nuvem. Milhares de organizações dependem de dispositivos BIG-IP para disponibilizar aplicações essenciais em seus data centers. O AWS BIG-IP Virtual Edition oferece na AWS os mesmos serviços de camada de aplicação que um BIG-IP físico oferece em um data center. Com um BIG-IP VE, as organizações podem migrar aplicações com mais rapidez, menor custo e maior confiança, enquanto as equipes podem concentrar seus esforços de requalificação em outras áreas, preservando o conhecimento organizacional e o investimento em BIG-IP.

Opções de implantação

Como um serviço nativo, a implantação do AWS ELB é tão simples quanto marcar uma caixa de seleção. Para colocar um BIG-IP VE em funcionamento na AWS, é necessário implantar a instância pelo Amazon Marketplace usando um modelo de cobrança por uso ou de licença própria. A implantação da imagem do BIG-IP pode ser gerenciada manualmente ou por meio de opções de automação, como os AWS CFTs, para os quais a F5 oferece vários modelos com suporte completo (além de alguns “experimentais”). Eles estão disponíveis no repositório da F5 no Github, que também contém um SDK para Python e outras ferramentas. Outras ferramentas de implantação, playbooks e documentações com suporte da comunidade estão disponíveis no repositório do F5 DevCentral.

Conclusão

Tanto o AWS ELB quanto o F5 BIG-IP oferecem benefícios significativos para organizações que implantam aplicações na AWS. Saber quando e onde você pode precisar de mais controle, segurança ou capacidade de programação pode ajudar a escolher a solução certa para dar suporte às suas aplicações — e à sua empresa — na nuvem.

PUBLICADO EM 03 DE NOVEMBRO DE 2017