Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

AWS PrivateLink

Você pode usar o AWS PrivateLink para estabelecer uma conexão segura entre o ClickPipes e uma fonte de dados hospedada na AWS. O ClickPipes cria um endpoint privado reverso (RPE) em sua VPC e o direciona a um serviço de endpoint privado publicado para sua fonte de dados, garantindo que o tráfego nunca seja exposto à internet pública.

Fontes de dados compatíveis com o ClickPipes

A funcionalidade de endpoint privado reverso do ClickPipes é limitada aos seguintes tipos de fonte de dados:

  • Kafka
  • Postgres
  • MySQL
  • MongoDB

O endpoint privado reverso do ClickPipes pode ser configurado com uma das seguintes opções do AWS PrivateLink:

Recurso da VPC

É possível acessar seus recursos da VPC no ClickPipes usando o PrivateLink. Essa abordagem não exige a configuração de um balanceador de carga na frente da fonte de dados.

A configuração do recurso pode direcionar-se a um host específico ou ao ARN de um cluster RDS.

Essa é a opção preferencial para a ingestão do Postgres CDC de dados de um cluster RDS.

Para configurar o PrivateLink com um recurso da VPC:

  1. Crie um gateway de recursos
  2. Crie uma configuração de recursos
  3. Crie um compartilhamento de recursos

Crie um gateway de recursos

O gateway de recursos é o ponto que recebe tráfego para os recursos especificados na sua VPC.

Você pode criar um gateway de recursos pelo console da AWS ou com o seguinte comando:

aws vpc-lattice create-resource-gateway \
    --vpc-identifier <VPC_ID> \
    --subnet-ids <SUBNET_IDS> \
    --security-group-ids <SG_IDs> \
    --name <RESOURCE_GATEWAY_NAME>

A saída conterá o ID do gateway de recursos, que você precisará na próxima etapa.

Antes de prosseguir, aguarde o gateway de recursos entrar no estado Active. Você pode verificar o estado executando o seguinte comando:

aws vpc-lattice get-resource-gateway \
    --resource-gateway-identifier <RESOURCE_GATEWAY_ID>

Crie uma configuração de recurso de VPC

Associe a Configuração de recurso ao gateway de recursos para disponibilizar seu recurso.

Você pode criar uma Configuração de recurso no console da AWS ou com o seguinte comando:

aws vpc-lattice create-resource-configuration \
    --resource-gateway-identifier <RESOURCE_GATEWAY_ID> \
    --type <RESOURCE_CONFIGURATION_TYPE> \
    --resource-configuration-definition <RESOURCE_CONFIGURATION_DEFINITION> \
    --name <RESOURCE_CONFIGURATION_NAME>

O tipo mais simples de configuração de recurso consiste em uma única Resource-Configuration. Você pode configurá-la diretamente com o ARN ou compartilhar um endereço IP ou nome de domínio que possa ser resolvido publicamente.

Por exemplo, para configurar usando o ARN de um cluster RDS:

aws vpc-lattice create-resource-configuration \
    --name my-rds-cluster-config \
    --type ARN \
    --resource-gateway-identifier rgw-0bba03f3d56060135 \
    --resource-configuration-definition 'arnResource={arn=arn:aws:rds:us-east-1:123456789012:cluster:my-rds-cluster}'

A saída conterá um ARN de configuração de recurso, necessário para a próxima etapa. Ela também conterá um ID de configuração de recurso, necessário para configurar uma conexão do ClickPipe com um recurso de VPC.

Crie um compartilhamento de recursos

O compartilhamento do recurso exige um Resource-Share. Isso é feito pelo Resource Access Manager (RAM).

Você pode adicionar a Resource-Configuration ao Resource-Share pelo Console da AWS ou executar o comando a seguir usando o ID da conta do ClickPipes 072088201116 (arn:aws:iam::072088201116:root):

aws ram create-resource-share \
    --principals 072088201116 \
    --resource-arns <RESOURCE_CONFIGURATION_ARN> \
    --name <RESOURCE_SHARE_NAME>

A saída conterá um ARN de compartilhamento de recurso, necessário para configurar uma conexão do ClickPipe com um recurso da VPC.

Agora você pode criar um ClickPipe com endpoint privado reverso usando um recurso da VPC. Será necessário:

  • Definir VPC endpoint type como VPC Resource.
  • Definir Resource configuration ID como o ID da Resource-Configuration criada no passo 2.
  • Definir Resource share ARN como o ARN do Resource-Share criado no passo 3.

Para mais detalhes sobre o PrivateLink com recursos da VPC, consulte a documentação da AWS.

Conectividade multi-VPC do MSK

A conectividade multi-VPC é um recurso nativo do AWS MSK que permite conectar várias VPCs a um único cluster MSK. O suporte a DNS privado é disponibilizado de imediato e não requer nenhuma configuração adicional. Não há suporte para conexões entre regiões.

Essa é uma opção recomendada para ClickPipes para MSK. Consulte o guia de introdução para mais detalhes.

Siga nosso guia de configuração do MSK para ClickPipes para saber como configurar a conexão.

Serviço de endpoint da VPC

O serviço de endpoint da VPC é outra forma de compartilhar sua fonte de dados com o ClickPipes. Ele requer a configuração de um NLB (Network Load Balancer) em frente à sua fonte de dados e do serviço de endpoint da VPC para usar o NLB.

O serviço de endpoint da VPC pode ser configurado com DNS privado, que ficará acessível em uma VPC do ClickPipes. O DNS privado gerenciado pelo AWS PrivateLink nem sempre é uma opção viável:

  • você não é proprietário do nome de domínio da sua fonte de dados e, portanto, não pode verificá-lo com a AWS
  • o provedor exige que os consumidores gerenciem a resolução de DNS, como ocorre no Confluent Cloud Nesses casos, consulte DNS privado personalizado.

É a opção preferencial para:

Consulte o guia de introdução para mais detalhes.

Para clusters MSK, consulte serviço de endpoint da VPC do AWS PrivateLink para cluster MSK para uma configuração de um broker por serviço de endpoint que usa nomes DNS privados personalizados.

DNS privado personalizado

Em prévia privada no ClickHouse Cloud

O AWS PrivateLink fornece DNS privado gerenciado para serviços de endpoint da VPC com um domínio verificado. Alguns serviços exigem que cada consumidor gerencie a resolução de DNS na própria VPC. Por exemplo, o Confluent Cloud exige que os consumidores resolvam os hostnames dos brokers para o endpoint do PrivateLink.

Nesses casos, o ClickPipes oferece suporte à associação de nomes DNS privados personalizados a um endpoint privado reverso. O ClickPipes resolve esses nomes para os endereços privados do endpoint, permitindo que sua fonte de dados seja acessada pelo próprio hostname via conectividade privada.

O DNS privado personalizado complementa o DNS privado gerenciado — não o substitui. Se o seu serviço PrivateLink já fornece nomes DNS privados, você não precisa de nomes personalizados.

Nomes DNS privados personalizados são compatíveis com os tipos de endpoint serviço de endpoint da VPC e recurso da VPC. O MSK multi-VPC fornece DNS privado gerenciado pronto para uso e não oferece suporte a nomes personalizados.

As seguintes regras se aplicam a nomes DNS privados personalizados:

  • Nomes exatos (kafka.internal.example.com) e nomes curinga (*.example.com) são compatíveis. Um curinga corresponde a um único rótulo DNS — por exemplo, *.abcde12345.us-east-1.aws.confluent.cloud corresponde a b0-lkc123.abcde12345.us-east-1.aws.confluent.cloud.
  • Os nomes devem ser únicos em todos os endpoints privados reversos de um serviço do ClickHouse, incluindo sobreposições entre nomes curinga e exatos.
  • Nomes sob sufixos reservados (por exemplo, local, localhost, internal, corp, private) são rejeitados.

Para configurar nomes DNS privados personalizados:

  • No console do ClickHouse Cloud, preencha o campo Custom private DNS name ao criar um endpoint privado reverso. O campo é exibido quando o recurso é habilitado para seu serviço.
  • Com OpenAPI, defina customPrivateDnsMappings ao criar um endpoint privado reverso ou atualize um endpoint existente com uma solicitação PATCH. As atualizações substituem toda a lista de mapeamentos; uma lista vazia remove todos os nomes personalizados.
  • Com Terraform, use o recurso clickhouse_clickpipes_reverse_private_endpoint_custom_private_dns para gerenciar mapeamentos em um endpoint privado reverso existente.

Como criar um ClickPipe com endpoint privado reverso

  1. Acesse o SQL Console do seu serviço ClickHouse Cloud.
Serviço ClickPipes
  1. Selecione o botão Data Sources no menu à esquerda e clique em "Set up a ClickPipe".
Selecionar importações
  1. Selecione Kafka ou Postgres como fonte de dados.
Selecionar fonte de dados
  1. Selecione a opção Reverse private endpoint.
Selecionar endpoint privado reverso
  1. Selecione um dos endpoints privados reversos existentes ou crie um novo.
Selecionar endpoint privado reverso
  1. Forneça os parâmetros obrigatórios para o tipo de endpoint selecionado.
Selecionar endpoint privado reverso
  • Para o recurso da VPC, forneça o ARN de compartilhamento da configuração e o ID da configuração.
    • Para MSK multi-VPC, forneça o ARN do cluster e o método de autenticação usado com um endpoint criado.
    • Para o serviço de endpoint da VPC, forneça o nome do serviço.
    • Opcionalmente, forneça um nome de DNS privado personalizado.
  1. Clique em Create e aguarde até que o endpoint privado reverso esteja pronto.

    Se você estiver criando um novo endpoint, a configuração dele levará algum tempo. A página será atualizada automaticamente assim que o endpoint estiver pronto. O serviço de endpoint da VPC pode exigir que você aceite a solicitação de conexão no console da AWS.

Selecionar endpoint privado reverso
  1. Quando o endpoint estiver pronto, você poderá usar um nome DNS para se conectar à fonte de dados.

    Na lista de endpoints, você pode ver o nome DNS do endpoint disponível. Ele pode ser um nome DNS provisionado internamente pelo ClickPipes, um nome DNS privado fornecido por um serviço PrivateLink ou um nome DNS privado personalizado. O nome DNS não é um endereço de rede completo. Adicione a porta de acordo com a fonte de dados.

    A string de conexão do MSK pode ser acessada no console da AWS.

    Para ver uma lista completa de nomes DNS, acesse as configurações do serviço ClickHouse Cloud.

Gerenciamento de endpoints privados reversos

Você pode gerenciar endpoints privados reversos existentes nas configurações do serviço ClickHouse Cloud:

  1. Na barra lateral, localize o botão Settings e clique nele.

    Configurações do ClickHouse Cloud
  2. Clique em Reverse private endpoints na seção ClickPipe reverse private endpoints.

    Configurações do ClickHouse Cloud

    Informações detalhadas sobre o endpoint privado reverso são exibidas no painel lateral.

    Não é possível editar um endpoint depois de criá-lo. Para excluir um endpoint, clique no × correspondente e confirme — a exclusão é permanente e interrompe qualquer ClickPipe que esteja usando esse endpoint.

O suporte ao AWS PrivateLink para ClickPipes é limitado a regiões específicas da AWS. Consulte a lista de regiões do ClickPipes para ver as regiões disponíveis.

Essa restrição não se aplica a um serviço de endpoint da VPC do PrivateLink com conectividade entre regiões habilitada.

Limitações

Não há garantia de que os endpoints do AWS PrivateLink para ClickPipes criados no ClickHouse Cloud sejam criados na mesma região da AWS que o serviço do ClickHouse Cloud.

Atualmente, apenas o serviço de endpoint da VPC oferece suporte à conectividade entre regiões.

Os endpoints privados são vinculados a um serviço específico do ClickHouse e não podem ser transferidos entre serviços. Vários ClickPipes para um único serviço do ClickHouse podem reutilizar o mesmo endpoint.

O AWS MSK oferece suporte a apenas um PrivateLink (endpoint da VPC) por cluster MSK para cada tipo de autenticação (SASL_IAM ou SASL_SCRAM). Como resultado, vários serviços ou organizações do ClickHouse Cloud não podem criar conexões PrivateLink separadas com o mesmo cluster MSK usando o mesmo tipo de autenticação.

Limpeza automática de endpoints inativos

Endpoints privados reversos que permanecem em um estado terminal são removidos automaticamente após um período de carência definido. Isso garante que endpoints não utilizados ou configurados incorretamente não permaneçam indefinidamente.

Os seguintes períodos de carência se aplicam de acordo com o status do endpoint:

Status Período de carência Descrição
Falhou 7 dias O endpoint apresentou um erro durante o provisionamento.
Pendente de aceitação 1 dia A conexão do endpoint não foi aceita pelo proprietário do serviço.
Rejeitado 1 dia A conexão do endpoint foi rejeitada pelo proprietário do serviço.
Expirado Imediatamente O endpoint já expirou e é removido imediatamente.

Após o término do período de carência, o endpoint e todos os recursos associados são excluídos automaticamente.

Para evitar a remoção automática, resolva o problema subjacente antes do fim do período de carência. Por exemplo, aceite uma solicitação de conexão pendente no Console da AWS ou recrie o endpoint se ele tiver entrado em estado de falha.

Navigation