VPC gestionada por el cliente (BYO-VPC) para AWS
1
Configura tu VPC existente
- Etiqueta la VPC con
clickhouse-byoc="true". - Asigna exactamente 3 subredes privadas en 3 zonas de disponibilidad distintas para que las use ClickHouse Cloud.
- Asegúrate de que cada subred tenga un rango CIDR mínimo de
/25(p. ej., 10.0.0.0/25). Un/25admite aproximadamente 10 nodos de servidor de ClickHouse por zona de disponibilidad; se recomienda/24para la mayoría de las implementaciones y subredes más grandes para las implementaciones que esperas ampliar. Las direcciones IP de los pods de Kubernetes se asignan desde la propia subred, por lo que cada réplica consume direcciones de la subred. - Agrega las etiquetas
kubernetes.io/role/internal-elb=1yclickhouse-byoc="true"a cada subred para habilitar la configuración correcta del balanceador de carga.
2
Configura el endpoint de gateway de S3
Si tu VPC aún no tiene configurado un endpoint de gateway de S3, tendrás que crear uno para habilitar una comunicación segura y privada entre tu VPC y Amazon S3. Este endpoint permite que tus servicios de ClickHouse accedan a S3 sin pasar por internet pública. Consulta la captura de pantalla a continuación para ver una configuración de ejemplo.
3
Asegura la conectividad de red
Acceso saliente a internet
Tu VPC debe permitir al menos acceso saliente a internet, ya sea directamente o mediante un gateway NAT. De ello dependen dos cosas:
- Tailscale. Los componentes de ClickHouse BYOC se registran en el plano de control de Tailscale, que proporciona una red segura de confianza cero para las operaciones privadas de administración sin requerir acceso público entrante. El registro y la configuración iniciales requieren conectividad a internet pública.
- Imágenes de contenedor. Algunas imágenes que ejecuta el despliegue no se replican en el registry de BYOC, incluidas las imágenes de la comunidad, y se descargan desde sus registries upstream.
4
Configura tu cuenta de AWS
La configuración inicial de BYOC crea un rol de IAM con privilegios (Reemplaza
ClickHouseManagementRole) que permite a los controladores de BYOC de ClickHouse Cloud administrar tu infraestructura. Esto puede hacerse con una plantilla de CloudFormation o un módulo de Terraform (consulta más abajo).Al desplegar una configuración BYO-VPC, establece el parámetro IncludeVPCWritePermissions en false para asegurarte de que ClickHouse Cloud no reciba permisos para modificar tu VPC gestionada por el cliente.Los buckets de almacenamiento, el cluster de Kubernetes y los recursos de cómputo necesarios para ejecutar ClickHouse no se incluyen en esta configuración inicial. Se aprovisionarán en un paso posterior. Aunque controlas tu VPC, ClickHouse Cloud sigue requiriendo permisos de IAM para crear y administrar el cluster de Kubernetes, roles de IAM para service accounts, buckets de S3 y otros recursos esenciales de tu cuenta de AWS.
Módulo de Terraform
Si prefieres usar Terraform en lugar de CloudFormation, usa el módulo terraform-byoc-onboarding:<version> por la etiqueta más reciente de la página de releases del módulo; usa siempre la release más reciente.El módulo genera clickhouse_management_role_arn. En el flujo estándar no necesitas realizar ninguna acción con él: el onboarding continúa en la consola de ClickHouse Cloud, pero tenlo a mano: ClickHouse te lo solicitará si tu configuración se desvía de los valores predeterminados (por ejemplo, si se coordina un nombre de rol personalizado).El valor de external_id lo genera la consola de ClickHouse Cloud y lo comparten todas las infraestructuras BYOC de la misma cuenta de AWS. Consulta ID externo de AWS para obtener más información, incluido el placeholder heredado emptyid.El módulo se distribuía anteriormente como un tarball en
https://s3.us-east-2.amazonaws.com/clickhouse-public-resources.clickhouse.cloud/tf/byoc.tar.gz. Esa URL sigue disponible, pero está obsoleta; usa el módulo de GitHub anterior.5
Configura la infraestructura BYOC
Al hacer clic en Set up Infrastructure, ClickHouse Cloud ejecuta automáticamente la validación previa antes del aprovisionamiento. Si tu VPC personalizada o cuenta no cumple los requisitos, la configuración se detiene e indica los problemas específicos que debes corregir.
- En Configuración de VPC, selecciona Use existing VPC.
- Introduce tu ID de VPC (p. ej.,
vpc-0bb751a5b888ad123). - Introduce los ID de las subredes privadas de las 3 subredes que configuraste antes.
- Opcionalmente, introduce los ID de las subredes públicas si tu configuración requiere balanceadores de carga con acceso público.
- Haz clic en Set up Infrastructure para comenzar el aprovisionamiento.
La configuración de una nueva región puede tardar hasta 40 minutos.
Subredes compartidas desde otra cuenta (AWS RAM)
Puede ejecutar BYOC en una cuenta radial (spoke) sobre subredes compartidas desde una cuenta central (hub) mediante AWS Resource Access Manager (RAM), lo que le permite mantener la red centralizada. La configuración es la misma descrita anteriormente, con dos diferencias derivadas del funcionamiento de los recursos compartidos con RAM:- Aplique las etiquetas desde la cuenta radial. Los recursos compartidos con RAM tienen una vista de etiquetas por cuenta, por lo que las etiquetas aplicadas en la cuenta central no son visibles para la cuenta radial. Aplique
clickhouse-byoc="true"a la VPC, ykubernetes.io/role/internal-elb=1junto conclickhouse-byoc="true"a cada subred compartida, desde la cuenta radial. De lo contrario, la validación previa informará de que faltan etiquetas y el aprovisionamiento fallará. - El enrutamiento sigue a cargo de la cuenta central. Las route tables de las subredes compartidas siguen siendo propiedad de la cuenta central, que es por tanto responsable del NAT y del enrutamiento de salida, así como del endpoint de gateway de S3, ya que se trata de un recurso a nivel de VPC. Confirme que las subredes compartidas siguen cumpliendo el requisito de conectividad saliente indicado anteriormente.
/25 por subred y la configuración de ClickHouseManagementRole en la cuenta radial donde se ejecuta la infraestructura BYOC.
Roles de IAM gestionados por el cliente
Para las organizaciones con requisitos de seguridad avanzados o políticas de cumplimiento estrictas, puede proporcionar sus propios roles de IAM en lugar de que ClickHouse Cloud los cree. Este enfoque le brinda control total sobre los permisos de IAM y le permite aplicar las políticas de seguridad de su organización.Los roles de IAM gestionados por el cliente están en vista previa privada. Póngase en contacto con el soporte de ClickHouse para habilitar esta funcionalidad para su organización antes de seguir los pasos que aparecen a continuación.
- Crea de antemano los roles de IAM por infraestructura que, de otro modo, ClickHouse Cloud crearía
- Elimina los permisos de escritura de IAM del
ClickHouseManagementRoleusado para el acceso entre cuentas - Mantiene control total sobre los permisos de los roles y las relaciones de confianza
external_id generado por la consola de ClickHouse Cloud; todas las infraestructuras de BYOC de la misma cuenta de AWS comparten el mismo ID externo. Consulte ID externo de AWS para obtener más información, incluido el marcador de posición heredado emptyid.
1
Configurar el rol de administración sin permisos de escritura de IAM
Al realizar la configuración inicial de BYOC, desactive los permisos de escritura de IAM en el rol de administración. Con la plantilla de CloudFormation, establezca el parámetro Sustituya
IncludeIAMWritePermissions en false. Con el módulo de Terraform:<version> por la etiqueta más reciente de la página de versiones del módulo; use siempre la última versión.2
Crear los roles de IAM por infraestructura
Antes de aprovisionar cada infraestructura de BYOC, cree los roles de IAM necesarios para ella (roles de identidad de pod de EKS, el rol de acceso de ClickHouse a S3 y el rol de administración del plano de datos) con el módulo por infraestructura de terraform-byoc-onboarding:Sustituya
<version> por la etiqueta más reciente de la página de versiones del módulo; use siempre la última versión.3
Mantener actualizados los roles por infraestructura