Crea una instancia principal

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

Antes de comenzar

  • El proyecto de Google Cloud que usas debe estar habilitado para acceder a AlloyDB.
  • Debes tener uno de estos roles de IAM en el proyecto de Google Cloud que usas:
    • roles/alloydb.admin (el rol de IAM predefinido de administrador de AlloyDB)
    • roles/owner (el rol de IAM básico de propietario)
    • roles/editor (el rol de IAM básico de editor)

    Si no tienes ninguno de estos roles, comunícate con el administrador de tu organización para solicitar acceso.

Crea una instancia principal de AlloyDB

Console

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

    Ir a los clústeres

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

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

  4. Configura tu instancia principal:

    1. En el campo ID de instancia, ingresa un ID para tu instancia principal.
    2. En Disponibilidad zonal, selecciona una de las siguientes opciones:
      1. Para crear una instancia de producción con alta disponibilidad y conmutación por error automática, selecciona Varias zonas (con alta disponibilidad).
      2. Para crear una instancia básica que no necesite tener alta disponibilidad, selecciona Zona única.
    3. Selecciona un tipo de máquina.
    4. Opcional: Para establecer marcas personalizadas para tu instancia, expande Opciones de configuración avanzada y, luego, haz lo siguiente para cada marca:
      1. Haz clic en Agregar marca.
      2. Selecciona una marca de la lista Nueva marca de base de datos.
      3. Proporciona un valor para la marca.
      4. Haz clic en Listo.
    5. Opcional: Para configurar los requisitos de SSL o conector en la instancia, extiende Opciones de configuración avanzada y, luego, haz lo siguiente:
      1. De forma predeterminada, las instancias de AlloyDB requieren que todas las conexiones usen encriptación SSL. Para permitir conexiones que no sean SSL, desmarca la casilla de verificación Solo permitir conexiones SSL.
      2. Para exigir que todas las conexiones de la base de datos a la instancia usen el proxy de autenticación de AlloyDB o las bibliotecas de conectores seguros que proporciona Google, selecciona Require connectors.
    6. Haz clic en Crear instancia.

gcloud

Para usar gcloud CLI, puedes instalar y, luego, inicializar Google Cloud CLI, o bien usar Cloud Shell.

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

gcloud alloydb instances create INSTANCE_ID \
    --instance-type=PRIMARY \
    --cpu-count=CPU_COUNT \
    --availability-type=AVAILABILITY \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID
  • INSTANCE_ID: Es el ID de la instancia que estás creando. Debe comenzar con una letra minúscula y puede contener letras minúsculas, números y guiones.
  • CPU_COUNT: Es la cantidad de CPU virtuales que deseas para la instancia. Estos son algunos de los valores válidos:
    • 2: 2 CPU virtuales, 16 GB de RAM
    • 4: 4 vCPU, 32 GB de RAM
    • 8: 8 CPU virtuales, 64 GB de RAM
    • 16: 16 CPU virtuales, 128 GB de RAM
    • 32: 32 CPU virtuales, 256 GB de RAM
    • 64: 64 CPU virtuales, 512 GB de RAM
    • 96: 96 CPU virtuales, 768 GB de RAM
    • 128: 128 CPU virtuales, 864 GB de RAM
  • AVAILABILITY: Indica si esta instancia debe tener alta disponibilidad (HA) con nodos en varias zonas. Estos son algunos de los valores válidos:
    • REGIONAL: Crea una instancia de HA con nodos activos y en espera separados, y conmutación por error automática 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 sin conmutación por error automática.
  • REGION_ID: Es la región en la que deseas que se ubique la instancia. Por ejemplo, us-central1
  • CLUSTER_ID: Es el ID del clúster en el que deseas que se coloque la instancia.
  • PROJECT_ID: Es el ID del proyecto en el que se ubica el clúster.

De forma predeterminada, las instancias nuevas requieren que todas las conexiones usen la encriptación SSL. Para permitir conexiones no SSL a la instancia, agrega la marca --ssl-mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED al comando:

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

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

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

Para crear una instancia principal para un clúster habilitado para Private Service Connect, agrega la marca --allowed-psc-projects para establecer una lista separada por comas de los IDs de proyectos o los números de proyectos a los que deseas permitir el acceso a la instancia, por ejemplo, my-project-1, 12345,my-project-n.

gcloud alloydb instances create INSTANCE_ID \
    --instance-type=PRIMARY \
    --cpu-count=CPU_COUNT \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --allowed-psc-projects=ALLOWED_PROJECT_LIST

Reemplaza lo siguiente:

  • ALLOWED_PROJECT_LIST (opcional): Es la lista separada por comas de los IDs o números de proyectos a los que deseas permitir el acceso a la instancia, por ejemplo,my-project-1, 12345,my-project-n. Si tu clúster usa Private Service Connect como método para conectarse a la instancia, debes establecer una lista de proyectos o números permitidos.

Terraform

Para crear una instancia dentro de 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]
}

Prepara Cloud Shell

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

  1. Inicia Cloud Shell
  2. Establece el proyecto de Google Cloud predeterminado en el que deseas aplicar tus configuraciones de Terraform.

    Solo necesitas ejecutar este comando una vez por proyecto y puedes ejecutarlo en cualquier directorio.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

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

Prepara 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 dentro de 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 muestra en el main.tf recién creado. De manera opcional, copia el código de GitHub. Esto se recomienda cuando el fragmento de Terraform es parte de una solución de extremo a extremo.
    git clone https://github.com/terraform-google-modules/terraform-docs-samples
  3. En el directorio terraform-docs-samples, navega al directorio alloydb.
    cd terraform-docs-samples/alloydb
  4. Copia el código de muestra en el main.tf recién creado.
    cp SAMPLE_FILE
    Reemplaza <var>SAMPLE_FILE</var> por el nombre del archivo de muestra que deseas copiar, por ejemplo, main.tf.
  5. Revisa y modifica los parámetros de muestra que se aplicarán a tu entorno.
  6. Guarda los cambios.
  7. Inicializa Terraform. Solo debes 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

Aplique los cambios

  1. Revisa la configuración para confirmar que las actualizaciones de Terraform coincidan con tus expectativas:
    terraform plan
    Corrige la configuración según sea necesario.
  2. Para aplicar la configuración de Terraform, ejecuta el siguiente comando y, luego, escribe yes cuando se te solicite:
    terraform apply
    Espera hasta que Terraform muestre el mensaje Apply complete!.

Abre tu proyecto de Google Cloud para ver los resultados. En la consola de Google Cloud, navega a tus recursos en la IU para asegurarte de que Terraform los haya creado o actualizado.

REST v1

En este ejemplo, se crea una instancia principal. Para ver una lista completa de los parámetros de esta llamada, consulta Método: projects.locations.clusters.instances.create. Para obtener información sobre la configuración del clúster, consulta Cómo ver la configuración del clúster y de la instancia.

No incluyas información sensible o de identificación personal en el ID de tu clúster, ya que es visible de forma externa. No debes incluir el ID del proyecto en el nombre del clúster. Esto se hace de forma automática cuando es apropiado, por ejemplo, en los archivos de registro.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • CLUSTER_ID: Es el ID del clúster que creaste. Debe comenzar con una letra minúscula y puede contener letras minúsculas, números y guiones.
  • PROJECT_ID: Es el ID del proyecto en el que deseas que se coloque el clúster.
  • LOCATION_ID: Es el ID de la región del clúster.
  • INSTANCE_ID: Es el nombre de la instancia principal que deseas crear.
  • vCPU_COUNT: Es la cantidad de núcleos de CPU visibles en la instancia que deseas crear.

El cuerpo JSON de la solicitud se ve de la siguiente manera:

{
  instanceId   = "INSTANCE_ID"
  instanceType = "PRIMARY"
  machineConfig {
    cpuCount = vCPU_COUNT
  }
  databaseFlags = {
    "key1" : "value1",
    "key2" : "value2"
  }
}

Para enviar tu solicitud, guarda el cuerpo de la solicitud en un archivo llamado request.json y usa la siguiente solicitud POST:

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

¿Qué sigue?