Para admitir cargas de trabajo de lectura y escritura en un clúster de AlloyDB para PostgreSQL, puedes crear una instancia principal con la consola de Google Cloud , Google Cloud CLI, Terraform o la API de AlloyDB. La instancia principal proporciona los recursos de procesamiento que procesan las transacciones y coordinan las operaciones de lectura y escritura para tu clúster.
Antes de comenzar
- El proyecto de Google Cloud que usas debe haber sido habilitado para acceder a AlloyDB.
- Debes tener uno de estos roles de IAM en el proyecto de Google Cloud que estás usando:
roles/alloydb.admin(el rol de IAM predefinido de administrador de AlloyDB)roles/owner(el rol básico de IAM de propietario)roles/editor(el rol básico de IAM de editor)
Si no tienes ninguno de estos roles, comunícate con el administrador de la organización para solicitar acceso.
Crea una instancia principal de AlloyDB
Console
Ve a la página Clústeres.
Haz clic en un clúster en la columna Nombre del recurso.
En la página Descripción general, ve a Instancias en tu clúster y haz clic en Crear instancia principal.
Configura tu instancia principal:
- En el campo ID de instancia, ingresa un ID para la instancia principal.
- En Disponibilidad zonal, selecciona una de las siguientes opciones:
- Para crear una instancia de producción con alta disponibilidad y conmutación por error automática, selecciona Varias zonas (con alta disponibilidad).
- Para crear una instancia básica que no necesite alta disponibilidad, selecciona Zona única.
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.
- C4 (serie de máquinas basadas en x86)
- Z3 (serie de máquinas basadas en Intel Xeon)
Selecciona un tipo de máquina.
- C4A admite 1, 2, 4, 8, 16, 32, 48, 64 y 72 CPUs virtuales
- N2 admite 2, 4, 8, 16, 32, 64, 96 y 128 CPUs virtuales
- C4 admite 4, 8, 16, 24, 32, 48, 96, 144, 192 y 288 CPUs virtuales
- Z3 admite 8, 14, 16, 22, 32, 44 y 88 CPUs virtuales
Opcional: Para conectar tus aplicaciones y clientes a través de la Internet pública, marca la casilla Habilitar IP pública en Conectividad de IP pública. Habilitar la IP pública puede requerir una configuración adicional para garantizar que tengas una conexión segura. Para obtener más información, consulta Conéctate con una IP pública.
De forma predeterminada, la IP privada siempre está habilitada. Para obtener más información, consulta Habilita el acceso privado a servicios.
Opcional: Para habilitar la agrupación de conexiones administradas, selecciona Habilitar el grupo de conexiones administradas en Grupo de conexiones administradas. Para obtener más información, consulta Configura la agrupación de conexiones administradas.
Opcional: Para establecer marcas personalizadas en tu instancia, expande Opciones de configuración avanzadas y, luego, haz lo siguiente para cada marca:
- Haz clic en Agregar marca.
- Selecciona una marca de la lista Nueva marca de base de datos.
- Proporciona un valor para la marca.
- Haz clic en Listo.
Opcional: Para configurar los requisitos de SSL o del conector en la instancia, expande Opciones de configuración avanzada y, luego, haz lo siguiente:
- 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.
- 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 seguras proporcionadas por Google, selecciona Aplicar mTLS a través de los conectores de AlloyDB.
Haz clic en Crear instancia.
gcloud
Para usar gcloud CLI, puedes instalar e inicializar Google Cloud CLI, o bien puedes 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_IDINSTANCE_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.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 alta disponibilidad con nodos activos y en espera independientes, 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 no tiene conmutación por error automatizada.
REGION_ID: Es la región en la que deseas que se ubique la instancia. Por ejemplo,us-central1CLUSTER_ID: Es el ID del clúster en el que deseas colocar la instancia.CPU_COUNT: Es la cantidad de CPUs virtuales que deseas para la instancia.- Debes especificar
cpu_countomachine_type. - Si solo se proporciona
cpu_count, se crea una instancia N2 con las siguientes especificaciones:- 2: 2 CPU virtuales, 16 GB de RAM
- 4: 4 CPU virtuales, 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 CPUs virtuales, 512 GB de RAM
- 96: 96 CPUs virtuales, 768 GB de RAM
- 128: 128 CPU virtuales, 864 GB de RAM
- Si se proporcionan
machine_typeycpu_count, el valor decpu_countdebe alinearse con la cantidad de CPU virtuales especificadas enmachine_type. Por ejemplo, simachine_typeesn2-highmem-4, debes establecercpu_counten4.
- Debes especificar
MACHINE_TYPE: Selecciona de una lista de tipos de máquinas compatibles, comon2-highmem-4,c4-highmem-4-lssdoc4a-highmem-4-lssd. Para obtener más información, consulta Elige un tipo de máquina de AlloyDB.Cuando usas
machine_typeycpu_countjuntos, los valores decpu_countymachine_typedeben coincidir. Por ejemplo, simachine_typeesn2-highmem-4, debes establecercpu_counten4.PROJECT_ID: Es el ID del proyecto en el que se coloca el clúster.
De forma predeterminada, las instancias nuevas requieren que todas las conexiones usen la encriptación SSL. Para
permitir conexiones que no sean SSL a la instancia, agrega 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_ENCRYPTEDPara 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 \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--project=PROJECT_ID \
--require-connectorsPara habilitar la reducción de conexiones administradas en tu instancia de AlloyDB, agrega 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-poolingTambié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 Crea una instancia de AlloyDB.
Terraform
Crea una instancia
Para crear una instancia dentro de tu clúster de base 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 este ejemplo, se crea una instancia N2. Para obtener una lista de otros tipos de máquinas compatibles, como n2-highmem-4, c4-highmem-4-lssd o c4a-highmem-4-lssd, consulta Elige un tipo de máquina de AlloyDB.
Prepara Cloud Shell
Para aplicar tu configuración de Terraform en un proyecto de Google Cloud , prepara Cloud Shell de la siguiente manera:
- Inicia Cloud Shell
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.
- 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 denominamain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
- Copia el código de muestra en el
main.tfrecié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
- En el directorio
terraform-docs-samples, navega al directorioalloydb.cd terraform-docs-samples/alloydb
- Copia el código de muestra en el
main.tfrecién creado. Reemplazacp SAMPLE_FILE main.tf
<var>SAMPLE_FILE</var>por el nombre del archivo de muestra que quieres copiar, por ejemplo,main.tf. - Revisa y modifica los parámetros de muestra que se aplicarán a tu entorno.
- Guarda los cambios.
- Inicializa Terraform. Solo debes hacerlo una vez por directorio.
De manera opcional, incluye la opciónterraform init
-upgradepara usar la última versión del proveedor de Google:terraform init -upgrade
Aplique los cambios
- Revisa la configuración para confirmar que las actualizaciones de Terraform coincidan con tus expectativas:
Corrige la configuración según sea necesario.terraform plan
- Para aplicar la configuración de Terraform, ejecuta el siguiente comando y, luego, escribe
yescuando se te solicite: Espera hasta que Terraform muestre el mensajeterraform apply
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
Crea una instancia
En este ejemplo, se crea una instancia principal. Para obtener 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 Visualiza la configuración del clúster y de la instancia.
No incluyas información sensible o de identificación personal en el ID del clúster, ya que es visible de forma externa. No es necesario que incluyas el ID del proyecto en el nombre del clúster, ya que esto se hace de forma automática cuando es apropiado, 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": CPU_COUNT
}
}
Realiza el siguiente reemplazo:
CPU_COUNT: Es la cantidad de núcleos de CPU visibles en la instancia que deseas crear.
En el ejemplo anterior, se crea una instancia N2 con las siguientes especificaciones:
- 2: 2 CPU virtuales, 16 GB de RAM
- 4: 4 CPU virtuales, 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 CPUs virtuales, 512 GB de RAM
- 96: 96 CPUs virtuales, 768 GB de RAM
- 128: 128 CPU virtuales, 864 GB de RAM
"machine_config": {
"machine_type": "MACHINE_TYPE"
}
Reemplaza MACHINE_TYPE por un tipo de máquina compatible, como n2-highmem-4, c4-highmem-4-lssd o c4a-highmem-4-lssd. Para obtener más información sobre los tipos de máquinas compatibles, consulta Elige un tipo de máquina de AlloyDB.
Usa el siguiente método HTTP y la URL:
POST https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances?instance_id=INSTANCE_ID
Realiza los siguientes reemplazos:
PROJECT_ID: Es el ID del proyecto en el que deseas que se ubique el clúster.LOCATION_ID: Es el ID de la región del clúster.CLUSTER_ID: Es el ID del clúster que creas. El ID debe comenzar con una letra minúscula y puede contener letras minúsculas, números y guiones.INSTANCE_ID: Es el nombre de la instancia principal que deseas crear.
Puedes usar curl para ejecutar la solicitud, 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/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances?instance_id=INSTANCE_ID -d @instance_request.json