> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuración personalizada en AWS

> Despliegue ClickHouse BYOC en su VPC de AWS existente

export const Image = ({img, alt, size = "lg", background}) => {
  const normalizedSize = ["sm", "md", "lg"].includes(size) ? size : "lg";
  const backgroundColor = background === "white" ? "white" : background === "black" ? "rgb(31 31 28)" : undefined;
  return <div className={`ch-image-${normalizedSize}`}>
      <Frame>
        <img src={img} alt={alt} style={{
    backgroundColor
  }} />
      </Frame>
    </div>;
};

<div id="customer-managed-vpc-aws">
  ## VPC gestionada por el cliente (BYO-VPC) para AWS
</div>

Si prefiere usar una VPC existente para implementar ClickHouse BYOC, en lugar de que ClickHouse Cloud cree una nueva VPC, siga estos pasos. Este enfoque ofrece un mayor control sobre la configuración de red y le permite integrar ClickHouse BYOC en su infraestructura de red existente.

<Steps>
  <Step title="Configura tu VPC existente" id="configure-existing-vpc">
    1. Etiqueta la VPC con `clickhouse-byoc="true"`.
    2. Asigna exactamente 3 subredes privadas en 3 zonas de disponibilidad distintas para que las use ClickHouse Cloud.
    3. Asegúrate de que cada subred tenga un rango CIDR mínimo de `/25` (p. ej., 10.0.0.0/25). Un `/25` admite aproximadamente 10 nodos de servidor de ClickHouse por zona de disponibilidad; se recomienda `/24` para 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.
    4. Agrega las etiquetas `kubernetes.io/role/internal-elb=1` y `clickhouse-byoc="true"` a cada subred para habilitar la configuración correcta del balanceador de carga.

    <Image img="https://mintcdn.com/private-7c7dfe99-parallel-read-in-order-multi-part/ddtIc1lqDa5KQDBb/images/cloud/reference/byoc-subnet-1.webp?fit=max&auto=format&n=ddtIc1lqDa5KQDBb&q=85&s=3971c85eca3ff2df729cf15638634291" size="lg" alt="Subred de VPC de BYOC" width="1600" height="827" data-path="images/cloud/reference/byoc-subnet-1.webp" />

    <Image img="https://mintcdn.com/private-7c7dfe99-parallel-read-in-order-multi-part/ddtIc1lqDa5KQDBb/images/cloud/reference/byoc-subnet-2.webp?fit=max&auto=format&n=ddtIc1lqDa5KQDBb&q=85&s=057bc22a3db23818704f82ce62707d39" size="lg" alt="Etiquetas de subred de VPC de BYOC" width="1600" height="406" data-path="images/cloud/reference/byoc-subnet-2.webp" />
  </Step>

  <Step title="Configura el endpoint de gateway de S3" id="configure-s3-endpoint">
    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.

    <Image img="https://mintcdn.com/private-7c7dfe99-parallel-read-in-order-multi-part/ddtIc1lqDa5KQDBb/images/cloud/reference/byoc-s3-endpoint.webp?fit=max&auto=format&n=ddtIc1lqDa5KQDBb&q=85&s=dc2f035964f6ffa194e07a18bc8177d5" size="lg" alt="Endpoint de S3 de BYOC" width="1711" height="1559" data-path="images/cloud/reference/byoc-s3-endpoint.webp" />
  </Step>

  <Step title="Asegura la conectividad de red" id="ensure-network-connectivity">
    **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.

    Una VPC sin ruta saliente no completará el aprovisionamiento. No existe una lista de endpoints publicada; si tu política de red requiere un inventario explícito, contacta con el soporte para revisar tu configuración.

    **Resolución DNS**
    Asegúrate de que tu VPC tenga una resolución DNS funcional y de que no bloquee, interfiera ni sobrescriba los nombres DNS estándar. ClickHouse BYOC depende de DNS para resolver los servidores de control de Tailscale y los endpoints del servicio de ClickHouse. Si DNS no está disponible o está mal configurado, es posible que los servicios de BYOC no puedan conectarse o funcionar correctamente.
  </Step>

  <Step title="Configura tu cuenta de AWS" id="configure-aws-account">
    La configuración inicial de BYOC crea un rol de IAM con privilegios (`ClickHouseManagementRole`) que permite a los controladores de BYOC de ClickHouse Cloud administrar tu infraestructura. Esto puede hacerse con una [plantilla de CloudFormation](https://s3.us-east-2.amazonaws.com/clickhouse-public-resources.clickhouse.cloud/cf-templates/byoc_v2.yaml) o un módulo de Terraform (consulta más abajo).

    <Warning>
      **El nombre del rol de IAM es un requisito estricto.** El rol debe conservar su nombre predeterminado, `ClickHouseManagementRole`; no se permiten prefijos, sufijos ni cambios de nombre para cumplir con una convención de nomenclatura organizativa, a menos que ClickHouse haya acordado explícitamente un nombre diferente de antemano (la entrada de Terraform `role_name` solo debe cambiarse en coordinación con ClickHouse). Un rol con otro nombre se aplica correctamente, pero el aprovisionamiento falla posteriormente porque ClickHouse no puede asumir el rol esperado. En general, no cambies nada de la plantilla o el módulo proporcionados sin la aprobación explícita de ClickHouse; las personalizaciones admitidas se exponen como parámetros.
    </Warning>

    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.

    <Note>
      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.
    </Note>

    #### Módulo de Terraform

    Si prefieres usar Terraform en lugar de CloudFormation, usa el módulo [terraform-byoc-onboarding](https://github.com/ClickHouse/terraform-byoc-onboarding):

    ```hcl theme={null}
    module "clickhouse_onboarding" {
      source                        = "github.com/ClickHouse/terraform-byoc-onboarding.git//modules/aws?ref=<version>"
      external_id                   = "<external-id-provided-by-clickhouse>"
      include_vpc_write_permissions = false
    }
    ```

    Reemplaza `<version>` por la etiqueta más reciente de la [página de releases](https://github.com/ClickHouse/terraform-byoc-onboarding/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](/es/products/bring-your-own-cloud/onboarding/standard#aws-external-id) para obtener más información, incluido el placeholder heredado `emptyid`.

    <Note>
      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.
    </Note>
  </Step>

  <Step title="Configura la infraestructura BYOC" id="set-up-byoc-infrastructure">
    <Note>
      Al hacer clic en **Set up Infrastructure**, ClickHouse Cloud ejecuta automáticamente la [validación previa](/es/products/bring-your-own-cloud/onboarding/standard#preflight-validation) 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.
    </Note>

    En la consola de ClickHouse Cloud, configura lo siguiente al configurar nueva infraestructura:

    1. En **Configuración de VPC**, selecciona **Use existing VPC**.
    2. Introduce tu **ID de VPC** (p. ej., `vpc-0bb751a5b888ad123`).
    3. Introduce los **ID de las subredes privadas** de las 3 subredes que configuraste antes.
    4. Opcionalmente, introduce los **ID de las subredes públicas** si tu configuración requiere balanceadores de carga con acceso público.
    5. Haz clic en **Set up Infrastructure** para comenzar el aprovisionamiento.

    <Image img="https://mintcdn.com/private-7c7dfe99-parallel-read-in-order-multi-part/xI74_SSNk8kNyW21/images/cloud/reference/byoc-aws-existing-vpc-ui.webp?fit=max&auto=format&n=xI74_SSNk8kNyW21&q=85&s=85e4b4a4b57a400d03a8526f487dca67" size="lg" alt="UI de configuración de BYOC de ClickHouse Cloud con Use existing VPC seleccionado" width="1182" height="1466" data-path="images/cloud/reference/byoc-aws-existing-vpc-ui.webp" />

    <Note>
      La configuración de una nueva región puede tardar hasta 40 minutos.
    </Note>
  </Step>
</Steps>

<h3 id="shared-subnets-ram">
  Subredes compartidas desde otra cuenta (AWS RAM)
</h3>

Puede ejecutar BYOC en una cuenta radial (spoke) sobre subredes compartidas desde una cuenta central (hub) mediante [AWS Resource Access Manager (RAM)](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html), 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, y `kubernetes.io/role/internal-elb=1` junto con `clickhouse-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.

Todo lo demás se mantiene igual: tres private subnets distribuidas en tres availability zones, un CIDR mínimo de `/25` por subred y la configuración de `ClickHouseManagementRole` en la cuenta radial donde se ejecuta la infraestructura BYOC.

<h2 id="customer-managed-iam-roles">
  Roles de IAM gestionados por el cliente
</h2>

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.

<Info>
  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.
</Info>

Con roles de IAM gestionados por el cliente, usted:

* 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 `ClickHouseManagementRole` usado para el acceso entre cuentas
* Mantiene control total sobre los permisos de los roles y las relaciones de confianza

Ambos módulos siguientes toman el `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](/es/products/bring-your-own-cloud/onboarding/standard#aws-external-id) para obtener más información, incluido el marcador de posición heredado `emptyid`.

<Steps>
  <Step title="Configurar el rol de administración sin permisos de escritura de IAM" id="byo-iam-management-role">
    Al realizar la [configuración inicial de BYOC](/es/products/bring-your-own-cloud/onboarding/standard), desactive los permisos de escritura de IAM en el rol de administración. Con la plantilla de CloudFormation, establezca el parámetro `IncludeIAMWritePermissions` en `false`. Con el módulo de Terraform:

    ```hcl theme={null}
    module "clickhouse_onboarding" {
      source                        = "github.com/ClickHouse/terraform-byoc-onboarding.git//modules/aws?ref=<version>"
      external_id                   = "<external-id-provided-by-clickhouse>"
      include_iam_write_permissions = false
    }
    ```

    Sustituya `<version>` por la etiqueta más reciente de la [página de versiones](https://github.com/ClickHouse/terraform-byoc-onboarding/releases) del módulo; use siempre la última versión.
  </Step>

  <Step title="Crear los roles de IAM por infraestructura" id="byo-iam-per-infra-roles">
    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](https://github.com/ClickHouse/terraform-byoc-onboarding):

    ```hcl theme={null}
    module "clickhouse_per_infra_iam" {
      source = "github.com/ClickHouse/terraform-byoc-onboarding.git//modules/aws-per-infra-iam?ref=<version>"

      spoken_name = "<spoken-name-provided-by-clickhouse>"
      region      = "<aws-region-of-the-infrastructure>"
      external_id = "<external-id-provided-by-clickhouse>"
    }
    ```

    Sustituya `<version>` por la etiqueta más reciente de la [página de versiones](https://github.com/ClickHouse/terraform-byoc-onboarding/releases) del módulo; use siempre la última versión.
  </Step>

  <Step title="Mantener actualizados los roles por infraestructura" id="byo-iam-keep-up-to-date">
    <Warning>
      ClickHouse añade periódicamente roles y permisos requeridos por nuevas funcionalidades de la plataforma. Cuando ClickHouse le notifique una actualización, vuelva a aplicar el módulo por infraestructura con la última versión; ejecutar una versión desactualizada puede hacer que fallen el aprovisionamiento y las actualizaciones de su infraestructura de BYOC.
    </Warning>
  </Step>
</Steps>

Para obtener información sobre los roles de IAM que ClickHouse Cloud crea de forma predeterminada, consulte la [Referencia de privilegios de BYOC](/es/products/bring-your-own-cloud/reference/privilege).
