VPC gerenciada pelo cliente (BYO-VPC) para AWS
1
Configure sua VPC existente
- Adicione a tag
clickhouse-byoc="true"à VPC. - Aloque exatamente 3 sub-redes privadas em 3 zonas de disponibilidade diferentes para uso do ClickHouse Cloud.
- Certifique-se de que cada sub-rede tenha um intervalo CIDR mínimo de
/25(por exemplo, 10.0.0.0/25). Um/25comporta aproximadamente 10 nós de servidor do ClickHouse por zona de disponibilidade;/24é recomendado para a maioria das implantações, e sub-redes maiores para implantações que você espera expandir. Os endereços IP dos pods são alocados da própria sub-rede, portanto, cada réplica consome endereços da sub-rede. - Adicione as tags
kubernetes.io/role/internal-elb=1eclickhouse-byoc="true"a cada sub-rede para permitir a configuração correta do balanceador de carga.
2
Configure o endpoint de gateway do S3
Se sua VPC ainda não tiver um endpoint de gateway do S3 configurado, será necessário criar um para habilitar a comunicação segura e privada entre sua VPC e o Amazon S3. Esse endpoint permite que seus serviços do ClickHouse acessem o S3 sem passar pela internet pública. Consulte a captura de tela abaixo para ver um exemplo de configuração.
3
Garanta a conectividade de rede
Acesso de saída à internet
Sua VPC deve permitir pelo menos acesso de saída à internet para que os componentes do ClickHouse BYOC possam se comunicar com o plano de controle do Tailscale. O Tailscale é usado para fornecer uma rede segura de confiança zero para operações privadas de gerenciamento. O registro inicial e a configuração com o Tailscale exigem conectividade com a internet pública, que pode ser obtida diretamente ou por meio de um NAT gateway. Essa conectividade é necessária para manter a privacidade e a segurança da sua implantação BYOC.Resolução de DNS
Certifique-se de que sua VPC tenha resolução de DNS funcional e não bloqueie, interfira nem sobrescreva nomes DNS padrão. O ClickHouse BYOC depende de DNS para resolver os servidores de controle do Tailscale e os endpoints de serviço do ClickHouse. Se o DNS não estiver disponível ou estiver configurado incorretamente, os serviços BYOC poderão falhar ao se conectar ou operar corretamente.
4
Configure sua conta AWS
A configuração inicial do BYOC cria uma função do IAM privilegiada (Substitua
ClickHouseManagementRole) que permite que os controladores BYOC do ClickHouse Cloud gerenciem sua infraestrutura. Isso pode ser feito usando um template do CloudFormation ou um módulo do Terraform (veja abaixo).Ao implantar uma configuração BYO-VPC, defina o parâmetro IncludeVPCWritePermissions como false para garantir que o ClickHouse Cloud não receba permissões para modificar sua VPC gerenciada pelo cliente.Storage buckets, Kubernetes cluster, and compute resources required for running ClickHouse aren’t included in this initial setup. They will be provisioned in a later step. While you control your VPC, ClickHouse Cloud still requires IAM permissions to create and manage the Kubernetes cluster, IAM roles for service accounts, S3 buckets, and other essential resources in your AWS account.
Módulo do Terraform
Se você preferir usar Terraform em vez de CloudFormation, use o módulo terraform-byoc-onboarding:<version> pela tag mais recente da página de lançamentos do módulo — use sempre o lançamento mais recente.O módulo gera clickhouse_management_role_arn. No fluxo padrão, você não precisa fazer nada com ele — o onboarding continua no console do ClickHouse Cloud —, mas mantenha esse valor em mãos: o ClickHouse o solicitará se sua configuração divergir dos padrões (por exemplo, um nome de função personalizada coordenado).O valor de external_id é gerado pelo console do ClickHouse Cloud e é compartilhado por todas as infraestruturas BYOC na mesma conta AWS. Consulte ID externo da AWS para obter detalhes, incluindo o placeholder emptyid legado.O módulo era distribuído anteriormente como um tarball em
https://s3.us-east-2.amazonaws.com/clickhouse-public-resources.clickhouse.cloud/tf/byoc.tar.gz. Esse URL continua disponível, mas está obsoleto — use o módulo do GitHub acima.5
Configure a infraestrutura do BYOC
No console do ClickHouse Cloud, configure o seguinte ao configurar uma nova infraestrutura:
- Em Configuração da VPC, selecione Usar VPC existente.
- Insira o ID da VPC (por exemplo,
vpc-0bb751a5b888ad123). - Insira os IDs das sub-redes privadas das 3 sub-redes que você configurou anteriormente.
- Opcionalmente, insira os IDs das sub-redes públicas se sua configuração exigir balanceadores de carga voltados para a internet.
- Clique em Configurar infraestrutura para iniciar o provisionamento.
A configuração de uma nova região pode levar até 40 minutos.
IAM roles gerenciados pelo cliente
IAM roles gerenciados pelo cliente estão em prévia privada. Entre em contato com o suporte do ClickHouse para habilitar esse recurso para sua organização antes de seguir as etapas abaixo.
- Cria antecipadamente os IAM roles por infraestrutura que, de outra forma, seriam criados pelo ClickHouse Cloud
- Remove as permissões de gravação do IAM do
ClickHouseManagementRoleusado para acesso entre contas - Mantém controle total sobre as permissões dos roles e as relações de confiança
external_id gerado pelo ClickHouse Cloud console; todas as infraestruturas BYOC na mesma conta AWS compartilham o mesmo ID externo. Consulte ID externo da AWS para obter detalhes, incluindo o placeholder legado emptyid.
1
Configurar o role de gerenciamento sem permissões de gravação do IAM
Ao realizar a configuração inicial do BYOC, desative as permissões de gravação do IAM no role de gerenciamento. Com o template do CloudFormation, defina o parâmetro Substitua
IncludeIAMWritePermissions como false. Com o módulo do Terraform:<version> pela tag mais recente na página de lançamentos do módulo — use sempre o lançamento mais recente.2
Criar os IAM roles por infraestrutura
Antes de cada infraestrutura BYOC ser provisionada, crie os IAM roles necessários (roles de identidade de pod do EKS, o role de acesso S3 do ClickHouse e o role de gerenciamento do plano de dados) com o módulo por infraestrutura do terraform-byoc-onboarding:Substitua
<version> pela tag mais recente na página de lançamentos do módulo — use sempre o lançamento mais recente.3
Manter os roles por infraestrutura atualizados