Olá a todos! O curso começa hoje
- entender o que é AWS Load Balancing;
- conhecer os tipos de Elastic Load Balancer e seus componentes;
- use AWS ELB em sua prática.
Por que você precisa saber disso?
- útil se você planeja fazer exames de certificação AWS;
- esta é uma forma simples de distribuir a carga entre servidores;
- Esta é uma maneira simples de adicionar Lambda ao seu serviço (ALB).
Conduziu uma aula aberta
Introdução
O que é um Elastic Load Balancer pode ser visto no diagrama abaixo, que mostra um exemplo simples:
O Load Balancer aceita solicitações e as distribui entre instâncias. Temos uma instância separada, existem funções Lambda e existe um grupo AutoScaling (um grupo de servidores).
Tipos AWS ELB
1. Vejamos os principais tipos:
Balanceador de carga clássico. O primeiro balanceador de carga da AWS funciona em OSI Layer 4 e Layer 7, suportando HTTP, HTTPS, TCP e SSL. Ele fornece balanceamento de carga básico em várias instâncias do Amazon EC2 e funciona tanto nos níveis de solicitação quanto de conexão. Vamos abri-lo (destacado em cinza):
Este balanceador é considerado desatualizado, por isso é recomendado para uso apenas em determinados casos. Por exemplo, para aplicativos criados na rede EC2‑Classic. Em princípio, ninguém nos impede de criá-lo:
2. Balanceador de carga de rede. Adequado para cargas de trabalho pesadas, opera em OSI Layer 4 (pode ser usado em EKS e ECS), suporta TCP, UDP e TLS.
O Network Load Balancer roteia o tráfego para destinos em uma Amazon VPC e é capaz de processar milhões de solicitações por segundo com latência ultrabaixa. Além disso, ele é otimizado para lidar com padrões de tráfego com cargas repentinas e variáveis.
3. Balanceador de carga de aplicativos. Funciona na camada 7, tem suporte Lambda, suporta regras de nível de cabeçalho e caminho, suporta HTTP e HTTPS.
Fornece roteamento avançado de solicitações com foco no fornecimento de aplicativos criados em arquiteturas modernas, incluindo microsserviços e contêineres. Direciona o tráfego para destinos na Amazon VPC com base no conteúdo da solicitação.
Para muitos usuários, o Application Load Balancer foi a primeira escolha para substituir o Classic Load Balancer, porque o TCP não é tão comum quanto o HTTP.
Vamos criá-lo também, e como resultado já teremos dois balanceadores de carga:
Componentes de balanceamento de carga
Componentes comuns de balanceamento de carga (comum a todos os balanceadores):
- Política de registro de acesso
— seus logs de acesso ELB. Para fazer configurações, você pode ir em Descrição e selecionar o botão “Editar atributos”:
Em seguida, especificamos S3Bucket - armazenamento de objetos Amazon:
- Esquema
— balanceador interno ou externo. A questão é se o seu LoadBalancer deve receber endereços externos para ser acessível externamente ou pode ser o seu balanceador de carga interno;
- Grupos de Segurança
— controle de acesso ao balanceador. Essencialmente, este é um firewall de alto nível.
- Sub-redes
— sub-redes dentro da sua VPC (e, consequentemente, zona de disponibilidade). As sub-redes são especificadas durante a criação. Se as VPCs forem limitadas por região, as sub-redes serão limitadas por zonas de disponibilidade. Ao criar um Load Balancer, é melhor criá-lo em pelo menos duas sub-redes (ajuda se surgirem problemas com uma zona de disponibilidade);
- Ouvintes
- seus protocolos de balanceamento. Conforme mencionado anteriormente, para Classic Load Balancer pode ser HTTP, HTTPS, TCP e SSL, para Network Load Balancer - TCP, UDP e TLS, para Application Load Balancer - HTTP e HTTPS.
Exemplo para balanceador de carga clássico:
Mas no Application Load Balancer vemos uma interface um pouco diferente e uma lógica geralmente diferente:
Componentes do Load Balancer v2 (ALB e NLB)
Agora vamos dar uma olhada mais de perto nos balanceadores da versão 2 Application Load Balancer e Network Load Balancer. Esses balanceadores possuem recursos de componentes próprios. Por exemplo, surgiu um conceito como Grupos-alvo - instâncias (e funções). Graças a esta componente, temos a oportunidade de especificar para quais dos Grupos-Alvo queremos direcionar o tráfego.
Em termos simples, em Grupos-alvo especificamos as instâncias de onde o tráfego virá. Se no mesmo Classic Load Balancer você simplesmente conecta imediatamente a intensidade ao balanceador, então no Application Load Balancer você primeiro:
- crie um balanceador de carga;
- crie um grupo-alvo;
- direcionar por meio das portas necessárias ou regras do balanceador de carga para os grupos-alvo necessários;
- em Grupos-alvo você atribui instâncias.
Esta lógica de funcionamento pode parecer mais complicada, mas na verdade é mais conveniente.
O próximo componente é Regras do ouvinte (regras para roteamento). Isso se aplica apenas ao Application Load Balancer. Se no Network Load Balancer você simplesmente cria um Listener e ele envia tráfego para um grupo de destino específico, no Application Load Balancer tudo
Agora vamos dizer algumas palavras sobre o próximo componente - IP elástico (endereços estáticos para NLB). Se as regras de roteamento das regras do Listener afetassem apenas o Application Load Balancer, o Elastic IP afetaria apenas o Network Load Balancer.
Vamos criar um balanceador de carga de rede:
E logo durante o processo de criação veremos que teremos a oportunidade de selecionar Elastic IP:
O Elastic IP fornece um único endereço IP que pode ser associado a diferentes instâncias do EC2 ao longo do tempo. Se uma instância do EC2 tiver um endereço IP elástico e essa instância for encerrada ou interrompida, você poderá associar imediatamente uma nova instância do EC2 a um endereço IP elástico. No entanto, seu aplicativo atual não irá parar de funcionar, pois os aplicativos ainda verão o mesmo endereço IP, mesmo que o EC2 real tenha mudado.
aqui é
A Amazon os altera com o tempo, talvez a cada 60 segundos (mas na prática, é claro, com menos frequência). Isso significa que os endereços IP podem mudar. E no caso do Network Load Balancer, você pode simplesmente vincular um endereço IP e indicá-lo em suas regras, políticas, etc.
Tirar conclusões
O ELB fornece distribuição automática do tráfego de entrada entre vários destinos (contêineres, instâncias do Amazon EC2, endereços IP e funções Lambda). O ELB é capaz de distribuir tráfego com cargas variadas dentro de uma única zona de disponibilidade e em várias zonas de disponibilidade. O usuário pode escolher entre três tipos de balanceadores que fornecem alta disponibilidade, escalonamento automático e boa proteção. Tudo isso é importante para garantir a tolerância a falhas de suas aplicações.
As principais vantagens:
- alta disponibilidade. O contrato de serviço pressupõe disponibilidade de 99,99% para o balanceador de carga. Por exemplo, múltiplas zonas de disponibilidade garantem que o tráfego seja processado apenas por objetos íntegros. Na verdade, você pode equilibrar a carga em toda a região, redirecionando o tráfego para destinos íntegros em diferentes zonas de disponibilidade;
- Segurança. O ELB funciona com Amazon VPC, fornecendo vários recursos de segurança – gerenciamento integrado de certificados, autenticação de usuário e descriptografia SSL/TLS. Todos juntos fornecem gerenciamento centralizado e flexível de configurações de TLS;
- elasticidade. O ELB pode lidar com mudanças repentinas no tráfego de rede. E a integração profunda com o Auto Scaling fornece ao aplicativo recursos suficientes caso a carga mude, sem exigir intervenção manual;
- flexibilidade. Você pode usar endereços IP para rotear solicitações para os destinos dos seus aplicativos. Isso proporciona flexibilidade ao virtualizar aplicativos de destino, proporcionando assim a capacidade de hospedar vários aplicativos em uma única instância. Como os aplicativos podem usar uma única porta de rede e ter grupos de segurança separados, a comunicação entre aplicativos é simplificada quando temos, digamos, uma arquitetura baseada em microsserviços;
- monitoramento e auditoria. Você pode monitorar aplicativos em tempo real usando recursos do Amazon CloudWatch. Estamos falando de métricas, logs, rastreamento de solicitações. Em termos simples, você será capaz de identificar problemas e identificar gargalos de desempenho com bastante precisão;
- balanceamento de carga híbrido. A capacidade de balancear a carga entre recursos locais e a AWS usando o mesmo balanceador de carga facilita a migração ou expansão de aplicativos locais para a nuvem. O tratamento de falhas também é simplificado usando a nuvem.
Se você estiver interessado em detalhes, aqui estão mais alguns links úteis do site oficial da Amazon:
Fonte: habr.com