VPC géré par le client (BYO-VPC) pour AWS
1
Configurez votre VPC existant
- Ajoutez le tag
clickhouse-byoc="true"à votre VPC. - Allouez exactement 3 sous-réseaux privés répartis sur 3 zones de disponibilité différentes pour que ClickHouse Cloud puisse les utiliser.
- Assurez-vous que chaque sous-réseau dispose d’une plage CIDR minimale de
/25(par ex. 10.0.0.0/25). Un/25prend en charge environ 10 nœuds de serveur ClickHouse par zone de disponibilité ;/24est recommandé pour la plupart des déploiements, et des sous-réseaux plus grands pour les déploiements dont vous prévoyez la croissance. Les adresses IP des pods sont allouées à partir du sous-réseau lui-même, donc chaque réplique consomme des adresses du sous-réseau. - Ajoutez les tags
kubernetes.io/role/internal-elb=1etclickhouse-byoc="true"à chaque sous-réseau afin de permettre une configuration correcte de l’équilibreur de charge.
2
Configurez le point de terminaison Gateway S3
Si votre VPC n’a pas encore de point de terminaison Gateway S3 configuré, vous devrez en créer un pour permettre une communication sécurisée et privée entre votre VPC et Amazon S3. Ce point de terminaison permet à vos services ClickHouse d’accéder à S3 sans passer par l’internet public. Reportez-vous à la capture d’écran ci-dessous pour voir un exemple de configuration.
3
Assurez la connectivité réseau
Accès sortant à internet
Votre VPC doit au minimum autoriser l’accès sortant à internet afin que les composants BYOC de ClickHouse puissent communiquer avec le plan de contrôle Tailscale. Tailscale est utilisé pour fournir un réseau privé sécurisé de type zero trust pour les opérations de gestion. L’enregistrement initial et la configuration avec Tailscale nécessitent une connectivité à l’internet public, obtenue soit directement, soit via une NAT gateway. Cette connectivité est nécessaire pour préserver à la fois la confidentialité et la sécurité de votre déploiement BYOC.Résolution DNS
Assurez-vous que votre VPC dispose d’une résolution DNS fonctionnelle et qu’il ne bloque pas, ne perturbe pas et ne remplace pas les noms DNS standard. ClickHouse BYOC s’appuie sur DNS pour résoudre les serveurs de contrôle Tailscale et les points de terminaison de service ClickHouse. Si DNS n’est pas disponible ou est mal configuré, les services BYOC risquent de ne pas pouvoir se connecter ou fonctionner correctement.
4
Configurez votre compte AWS
La configuration initiale de BYOC crée un rôle IAM privilégié (Remplacez
ClickHouseManagementRole) qui permet aux contrôleurs BYOC de ClickHouse Cloud de gérer votre infrastructure. Cela peut être effectué à l’aide d’un CloudFormation template ou d’un module Terraform (voir ci-dessous).Lors d’un déploiement dans une configuration BYO-VPC, définissez le paramètre IncludeVPCWritePermissions sur false afin de garantir que ClickHouse Cloud ne reçoive pas les autorisations lui permettant de modifier votre VPC géré par le client.Les buckets de stockage, le cluster Kubernetes et les ressources de calcul nécessaires à l’exécution de ClickHouse ne sont pas inclus dans cette configuration initiale. Ils seront provisionnés à une étape ultérieure. Même si vous contrôlez votre VPC, ClickHouse Cloud a toujours besoin d’autorisations IAM pour créer et gérer le cluster Kubernetes, les rôles IAM pour les comptes de service, les buckets S3 et d’autres ressources essentielles dans votre compte AWS.
Module Terraform
Si vous préférez utiliser Terraform plutôt que CloudFormation, utilisez le module terraform-byoc-onboarding :<version> par le tag le plus récent de la page des releases du module — utilisez toujours la dernière release.Le module génère clickhouse_management_role_arn. Dans le flux standard, vous n’avez rien à faire avec cette valeur — l’onboarding se poursuit dans la console ClickHouse Cloud — mais conservez-la à portée de main : ClickHouse vous la demandera si votre configuration s’écarte des valeurs par défaut (par exemple, en cas de nom de rôle personnalisé coordonné).La valeur external_id est générée par la console ClickHouse Cloud et est partagée par toutes les infrastructures BYOC du même compte AWS. Consultez ID externe AWS pour en savoir plus, notamment sur l’espace réservé legacy emptyid.Le module était auparavant distribué sous forme d’archive tar à l’adresse
https://s3.us-east-2.amazonaws.com/clickhouse-public-resources.clickhouse.cloud/tf/byoc.tar.gz. Cette URL reste disponible, mais est obsolète — utilisez le module GitHub ci-dessus.5
Configurez l’infrastructure BYOC
Dans la console ClickHouse Cloud, configurez les éléments suivants lors de la mise en place d’une nouvelle infrastructure :
- Sous VPC configuration, sélectionnez Use existing VPC.
- Saisissez votre VPC ID (par ex.
vpc-0bb751a5b888ad123). - Saisissez les Private subnet IDs pour les 3 sous-réseaux que vous avez configurés précédemment.
- Si nécessaire, saisissez également les Public subnet IDs si votre configuration requiert des équilibreurs de charge exposés publiquement.
- Cliquez sur Set up Infrastructure pour lancer le provisionnement.
La configuration d’une nouvelle région peut prendre jusqu’à 40 minutes.
Rôles IAM gérés par le client
Les rôles IAM gérés par le client sont en private preview. Contactez ClickHouse Support pour activer cette fonctionnalité pour votre organisation avant de suivre les étapes ci-dessous.
- Créez à l’avance les rôles IAM propres à chaque infrastructure que ClickHouse Cloud créerait autrement
- Supprimez les permissions d’écriture IAM du
ClickHouseManagementRoleutilisé pour l’accès inter-comptes - Conservez un contrôle total sur les permissions des rôles et les relations d’approbation
external_id généré par la console ClickHouse Cloud ; toutes les infrastructures BYOC d’un même compte AWS partagent le même ID externe. Consultez ID externe AWS pour plus de détails, y compris l’espace réservé emptyid legacy.
1
Configurer le rôle de gestion sans permissions d’écriture IAM
Lors de la configuration initiale de BYOC, désactivez les permissions d’écriture IAM sur le rôle de gestion. Avec le CloudFormation template, définissez le paramètre Remplacez
IncludeIAMWritePermissions sur false. Avec le module Terraform :<version> par le tag le plus récent de la page des releases du module — utilisez toujours la dernière release.2
Créer les rôles IAM propres à chaque infrastructure
Avant que chaque infrastructure BYOC soit provisionnée, créez les rôles IAM requis (rôles d’identité de pod EKS, rôle d’accès ClickHouse S3 et rôle de gestion du plan de données) avec le module par infrastructure terraform-byoc-onboarding :Remplacez
<version> par le tag le plus récent de la page des releases du module — utilisez toujours la dernière release.3
Maintenir à jour les rôles propres à chaque infrastructure