Apesar de uma vasta gama de usos, plataformas e tecnologias, a maioria dos aplicativos compartilha algumas necessidades comuns: Eles devem ser mantidos on-line e isolados de falhas de hardware, devem ser dimensionados para atender à demanda e devem ser defendidos contra comprometimentos e ataques.
Desde que os aplicativos começaram a migrar de mainframes para sistemas abertos, as organizações têm usado balanceadores de carga para gerenciar a escalabilidade e a disponibilidade dos aplicativos. Quando confrontados com problemas complexos e ameaças de segurança mais sofisticadas, os balanceadores de carga desenvolveram conjuntos de recursos mais ricos, com recursos adicionais de segurança e otimização.
Com o tempo, o balanceador de carga simples evoluiu para o poderoso controlador de entrega de aplicativos (ADC). Em todo o mundo, milhares de organizações confiam nos ADCs para tornar os aplicativos que controlam nossas vidas seguros, rápidos e disponíveis. De serviços médicos de emergência e serviços bancários a jogos e namoro, os ADCs fornecem a tecnologia que ajuda os aplicativos a terem o melhor desempenho.
À medida que os aplicativos migram de modelos locais tradicionais para serviços em nuvem, suas necessidades de escala, segurança e disponibilidade não diminuíram. Não é nenhuma surpresa, portanto, que todas as plataformas de nuvem — públicas e privadas — forneç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 entregar centenas de milhares de aplicativos, incluindo alguns dos maiores da Internet. E assim como os balanceadores de carga locais adicionaram recursos para atender às necessidades dos clientes, os serviços de balanceamento de carga na AWS continuam a incorporar novos recursos e funções.
Embora o ELB possa ser uma ótima escolha para muitas organizações, outras exigem funcionalidade adicional para melhor oferecer suporte aos seus aplicativos críticos. Além disso, algumas empresas já implantaram ADCs e balanceadores de carga para dimensionar e gerenciar seus aplicativos locais. Para essas organizações, adotar a mesma plataforma na AWS e no data center pode reduzir o tempo, os custos e os riscos de uma migração para a nuvem. Antes de tomar uma decisão sobre qual serviço de balanceamento de carga é o certo para sua organização, vamos dar uma olhada nas várias opções de balanceamento de carga disponíveis na AWS.
A Amazon Web Services oferece o mais amplo conjunto de serviços de todos os principais provedores de IaaS, abrangendo uma ampla gama de funcionalidades e usos, desde computação simples e armazenamento em bloco 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, do qual a AWS oferece dois serviços distintos (ambos sob o nome “Elastic Load Balancing”) para uso em ambientes de nuvem privada virtual (VPC).
O Application Load Balancer (ALB) da Amazon fornece balanceamento de carga, monitoramento de integridade e roteamento de solicitações baseado em URL na nuvem AWS. O ALB oferece balanceamento de carga de protocolo HTTP e HTTPS com certificados SSL do cliente carregados de um dos serviços de gerenciamento de certificados da AWS e também oferece suporte ao balanceamento de carga de tráfego WebSocket. Além disso, o ALB permite o dimensionamento automático dos recursos do servidor Elastic Compute Cloud (EC2) de backend: quando as demandas de tráfego aumentam, o ALB pode acionar servidores adicionais para serem implantados e removê-los quando a demanda diminuir.
O serviço ALB também é dimensionado para lidar com carga adicional. À medida que o tráfego de rede do aplicativo aumenta, instâncias ALB adicionais são criadas e registradas com DNS, e o tráfego é então distribuído para as instâncias ALB usando o round robin de DNS. Para melhor desempenho sob cargas de trabalho repentinas, é recomendado o pré-aquecimento de instâncias ALB, pois o tempo de inicialização de novas instâncias pode ser entre um e sete minutos.
O ALB pode ser implantado via console web, CLI, API, modelos de formação de nuvem (CFTs) e muitas ferramentas de automação, como o Ansible.
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ão e verificações de integridade da camada de rede e de aplicativo. O NLB foi projetado para lidar bem com picos de tráfego e altos volumes de conexões. Além disso, o NLB permite que os alvos sejam endereços IP privados RFC 1918, bem como instâncias EC2. As opções de dimensionamento automático, autodimensionamento e implantação são semelhantes às do ALB.
A AWS também oferece seu Elastic Load Balancer “clássico”, que oferece suporte ao balanceamento de carga básico da camada 4 para tráfego TCP, mas não oferece suporte ao balanceamento ou direcionamento de tráfego da camada 7. As opções de dimensionamento automático, autodimensionamento e implantação são semelhantes às do ALB.
A plataforma F5® BIG-IP® ADC representa o outro extremo do espectro de balanceamento de carga do balanceador de carga clássico leve da AWS. Com um conjunto de recursos que abordam uma ampla gama de desafios de segurança, otimização de aplicativos e disponibilidade, o BIG-IP pode resolver problemas e gerenciar o tráfego de aplicativos que soluções mais simples não conseguem.
O BIG-IP oferece gerenciamento abrangente de tráfego de aplicativos, que inclui inspeção, controle e manipulação completos de tráfego. Isso se estende tanto à solicitação da camada de aplicação quanto à resposta, o que permite a prevenção de perda de dados e a manipulação do conteúdo de resposta do servidor. Esse recurso provou ser uma ferramenta de solução de problemas rápida, confiável e inestimável para milhares de organizações. Além disso, a inspeção programática completa e a manipulação do tráfego do aplicativo oferecem aos desenvolvedores uma camada arquitetônica adicional para aprimorar o comportamento do aplicativo em um ponto estratégico crítico de controle.
Com toda essa capacidade programável de resolução de problemas, vem uma bagagem que precisa ser reconhecida. Em primeiro lugar, o BIG-IP opera em um nível de infraestrutura diferente do balanceador de carga clássico da AWS e do ALB. O BIG-IP é implantado como uma instância EC2 dentro da sua VPC, o que tem vantagens e desvantagens. Fazer parte da VPC permite que o ADC gerencie o tráfego de forma eficaz entre todos os componentes dentro de uma zona de disponibilidade e oferece controle significativo sobre a comunicação entre os componentes na VPC.
Ao mesmo tempo, ele cria instâncias EC2 adicionais para gerenciar e manter. A alta disponibilidade do que se tornará um componente de missão crítica — embora fácil de configurar — agora se torna sua responsabilidade. O gerenciamento da plataforma subjacente em termos de atualizações de software e gerenciamento geral não é feito pela AWS, mas pelo cliente, enquanto novos recursos são entregues por versões lançadas no AWS Marketplace, em oposição a atualizações de serviço essencialmente contínuas.
Por fim, o BIG-IP pode ser dimensionado sob demanda e pode dimensionar automaticamente instâncias de servidores de aplicativos, mas quase inevitavelmente uma parcela maior dos esforços de configuração recairá sobre o cliente quando comparado ao uso de um serviço principal da AWS.
A escolha da solução certa para sua organização depende essencialmente das necessidades de sua aplicação e plataforma. Alguns aplicativos e casos de uso são adequados ao AWS ELB, enquanto outros exigem os recursos avançados do BIG-IP.
O ALB foi projetado para aplicativos que exigem balanceamento de carga simples com algumas regras básicas de mapeamento de URI para destino. O ALB atenderá aos serviços básicos de distribuição e dimensionamento de tráfego para muitos aplicativos nativos da AWS. Quando desenvolvedores ou fornecedores de aplicativos estão disponíveis para corrigir problemas de segurança ou funcionalidade em tempo hábil — ou o risco geral de comprometimentos de 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, mas simples, o balanceador de carga clássico geralmente será suficiente.
Há outros casos de uso em que uma organização pode preferir aproveitar o poder de um ADC completo na AWS. Alguns dos benefícios de usar o BIG-IP na AWS incluem o seguinte:
A arquitetura de plataforma do BIG-IP oferece visibilidade e controle completos sobre o tráfego de aplicativos. Com uma ampla variedade de recursos, uma instância BIG-IP no seu ambiente AWS oferece um poderoso kit de ferramentas para resolver problemas de desempenho, segurança ou disponibilidade de aplicativos. O BIG-IP pode direcionar solicitações individuais da camada de aplicativo para qualquer recurso roteável, de uma instância local do EC2 ou uma instância de servidor em outra nuvem para 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 direcionar o tráfego com base em características mais complexas, como tipo de dispositivo, velocidade de conexão ou localização do cliente, o BIG-IP está mais bem equipado para a tarefa.
Esse recurso avançado de resolução de problemas se torna altamente relevante quando aplicativos corporativos estão sendo migrados para a nuvem ou quando os desenvolvedores não estão prontamente disponíveis para mitigar vulnerabilidades ou problemas de comportamento dos aplicativos. Quando seu aplicativo precisa de proteção urgente, se comporta mal com um novo tipo de cliente (ou até mesmo com uma mudança no sistema operacional do cliente) ou trava em certas solicitações, o BIG-IP geralmente oferece uma solução rápida, simples e confiável.
Outro fator significativo é a necessidade de consistência entre o data center e a nuvem. Milhares de organizações contam com dispositivos BIG-IP para fornecer aplicativos essenciais em seus data centers. O AWS BIG-IP Virtual Edition oferece os mesmos serviços de camada de aplicativo na AWS que em um BIG-IP físico em um data center. Usando um BIG-IP VE, as organizações podem migrar aplicativos de forma mais rápida, barata e com maior confiança, enquanto a equipe pode concentrar seus esforços de requalificação em outro lugar, e o conhecimento organizacional e o investimento em BIG-IP são mantidos.
Como um serviço nativo, implantar o AWS ELB é tão simples quanto marcar uma caixa. Colocar um BIG-IP VE em funcionamento na AWS envolve implantar a instância do Amazon Marketplace usando um modelo de cobrança de serviços públicos ou traga sua própria licença. A implantação da imagem BIG-IP pode ser gerenciada manualmente ou usando opções de automação, como AWS CFTs, dos quais o F5 oferece vários modelos totalmente suportados (bem como alguns “experimentais”). Eles estão disponíveis no repositório F5 Github , que também contém um SDK Python e outras ferramentas. Ferramentas de implantação, manuais e documentação adicionais com suporte da comunidade estão disponíveis no repositório F5 DevCentral .
Tanto o AWS ELB quanto o F5 BIG-IP oferecem valor atraente para organizações que implantam aplicativos na AWS. Saber quando e onde você pode precisar de mais controle, segurança ou programabilidade pode ajudá-lo a escolher a solução certa para dar suporte aos seus aplicativos — e ao seu negócio — na nuvem.