Crear una instancia principal

En esta página se describe cómo crear la instancia principal en un clúster de AlloyDB.

Antes de empezar

  • El Google Cloud proyecto que estés usando debe tener habilitado el acceso a AlloyDB.
  • Debes tener uno de estos roles de gestión de identidades y accesos en el Google Cloud proyecto que estés usando:
    • roles/alloydb.admin (el rol de gestión de identidades y accesos predefinido de AlloyDB)
    • roles/owner (el rol básico de propietario de gestión de identidades y accesos)
    • roles/editor (el rol básico de gestión de identidades y accesos Editor)

    Si no tienes ninguno de estos roles, ponte en contacto con el administrador de tu organización para solicitar acceso.

Crear una instancia principal de AlloyDB

Consola

  1. Ve a la página Clústeres.

    Ir a Clústeres

  2. Haga clic en un clúster de la columna Nombre del recurso.

  3. En la página Vista general, ve a Instancias de tu clúster y haz clic en Crear instancia principal.

  4. Configura la instancia principal:

    1. En el campo ID de instancia, introduce un ID para tu instancia principal.
    2. En Disponibilidad por zonas, selecciona una de las siguientes opciones:
      1. Para crear una instancia de producción de alta disponibilidad con conmutación por error automatizada, selecciona Varias zonas (alta disponibilidad).
      2. Para crear una instancia básica que no necesite una alta disponibilidad, selecciona Una sola zona.
    3. Selecciona una de las siguientes series de máquinas:

      • C4A (serie de máquinas basadas en Google Axion)
      • N2 (serie de máquinas basadas en x86). Esta es la serie de máquinas predeterminada.
    4. Selecciona un tipo de máquina.

      • C4A admite 1, 4, 8, 16, 32, 48, 64 y 72 tipos o formas de máquinas.
      • N2 admite 2, 4, 8, 16, 32, 64, 96 y 128 tipos o formas de máquinas.

      Para obtener más información sobre el uso de la serie de máquinas C4A basada en Axion, incluido el tipo de máquina de 1 vCPU, consulta Consideraciones al usar la serie de máquinas C4A basada en Axion.

    5. Opcional: Para conectar tus aplicaciones y clientes a través de Internet público, marca la casilla Habilitar IP pública en Conectividad de IP pública. Para habilitar la IP pública, es posible que tengas que hacer una configuración adicional para asegurarte de que tienes una conexión segura. Para obtener más información, consulta Conectarse mediante una IP pública.

      De forma predeterminada, la IP privada siempre está habilitada. Para obtener más información, consulta el artículo Habilitar el acceso a servicios privados.

    6. Opcional: Para habilitar y usar la agrupación de conexiones gestionadas, marca la casilla Habilitar agrupación de conexiones gestionadas en Agrupación de conexiones gestionadas. Para obtener más información, consulta Configurar la agrupación de conexiones gestionada.

    7. Opcional: Para definir marcas personalizadas para tu instancia, amplía Opciones de configuración avanzada y, a continuación, haz lo siguiente con cada marca:

      1. Haz clic en Añadir marca.
      2. Seleccione una marca de la lista Nueva marca de base de datos.
      3. Indica un valor para la marca.
      4. Haz clic en Listo.
    8. Opcional: Para configurar los requisitos de SSL o del conector en la instancia, expande Opciones de configuración avanzada y haz lo siguiente:

      1. De forma predeterminada, las instancias de AlloyDB requieren que todas las conexiones usen cifrado SSL. Para permitir conexiones no SSL, desmarca la casilla Permitir solo conexiones SSL.
      2. Para exigir que todas las conexiones de base de datos a la instancia usen el proxy de autenticación de AlloyDB o las bibliotecas de conectores seguros proporcionadas por Google, selecciona Requerir conectores.
  5. Haz clic en Crear instancia.

gcloud

Para usar la CLI de gcloud, puedes instalar e inicializar Google Cloud CLI o usar Cloud Shell.

Usa el comando gcloud alloydb instances create para crear una instancia principal.

gcloud alloydb instances create INSTANCE_ID \
    --instance-type=PRIMARY \
    --availability-type=AVAILABILITY \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --cpu-count=CPU_COUNT \
    --machine-type=MACHINE_TYPE \
    --project=PROJECT_ID
  • INSTANCE_ID: el ID de la instancia que estás creando. Debe empezar por una letra minúscula y puede contener letras minúsculas, números y guiones.
  • AVAILABILITY: indica si esta instancia debe tener alta disponibilidad (HA), con nodos en varias zonas. Los valores válidos son los siguientes:
    • REGIONAL: crea una instancia de alta disponibilidad con nodos activos y de espera independientes, así como una conmutación por error automatizada entre ellos. Este es el valor predeterminado, adecuado para entornos de producción.
    • ZONAL: crea una instancia básica que contiene solo un nodo y no tiene conmutación por error automática.
  • REGION_ID: la región en la que quieres que se coloque la instancia. Por ejemplo, us-central1.
  • CLUSTER_ID: el ID del clúster en el que quieres colocar la instancia.
  • CPU_COUNT: el número de vCPUs que quieres para la instancia.

    • Debes especificar cpu_count o machine_type.
    • Si solo se proporciona cpu_count, se crea una instancia de N2 con las siguientes especificaciones:
      • 2: 2 vCPUs, 16 GB RAM
      • 4: 4 vCPUs, 32 GB RAM
      • 8: 8 vCPUs, 64 GB RAM
      • 16: 16 vCPUs y 128 GB de RAM
      • 32: 32 vCPUs, 256 GB de RAM
      • 64: 64 vCPUs, 512 GB RAM
      • 96: 96 vCPUs, 768 GB RAM
      • 128: 128 vCPUs, 864 GB de RAM
    • Si se proporcionan tanto machine_type como cpu_count, el valor de cpu_count debe coincidir con el número de vCPUs especificado en machine_type. Por ejemplo, si machine_type es n2-highmem-4, debe definir cpu_count como 4.
  • MACHINE_TYPE: el tipo de máquina de la instancia.

    • En el caso de la serie de máquinas C4A basada en Axion, los valores válidos son los siguientes:

      • c4a-highmem-1
      • c4a-highmem-4-lssd
      • c4a-highmem-8-lssd
      • c4a-highmem-16-lssd
      • c4a-highmem-32-lssd
      • c4a-highmem-48-lssd
      • c4a-highmem-64-lssd
      • c4a-highmem-72-lssd
    • En el caso de la serie de máquinas N2, estos son los valores válidos:

      • n2-highmem-2
      • n2-highmem-4
      • n2-highmem-8
      • n2-highmem-16
      • n2-highmem-32
      • n2-highmem-64
      • n2-highmem-96
      • n2-highmem-128

      Cuando se usan machine_type y cpu_count juntos, los valores de cpu_count y machine_type deben coincidir. Por ejemplo, si machine_type es n2-highmem-4, debe definir cpu_count como 4.

  • PROJECT_ID: el ID del proyecto en el que se encuentra el clúster.

De forma predeterminada, las instancias nuevas requieren que todas las conexiones usen el cifrado SSL. Para permitir conexiones no SSL a la instancia, añade la marca --ssl-mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED al comando:

gcloud alloydb instances create INSTANCE_ID \
  --instance-type=PRIMARY \
  --region=REGION_ID \
  --cluster=CLUSTER_ID \
  --project=PROJECT_ID \
  --cpu-count=CPU_COUNT \
  --machine-type=MACHINE_TYPE \
  --ssl-mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED

Para forzar una conexión segura entre el cliente y una instancia de AlloyDB a través del proxy de autenticación u otras aplicaciones que usen bibliotecas de conectores proporcionadas por Google, añade la marca --require-connectors al comando:

gcloud alloydb instances create INSTANCE_ID \
  --instance-type=PRIMARY \
  --region=REGION_ID \
  --cluster=CLUSTER_ID \
  --cpu-count=CPU_COUNT \
  --machine-type=MACHINE_TYPE \
  --project=PROJECT_ID \
  --require-connectors

Para habilitar la agrupación de conexiones gestionadas en tu instancia de AlloyDB, añade la marca --enable-connection-pooling al comando gcloud alloydb instances create:

gcloud alloydb instances create INSTANCE_ID \
  --instance-type=PRIMARY \
  --region=REGION_ID \
  --cluster=CLUSTER_ID \
  --cpu-count=CPU_COUNT \
  --machine-type=MACHINE_TYPE \
  --project=PROJECT_ID \
  --enable-connection-pooling

También puedes crear una instancia de AlloyDB con Private Service Connect habilitado. Para obtener información sobre cómo crear una instancia principal para un clúster habilitado para Private Service Connect, consulta Crear una instancia de AlloyDB.

Terraform

Crear una instancia

Para crear una instancia en tu clúster de bases de datos, usa un recurso de Terraform.

resource "google_alloydb_instance" "default" {
  cluster       = google_alloydb_cluster.default.name
  instance_id   = "alloydb-instance"
  instance_type = "PRIMARY"

  machine_config {
    cpu_count = 2
  }

  depends_on = [google_service_networking_connection.vpc_connection]
}

resource "google_alloydb_cluster" "default" {
  cluster_id = "alloydb-cluster"
  location   = "us-central1"
  network_config {
    network = google_compute_network.default.id
  }

  initial_user {
    password = "alloydb-cluster"
  }
}

data "google_project" "project" {}

resource "google_compute_network" "default" {
  name = "alloydb-network"
}

resource "google_compute_global_address" "private_ip_alloc" {
  name          =  "alloydb-cluster"
  address_type  = "INTERNAL"
  purpose       = "VPC_PEERING"
  prefix_length = 16
  network       = google_compute_network.default.id
}

resource "google_service_networking_connection" "vpc_connection" {
  network                 = google_compute_network.default.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.private_ip_alloc.name]
}

En el ejemplo anterior, se crea una instancia N2. Para crear una instancia de C4A, usa el campo machine_type dentro de la estructura machine_config, como se muestra en el siguiente ejemplo:

machine_config { 
  machine_type = "c4a-highmem-4-lssd" 
} 

Preparar Cloud Shell

Para aplicar tu configuración de Terraform en un proyecto de Google Cloud , prepara Cloud Shell de la siguiente manera:

  1. Abre Cloud Shell.
  2. Define el proyecto predeterminado Google Cloud en el que quieras aplicar tus configuraciones de Terraform.

    Solo tiene que ejecutar este comando una vez por proyecto y puede hacerlo en cualquier directorio.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Las variables de entorno se anulan si defines valores explícitos en el archivo de configuración de Terraform.

Preparar el directorio

Cada archivo de configuración de Terraform debe tener su propio directorio, también llamado módulo raíz.

  1. En Cloud Shell, crea un directorio y un archivo nuevo en ese directorio. El nombre del archivo debe ser un archivo TF, por ejemplo, main.tf. En este documento, el archivo se denomina main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Copia el código de ejemplo en el archivo main.tf que acabas de crear. También puedes copiar el código de GitHub. Se recomienda usar esta opción cuando el fragmento de Terraform forme parte de una solución integral.
    git clone https://github.com/terraform-google-modules/terraform-docs-samples
  3. En el directorio terraform-docs-samples, vaya al directorio alloydb.
    cd terraform-docs-samples/alloydb
  4. Copia el código de ejemplo en el archivo main.tf que acabas de crear.
    cp SAMPLE_FILE
    Sustituye <var>SAMPLE_FILE</var> por el nombre del archivo de ejemplo que quieras copiar. Por ejemplo, main.tf.
  5. Revisa y modifica los parámetros de ejemplo para aplicarlos a tu entorno.
  6. Guarda los cambios.
  7. Inicializa Terraform. Solo tienes que hacerlo una vez por directorio.
    terraform init
    Opcional: Para usar la versión más reciente del proveedor de Google, incluye la opción -upgrade:
    terraform init -upgrade

Aplica los cambios

  1. Revisa la configuración para confirmar que las actualizaciones de Terraform se ajustan a tus expectativas:
    terraform plan
    Haga las correcciones necesarias en la configuración.
  2. Aplica la configuración de Terraform ejecutando el siguiente comando e introduciendo yes en la petición:
    terraform apply
    Espera hasta que Terraform muestre el mensaje Apply complete!.

Abre tu Google Cloud proyecto para ver los resultados. En la Google Cloud consola, vaya a sus recursos en la interfaz de usuario para asegurarse de que Terraform los ha creado o actualizado.

REST v1

Crear una instancia

En este ejemplo se crea una instancia principal. Para ver la lista completa de parámetros de esta llamada, consulta Method: projects.locations.clusters.instances.create. Para obtener información sobre la configuración de clústeres, consulta Ver la configuración de clústeres e instancias.

No incluyas información sensible ni información personal identificable en el ID de tu clúster, ya que es visible externamente. No es necesario que incluyas el ID del proyecto en el nombre del clúster, ya que se hace automáticamente cuando es necesario (por ejemplo, en los archivos de registro).

Para enviar tu solicitud, guarda el cuerpo de la solicitud en un archivo llamado instance_request.json.

{
  "instance_type": "PRIMARY",
  "machine_config": {
    "cpu_count": "vCPU_COUNT",
  },
}

Haz la siguiente sustitución:

  • CPU_COUNT: el número de núcleos de CPU visibles en la instancia que quieres crear.

En el ejemplo anterior se crea una instancia N2 con las siguientes especificaciones:

  • 2: 2 vCPUs, 16 GB de RAM
  • 4: 4 vCPUs, 32 GB de RAM
  • 8: 8 vCPUs, 64 GB de RAM
  • 16: 16 vCPUs y 128 GB de RAM
  • 32: 32 vCPUs y 256 GB de RAM
  • 64: 64 vCPUs, 512 GB de RAM
  • 96: 96 vCPUs, 768 GB de RAM
  • 128: 128 vCPUs y 864 GB de RAM

Para crear una instancia de C4A, usa el campo machine_type en lugar de cpu_count en la estructura machine_config, como se muestra en el siguiente ejemplo:

machine_config: {
  machine_type : MACHINE_TYPE,
},

En el caso de la serie de máquinas C4A basada en Axion, los valores válidos son los siguientes:

  • c4a-highmem-1
  • c4a-highmem-4-lssd
  • c4a-highmem-8-lssd
  • c4a-highmem-16-lssd
  • c4a-highmem-32-lssd
  • c4a-highmem-48-lssd
  • c4a-highmem-64-lssd
  • c4a-highmem-72-lssd

En el caso de la serie de máquinas N2, los valores válidos son los siguientes:

  • n2-highmem-2
  • n2-highmem-4
  • n2-highmem-8
  • n2-highmem-16
  • n2-highmem-32
  • n2-highmem-64
  • n2-highmem-96
  • n2-highmem-128

Usa el siguiente método HTTP y la siguiente URL:

POST https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances?instance_id=INSTANCE_ID

Haz las siguientes sustituciones:

  • PROJECT_ID: el ID del proyecto en el que quieres que se encuentre el clúster.
  • LOCATION_ID: el ID de la región del clúster.
  • CLUSTER_ID: el ID del clúster que crees. El ID debe empezar por una letra minúscula y puede contener letras minúsculas, números y guiones.
  • INSTANCE_ID: el nombre de la instancia principal que quieras crear.

Puedes usar curl para ejecutar la solicitud, tal como se muestra en el siguiente ejemplo:

curl -X POST   -H "Authorization: Bearer $(gcloud auth print-access-token)"   -H "Content-Type: application/json"   https://alloydb.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances?instance_id=INSTANCE_ID   -d @instance_request.json

Siguientes pasos