Skip to main content

Visão geral

Este guia explica como expor um cluster do Amazon MSK para o ClickPipes com serviços de endpoint de VPC do AWS PrivateLink. Use essa abordagem quando a MSK multi-VPC connectivity não estiver disponível ou não for suficiente, por exemplo:
  • Conectividade entre regiões do ClickPipes com o MSK.
  • Clusters MSK Express.
  • Configurações do Kafka que precisam preservar os hostname dos brokers na conectividade privada.
Para clusters padrão do MSK na mesma região, a MSK multi-VPC connectivity geralmente é mais simples e é a opção recomendada. O mesmo padrão do PrivateLink também pode ser usado para clusters Kafka autogerenciados ou on-premises expostos por meio da AWS, mas os exemplos neste artigo usam o MSK.

Como a configuração funciona

Os clientes Kafka primeiro se conectam aos brokers de bootstrap, obtêm os metadados do cluster e, em seguida, se conectam diretamente aos hostnames dos brokers anunciados nesses metadados. Por esse motivo, um único balanceador de carga na frente de todos os brokers não é suficiente para uma configuração confiável do MSK PrivateLink. Em vez disso, crie um caminho do PrivateLink para cada broker:
Cada broker recebe seu próprio:
  • Network Load Balancer (NLB) interno.
  • Grupo de destino por IP que aponta para o IP privado do broker.
  • Serviço de endpoint da VPC suportado por esse NLB.
  • endpoint privado reverso (RPE) do ClickPipes.
  • nome DNS privado personalizado correspondente ao hostname desse broker.
O NLB deve usar passthrough TCP. Isso permite que o cliente Kafka continue usando o hostname original do broker do MSK para SNI TLS e validação de certificado.

Requisitos

  • Um cluster do MSK em sub-redes privadas.
  • Hostnames dos brokers e endereços IP privados do cluster do MSK.
  • Permissão para criar NLBs, grupos de destino, listeners e serviços de endpoint da VPC na VPC do MSK.
  • O principal da conta AWS do ClickPipes autorizado em cada serviço de endpoint da VPC: arn:aws:iam::072088201116:root.
  • O recurso de DNS privado personalizado habilitado para o seu serviço do ClickHouse Cloud. Entre em contato com o suporte do ClickHouse se o campo Custom private DNS name não estiver disponível ao criar um reverse private endpoint.

Obtenha os hostname dos brokers e os IPs privados

Use a CLI da AWS para listar os nós de broker do MSK:
Registre o hostname de cada broker, o endereço IP privado e a porta do Kafka. Para autenticação IAM do MSK, a porta geralmente é 9098. O ClickPipe usará esses hostnames de broker como brokers do Kafka. Não use a string de bootstrap brokers do MSK para esta configuração pela UI.

Crie um endpoint service para cada broker

Repita estas etapas para cada broker do MSK.

Criar um NLB interno

Crie um Network Load Balancer interno na VPC do MSK. O NLB deve usar sub-redes privadas e não pode ficar exposto à internet. Se houver um grupo de segurança associado ao NLB, desative Enforce Security Group Inbound Rules on Private Link Traffic. Isso é necessário para permitir que o tráfego do endpoint da VPC do ClickPipes chegue ao NLB.

Crie um grupo de destino IP

Crie um grupo de destino com:
  • Tipo de destino: IP.
  • Protocolo: TCP.
  • Porta: a porta do broker Kafka, por exemplo, 9098 para MSK IAM.
  • Destino: o endereço IP privado de exatamente um broker.
Use verificações de integridade TCP na porta de tráfego.

Crie um listener TCP

Crie um listener do NLB na porta do Kafka do broker e encaminhe o tráfego para o grupo de destino específico desse broker.

Crie o serviço de endpoint da VPC

Crie um serviço de endpoint da VPC associado ao NLB específico do broker. Adicione o principal da AWS do ClickPipes à lista de principals permitidos:
Se o cluster do MSK e o ClickPipes estiverem em diferentes regiões da AWS, habilite o acesso entre regiões adicionando a região do ClickPipes às regiões compatíveis do endpoint service. Anote o nome do endpoint service. Ele será semelhante a:

Criar endpoints privados reversos do ClickPipes

No console do ClickHouse Cloud, crie um endpoint privado reverso para cada serviço de endpoint da VPC de broker:
  1. Acesse seu serviço do ClickHouse Cloud.
  2. Inicie a criação de um ClickPipe.
  3. Escolha Reverse private endpoint.
  4. Escolha serviço de endpoint da VPC como tipo de endpoint da VPC.
  5. Insira o nome do serviço de endpoint da VPC específico do broker.
  6. Em Custom private DNS name, insira o hostname original do broker do MSK para esse broker.
  7. Crie o endpoint.
  8. Se o endpoint estiver com aceitação pendente, aceite a solicitação de conexão do endpoint no console do serviço de endpoint da VPC da AWS.
Repita o processo até que cada hostname de broker tenha um RPE correspondente. Para saber mais sobre o comportamento do DNS privado personalizado, as regras de nomenclatura e as opções de API/Terraform, consulte Custom private DNS. Você também pode criar os endpoints privados reversos com OpenAPI ou Terraform. Para OpenAPI, crie um endpoint privado reverso por broker com type definido como VPC_ENDPOINT_SERVICE, o nome do serviço de endpoint da VPC específico do broker e um mapeamento de DNS privado personalizado para o hostname do broker:
No Terraform, use clickhouse_clickpipes_reverse_private_endpoint para criar o endpoint e clickhouse_clickpipes_reverse_private_endpoint_custom_private_dns para configurar o mapeamento do hostname do broker.

Crie o ClickPipe do Kafka

Siga o guia do AWS PrivateLink do ClickPipes para criar o ClickPipe com endpoints privados reversos. Ao criar o ClickPipe do Kafka:
  • Use os hostnames originais dos brokers do MSK como lista de brokers, incluindo a porta usada pelo listener do MSK e o método de autenticação.
  • Não use a string de bootstrap broker do MSK.
  • Selecione ou anexe todos os endpoints privados reversos específicos de cada broker.
  • Configure o método de autenticação exigido pelo seu cluster MSK, como autenticação com IAM role.
A porta depende do listener do MSK. Por exemplo, a autenticação IAM normalmente usa 9098, SASL/SCRAM normalmente usa 9096 e TLS normalmente usa 9094. Confirme a porta correta na configuração do seu cluster MSK ou na saída do bootstrap broker. Exemplo de lista de brokers:
Cada hostname da lista de brokers deve corresponder ao Custom private DNS name configurado em um dos RPEs.

Automação com Terraform

O módulo Terraform aws-msk-vpc-endpoint-service mostra como automatizar essa configuração. Ele cria NLBs específicos por broker, grupos de destino, serviços de endpoint da VPC, RPEs do ClickPipes e mapeamentos personalizados de DNS privado. O módulo Terraform pode gerenciar vários mapeamentos personalizados de DNS privado por RPE, incluindo hostnames de bootstrap e de broker. Este artigo se concentra no fluxo manual pela ClickPipes UI, em que cada RPE usa um hostname de broker como DNS privado personalizado.
Última modificação em 23 de julho de 2026