Saiba como começar a usar Gateway Load Balancers com a AWS CLI - Elastic Load Balancing

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Saiba como começar a usar Gateway Load Balancers com a AWS CLI

Os Gateway Load Balancers facilitam a implementação, a escala e o gerenciamento de dispositivos virtuais de terceiros, como dispositivos de segurança.

Neste tutorial, implementaremos um sistema de inspeção usando um Gateway Load Balancer e um endpoint de Gateway Load Balancer.

Visão geral

Um endpoint do Gateway Load Balancer é um endpoint da VPC que fornece conectividade privada entre dispositivos virtuais na VPC do provedor de serviços e servidores de aplicações na VPC do consumidor de serviços. O Gateway Load Balancer é implementado na mesma VPC dos dispositivos virtuais. Esses dispositivos são registrados como um grupo de destino para o Gateway Load Balancer.

Os servidores de aplicações são executados em uma sub-rede (sub-rede de destino) na VPC do consumidor de serviços, enquanto o endpoint do Gateway Load Balancer está em outra sub-rede da mesma VPC. Todo o tráfego que entra na VPC do consumidor do serviço pelo gateway da Internet é encaminhado primeiro ao endpoint do Gateway Load Balancer antes de ser encaminhado à sub-rede de destino.

Da mesma forma, todo o tráfego que sai dos servidores da aplicação (sub-rede de destino) é encaminhado primeiro ao endpoint do Gateway Load Balancer antes de ser encaminhado à Internet. O diagrama de rede a seguir é uma representação visual de como um endpoint do Gateway Load Balancer é usado para acessar um serviço de endpoint.


    Usar um endpoint do Gateway Load Balancer para acessar um serviço de endpoint

Os itens numerados a seguir destacam e explicam os elementos mostrados na imagem anterior.

Tráfego da Internet para a aplicação (setas azuis):
  1. O tráfego entra na VPC do consumidor do serviço pelo gateway da Internet.

  2. O tráfego é enviado ao endpoint do Gateway Load Balancer, como resultado de um roteamento de entrada.

  3. O tráfego é enviado ao Gateway Load Balancer, que distribui o tráfego para um dos dispositivos de segurança.

  4. O tráfego é reencaminhado ao endpoint do Gateway Load Balancer após a inspeção pelo dispositivo de segurança.

  5. O tráfego é enviado aos servidores de aplicação (sub-rede de destino).

Tráfego da aplicação para a Internet (setas laranjas):
  1. O tráfego é enviado ao endpoint do Gateway Load Balancer como resultado da rota padrão configurada na sub-rede do servidor de aplicação.

  2. O tráfego é enviado ao Gateway Load Balancer, que distribui o tráfego para um dos dispositivos de segurança.

  3. O tráfego é reencaminhado ao endpoint do Gateway Load Balancer após a inspeção pelo dispositivo de segurança.

  4. O tráfego é enviado ao gateway da Internet com base na configuração da tabela de rotas.

  5. O tráfego é reencaminhado à Internet.

Roteamento

A tabela de rotas do gateway da Internet deve conter entrada que roteia o tráfego destinado aos servidores de aplicações ao endpoint do Gateway Load Balancer. Para especificar o endpoint do Gateway Load Balancer, use o ID do endpoint da VPC. O exemplo a seguir mostra as rotas de uma configuração dualstack.

Destination (Destino) Destino
CIDR IPv4 da VPC Local
CIDR IPv6 da VPC Local
CIDR IPv4 da sub-rede 1 vpc-endpoint-id
CIDR IPv6 da sub-rede 1 vpc-endpoint-id

A tabela de rotas para a sub–rede com os servidores de aplicações deve conter entradas que roteiem todo o tráfego dos servidores de aplicações ao endpoint do Gateway Load Balancer.

Destination (Destino) Destino
CIDR IPv4 da VPC Local
CIDR IPv6 da VPC Local
0.0.0.0/0 vpc-endpoint-id
::/0 vpc-endpoint-id

A tabela de rotas para a sub-rede com o endpoint do Gateway Load Balancer deve rotear o tráfego que retorna da inspeção ao destino final. Para o tráfego proveniente da Internet, a rota local garante que o tráfego chegará aos servidores de aplicações. Para o tráfego proveniente dos servidores de aplicações, adicione entradas que roteiam todo o tráfego ao gateway da Internet.

Destination (Destino) Destino
CIDR IPv4 da VPC Local
CIDR IPv6 da VPC Local
0.0.0.0/0 internet-gateway-id
::/0 internet-gateway-id

Pré-requisitos

  • Instale a AWS CLI ou atualize para a versão atual da AWS CLI se você está usando uma versão que não é compatível com Gateway Load Balancers. Para obter mais informações, consulte Instalar a AWS Command Line Interface no Guia do usuário da AWS Command Line Interface.

  • Certifique-se de que a VPC consumidora de serviços tenha pelo menos duas sub-redes para cada zona de disponibilidade que contém servidores de aplicativos. Uma sub-rede é destinada aos servidores da aplicação, e a outra é destinada ao endpoint do Gateway Load Balancer.

  • Certifique-se de que a VPC provedora de serviços tenha pelo menos duas sub-redes para cada zona de disponibilidade que contém instâncias de dispositivos de segurança. Uma sub-rede é destinada às instâncias, e a outra é destinada ao Gateway Load Balancer.

  • Inicie pelo menos uma instância do dispositivo de segurança em cada sub-rede do dispositivo de segurança na VPC do provedor de serviços. Os grupos de segurança para essas instâncias devem permitir tráfego UDP na porta 6081.

Etapa 1: Criar um Gateway Load Balancer e registrar destinos

Use o procedimento a seguir para criar seu balanceador de carga, receptor e grupos de destino e para registrar suas instâncias do dispositivo de segurança como destinos.

Para criar um Gateway Load Balancer e registrar destinos
  1. Use o comando create-load-balancer para criar um load balancer do tipo gateway. Você pode especificar uma sub-rede para cada zona de disponibilidade na qual lançou instâncias do dispositivo de segurança.

    aws elbv2 create-load-balancer --name my-load-balancer --type gateway --subnets provider-subnet-id

    O padrão é oferecer suporte somente a endereços IPv4. Adicione a opção --ip-address-type dualstack para oferecer suporte tanto para endereços IPv4 como IPv6.

    O resultado inclui o nome do recurso da Amazon (ARN) do load balancer, com o seguinte formato.

    arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/gwy/my-load-balancer/1234567890123456
  2. Use o comando create-target-group para criar um grupo de destino, especificando a VPC provedora de serviços na qual você executou suas instâncias.

    aws elbv2 create-target-group --name my-targets --protocol GENEVE --port 6081 --vpc-id provider-vpc-id

    A saída inclui o ARN do grupo de destino, com o seguinte formato.

    arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/0123456789012345
  3. Use o comando register-targets para registrar suas instâncias com o grupo de destino.

    aws elbv2 register-targets --target-group-arn targetgroup-arn --targets Id=i-1234567890abcdef0 Id=i-0abcdef1234567890
  4. Use o comando create-listener para criar um receptor para seu balanceador de carga com uma regra padrão que encaminha solicitações ao seu grupo de destino.

    aws elbv2 create-listener --load-balancer-arn loadbalancer-arn --default-actions Type=forward,TargetGroupArn=targetgroup-arn

    A saída contém o ARN do receptor, com o seguinte formato.

    arn:aws:elasticloadbalancing:us-east-2:123456789012:listener/gwy/my-load-balancer/1234567890123456/abc1234567890123
  5. (Opcional) Você pode verificar a integridade do destinos registrados para o seu grupo de destino usando este comando describe-target-health.

    aws elbv2 describe-target-health --target-group-arn targetgroup-arn

Etapa 2: Criar um endpoint do Gateway Load Balancer

Use o seguinte procedimento para criar um endpoint do Gateway Load Balancer. Endpoints do Gateway Load Balancer são zonais. Recomendamos que você crie um endpoint do Gateway Load Balancer por zona. Para obter mais informações, consulte Acessar dispositivos virtuais por meio de AWS PrivateLink.

Para criar um endpoint do Gateway Load Balancer
  1. Use o comando create-vpc-endpoint-service-configuration para criar uma configuração de serviço de endpoint usando seu Gateway Load Balancer.

    aws ec2 create-vpc-endpoint-service-configuration --gateway-load-balancer-arns loadbalancer-arn --no-acceptance-required

    Adicione a opção --supported-ip-address-types ipv4 ipv6 para oferecer suporte tanto para endereços IPv4 como IPv6.

    A saída contém o ID do serviço (por exemplo, vpce-svc-12345678901234567) e o nome do serviço (por exemplo, com.amazonaws.vpce.us-east-2.vpce-svc-12345678901234567).

  2. Use o comando modify-vpc-endpoint-service-permissions para permitir que consumidores de serviço criem um endpoint para seu serviço. Um consumidor de serviço pode ser um usuário, perfil do IAM ou Conta da AWS. O exemplo a seguir adiciona permissão para a Conta da AWS especificada.

    aws ec2 modify-vpc-endpoint-service-permissions --service-id vpce-svc-12345678901234567 --add-allowed-principals arn:aws:iam::123456789012:root
  3. Use o comando create-vpc-endpoint para criar um endpoint do Gateway Load Balancer para seu serviço.

    aws ec2 create-vpc-endpoint --vpc-endpoint-type GatewayLoadBalancer --service-name com.amazonaws.vpce.us-east-2.vpce-svc-12345678901234567 --vpc-id consumer-vpc-id --subnet-ids consumer-subnet-id

    Adicione a opção --ip-address-type dualstack para oferecer suporte tanto para endereços IPv4 como IPv6.

    A saída contém o ID do endpoint do Gateway Load Balancer (por exemplo, vpce-01234567890abcdef).

Etapa 3: configurar o roteamento

Configure as tabelas de rotas para a VPC do consumidor de serviço conforme a seguir. Isso permite que os dispositivos de segurança realizem a inspeção de segurança do tráfego de entrada destinado aos servidores de aplicações.

Para configurar o roteamento
  1. Use o comando create-route para adicionar entradas à tabela de rotas do gateway da Internet que roteia o tráfego destinado aos servidores de aplicações ao endpoint do Gateway Load Balancer.

    aws ec2 create-route --route-table-id gateway-rtb --destination-cidr-block Subnet 1 IPv4 CIDR --vpc-endpoint-id vpce-01234567890abcdef

    Adicione a seguinte rota se você oferece suporte à IPv6.

    aws ec2 create-route --route-table-id gateway-rtb --destination-cidr-block Subnet 1 IPv6 CIDR --vpc-endpoint-id vpce-01234567890abcdef
  2. Use o comando create-route para adicionar uma entrada à tabela de rotas para a sub-rede com os servidores de aplicações que roteiem todo o tráfego dos servidores de aplicações ao endpoint do Gateway Load Balancer.

    aws ec2 create-route --route-table-id application-rtb --destination-cidr-block 0.0.0.0/0 --vpc-endpoint-id vpce-01234567890abcdef

    Adicione a seguinte rota se você oferece suporte à IPv6.

    aws ec2 create-route --route-table-id application-rtb --destination-cidr-block ::/0 --vpc-endpoint-id vpce-01234567890abcdef
  3. Use o comando create-route para adicionar uma entrada à tabela de rotas da sub-rede com o endpoint do Gateway Load Balancer que roteia todo o tráfego originado dos servidores de aplicações para o gateway da Internet.

    aws ec2 create-route --route-table-id endpoint-rtb --destination-cidr-block 0.0.0.0/0 --gateway-id igw-01234567890abcdef

    Adicione a seguinte rota se você oferece suporte à IPv6.

    aws ec2 create-route --route-table-id endpoint-rtb --destination-cidr-block ::/0 --gateway-id igw-01234567890abcdef
  4. Repita o procedimento para cada tabela de rotas de sub-rede da aplicação em cada zona.