O blog da AWS
Dimensione tráfego usando múltiplos Interface Endpoints
O AWS PrivateLink tem dois lados:
- Prestador de serviço: responsável por oferecer o serviço. O provedor de serviços cria um Amazon Virtual Private Cloud (VPC) Endpoint Service (service) usando o Network Load Balancer (NLB).
- Consumidor de serviço: Consome um ou mais serviços oferecidos pelo provedor de serviços. Para consumir o serviço, o consumidor cria uma interface VPC endpoint (endpoint) usando o nome do serviço fornecido pelo provedor de serviços.
Desafio:
A segurança combinada com a simplicidade tornou o AWS PrivateLink um mecanismo de referência para o consumo seguro de serviços. Ele conecta serviços em diferentes contas e Amazon VPCs, sem a necessidade de regras de firewall, definições de caminho ou tabelas de rota. Não há necessidade de configurar um gateway de Internet, conexão de VPC peering ou gerenciar VPC Classless Inter-Domain Routing (CIDRs).
Dito isso, de acordo com a interface endpoint properties and limitations,, cada terminal de interface atualmente oferece suporte a uma largura de banda de até 10 Gbps por Zona de Disponibilidade (AZ) e bursts de até 40 Gbps por AZ. Para casos de uso em que você precisa de um rendimento mais alto, como conectar-se a serviços como Amazon Kinesis Data Streams, pode ser necessário um rendimento sustentado de mais de 10 Gbps por Zona de Disponibilidade (AZ).
Neste blog, demonstrarei uma solução para oferecer suporte a requisitos de largura de banda mais elevados ao consumir um serviço no AWS PrivateLink.
Visão geral da solução:
Esta solução é baseada em endpoints de interface de escalonamento horizontal, criando vários endpoints para o mesmo serviço. Ele usa o Amazon Route 53 – um serviço da web de Domain Name System (DNS) em nuvem altamente disponível e escalonável – para distribuir o tráfego entre esses vários endpoints.
Fluxo de trabalho de alto nível:
No fluxo de trabalho a seguir (Figura 1), estou usando o Kinesis Data Streams como um serviço de exemplo.

- Etapa 1: para um determinado serviço, crie dois (ou mais) interface endpoints com seu atributo DNS privado (PrivateDnsEnabled) definido como falso. Isso é mostrado na Figura 2.

- Etapa 2: (2a) – Crie uma Private Hosted Zone (PHZ). Por exemplo: kinesis.us-west-2.amazonaws.com
o Etapa 2: (2b) – Associar o PHZ ao VPC do consumidor.

Etapa 3: Para o PHZ criado na Etapa 2, crie weighted ALIAS A records apontando para nomes DNS regionais dos pontos de extremidade da interface criados na Etapa 1.
Um exemplo, mostrado na Figura 4: Create Weighted ALIAS A Records, foi criado dois ‘alias para registros de VPC endpoint’ de modo que o tráfego seja distribuído igualmente entre esses dois registros. Isso permite que você distribua o tráfego entre dois pontos de extremidade de interface e, por sua vez, obtenha a taxa de transferência sustentada desejada.
Observação: certifique-se de que Avaliar integridade do destino esteja habilitado (alternado para Sim).

Considerações:
- Para projetar uma arquitetura escalonável, você deve ter um bom entendimento dos requisitos de tráfego – capacidade total necessária e como ela está sendo dispersa / consumida.
- AWS PrivateLink managed Private DNS não funciona com vários endpoints. Você deve criar sua própria zona hospedada privada para usar DNS privado com vários pontos de extremidade, seguindo as etapas mencionadas em Fluxo de trabalho de alto nível.
- À medida que o tráfego aumenta no lado do consumidor, o serviço de endpoint VPC no lado do provedor de serviços também deve ser escalonado.
- Para serviços pertencentes e operados pela AWS, a AWS gerência a configuração do provedor de serviços.
- Para serviços de propriedade e operados por parceiro / fornecedor independente de software (ISV), o parceiro / ISV gerência a configuração do provedor de serviços.
- Para serviços compartilhados que você possui e opera, você será responsável por gerenciar e, por sua vez, dimensionar a configuração do provedor de serviços.
Monitoramento:
O monitoramento do consumo dos terminais da interface permite que você amplie ou reduza para atender aos seus requisitos de negócios. Você pode usar VPC Flow Logs para monitorar a utilização da interface endpoint elastic network interface (ENI).
Aqui estão as etapas para configurar o monitoramento do endpoint da interface:
- Etapa 1: Configurar logs de fluxo para cada ENI de endpoint de interface que deve ser monitorado. O intervalo de agregação de um minuto é recomendado para melhor granularidade. O destino deve ser Amazon CloudWatch Logs, e escolher o grupo de logs desejado e a função IAM. O formato personalizado é necessário com pelo menos os seguintes campos (você pode selecionar mais campos para visualizar metadados adicionais, se necessário):
- interface-id
- packets
- bytes
- tcp-flags.
As Figuras 5a e 5b mostram como configurar um VPC Flow Log para um ENI.


- Etapa 2: usando os insights do CloudWatch para cada ENI, crie as seguintes consultas. Certifique-se de usar o formato de análise correto no caso de campos extras serem incluídos nos logs de fluxo.
As capturas de tela a seguir (Figuras 6, 7 e 8) mostram como isso fica quando o texto da consulta é adicionado no console.
Bits/s Query:

Figure 6: Criar Bits/s Query. Esta figura mostra como criar uma consulta de bits / s personalizados.
Packets/s Query:

New Connections/s Query:

- Etapa 3: Adicionar as consultas ao painel do CloudWatch. Isso é mostrado nas seguintes capturas de tela (Figuras 9a e 9b).

Figura 9a: Adicionar consulta de bits / s ao painel.

Repita para adicionar cada consulta / percepção ao painel. A captura de tela a seguir (Figura 10) mostra um painel CloudWatch completo.

- Etapa 4: Repita as etapas para cada ENI que deve ser monitorado. Certifique-se de ajustar o nome do gráfico e ENI ID nas consultas.
Limpeza:
Para limpar o seu ambiente e garantir que você não incorra em cobranças indesejadas, exclua os pontos de extremidade da interface, a zona hospedada privada e quaisquer outros recursos relacionados que você possa ter criado enquanto acessava este blog.
Conclusão:
AWS PrivateLink é um serviço de rede que permite que você se conecte a serviços AWS, a serviços compartilhados de propriedade do cliente em outros VPCs ou a serviços SaaS de terceiros, de forma privada e segura pela rede AWS. Neste blog, mostrei como você pode alcançar largura de banda sustentada de mais de 10 Gbps / AZ criando vários endpoints de interface e usando o Amazon Route 53 para distribuir o tráfego entre esses endpoints. Também ilustrei como monitorar o endpoint da interface ENI usando registros de fluxo de VPC.