Cette page explique comment configurer complètement un cluster AlloyDB pour PostgreSQL. Vous apprendrez à créer un cluster AlloyDB et son instance principale à l'aide de la console Google Cloud , de la Google Cloud CLI, de l'API REST ou de Terraform.
Avant de commencer
- Le projet Google Cloud que vous utilisez doit être activé pour accéder à AlloyDB.
- Un réseau VPC dans le projet Google Cloud que vous utilisez doit déjà être configuré pour l'accès aux services privés à AlloyDB.
- Pour les charges de travail de développement et de bac à sable, tenez compte de votre région et de votre type de machine. Pour utiliser la forme à un processeur virtuel, assurez-vous de sélectionner une région compatible. Pour en savoir plus, consultez Points à prendre en compte lorsque vous utilisez un processeur virtuel.
Rôles requis
Avant de pouvoir créer votre premier cluster PostgreSQL, vous devez disposer des rôles IAM (Identity and Access Management) appropriés.
- Vous devez disposer de l'un de ces rôles IAM dans le projet Google Cloud que vous utilisez :
roles/alloydb.admin(rôle IAM prédéfini "Administrateur AlloyDB")roles/owner(rôle IAM de base "Propriétaire")roles/editor(rôle IAM de base Éditeur)
- Si vous ne disposez d'aucun de ces rôles, contactez l'administrateur de votre organisation pour demander l'accès.
- Vous devez également disposer de l'autorisation
compute.networks.listdans le projet Google Cloud que vous utilisez. Pour obtenir cette autorisation tout en suivant le principe du moindre privilège, demandez à votre administrateur de vous accorder le rôle Utilisateur de réseau Compute (roles/compute.networkUser).
Créer un cluster et une instance principale
Console
Accédez à la page Clusters.
Cliquez sur Créer un cluster.
Choisissez une configuration de cluster. Pour en savoir plus sur la différence entre les configurations à disponibilité élevée et de base, consultez Nœuds et instances.
Si vous ne savez pas si votre nouveau cluster a besoin d'instances de pool de lecture, choisissez l'une des configurations sans pool de lecture. Vous pouvez ajouter des instances de pool de lecture au cluster ultérieurement, si nécessaire.
Cliquez sur Continuer.
Dans la section Configurer le cluster, dans le champ ID du cluster, saisissez un ID pour votre cluster.
Dans le champ Mot de passe, saisissez un mot de passe initial pour le nouveau cluster. AlloyDB attribue le mot de passe fourni à l'utilisateur de base de données
postgreslors de la création du cluster.Facultatif : Pour définir manuellement l'option
alloydb.iam_authentication, décochez Créer un utilisateur de base de données à l'aide d'IAM. Pour en savoir plus, consultez Modifier une instance.Par défaut, l'option Créer un utilisateur de base de données à l'aide d'IAM est sélectionnée. Elle permet d'effectuer les actions suivantes :
Active le flag
alloydb.iam_authenticationsur l'instance principale.Crée un utilisateur de base de données IAM pour vous.
Dans le champ Version de la base de données, sélectionnez la version majeure de PostgreSQL pour votre nouveau cluster AlloyDB.
Sélectionnez une région. Pour les charges de travail de développement et de bac à sable, envisagez la forme à 1 vCPU, qui est disponible dans certaines régions. Pour en savoir plus, consultez Points à prendre en compte lorsque vous utilisez un processeur virtuel.
Sélectionnez un chemin réseau.
Facultatif : Pour appliquer une plage d'adresses IP spécifique à ce cluster au lieu de laisser AlloyDB en choisir une, procédez comme suit :
Cliquez sur Afficher l'option de plage d'adresses IP allouée.
Dans la liste Plage d'adresses IP allouée, sélectionnez une plage d'adresses IP.
Pour en savoir plus sur cette option, consultez Créer un cluster avec une plage d'adresses IP spécifique.
Facultatif : Pour chiffrer ce cluster à l'aide d'une clé de chiffrement gérée par le client (CMEK) au lieu du chiffrement géré par Google, suivez ces étapes supplémentaires :
Cliquez sur Options de chiffrement avancées.
Sélectionnez Clé de chiffrement gérée par le client (CMEK).
Dans le menu qui s'affiche, sélectionnez une clé gérée par le client.
La console Google Cloud limite cette liste aux clés du même projet Google Cloud et de la même région que le nouveau cluster. Pour utiliser une clé qui ne figure pas dans cette liste, cliquez sur Vous ne voyez pas votre clé ? Saisissez un nom de ressource de clé, puis saisissez le nom de ressource de la clé dans la boîte de dialogue qui s'affiche.
Notez que l'utilisation de CMEK avec AlloyDB nécessite une configuration supplémentaire. Pour en savoir plus, consultez Utiliser des clés CMEK avec AlloyDB.
Cliquez sur Continuer.
Configurez votre instance principale :
- Dans le champ ID d'instance, saisissez un ID pour votre instance principale.
Sélectionnez l'une des séries de machines suivantes :
- C4A (série de machines Google Axion)
- N2 (série de machines x86) Il s'agit de la série de machines par défaut.
- C4 (série de machines x86)
- Z3 (série de machines basées sur Intel Xeon)
Sélectionnez un type de machine. Pour en savoir plus, consultez Choisir un type de machine.
- C4A est compatible avec 1, 2, 4, 8, 16, 32, 48, 64 et 72 processeurs virtuels.
- Les N2 acceptent 2, 4, 8, 16, 32, 64, 96 et 128 processeurs virtuels.
- C4 est compatible avec 4, 8, 16, 24, 32, 48, 96, 144, 192 et 288 vCPU.
- Z3 est compatible avec 8, 14, 16, 22, 32, 44 et 88 vCPU.
Pour en savoir plus sur l'utilisation de la série de machines C4A basée sur Axion, y compris le type de machine à 1 vCPU, consultez Points à prendre en compte lors de l'utilisation de la série de machines C4A basée sur Axion.
Facultatif : Définissez des indicateurs personnalisés pour votre instance. Pour chaque signalement, procédez comme suit :
- Cliquez sur Ajouter un flag.
- Dans la liste Nouvel indicateur de base de données, sélectionnez un indicateur.
- Indiquez une valeur pour l'option.
- Cliquez sur OK.
Cliquez sur Créer un cluster.
gcloud
Pour utiliser la gcloud CLI, vous pouvez installer et initialiser la Google Cloud CLI, ou utiliser Cloud Shell.
Vous devez créer un cluster et une instance principale AlloyDB avant de commencer à utiliser AlloyDB.
Créer un cluster
Pour créer le cluster avec l'accès aux services privés ou Private Service Connect activé, utilisez la commande
gcloud alloydb clusters create.Accès aux services privés
gcloud alloydb clusters create CLUSTER_ID \ --database-version=POSTGRES_VERSION \ --password=PASSWORD \ --region=REGION_ID \ --project=PROJECT_ID \ --network=NETWORKPrivate Service Connect
gcloud alloydb clusters create CLUSTER_ID \ --database-version=POSTGRES_VERSION \ --password=PASSWORD \ --region=REGION_ID \ --project=PROJECT_ID \ --enable-private-service-connectRemplacez les éléments suivants :
CLUSTER_ID: ID du cluster que vous créez. Il doit commencer par une lettre minuscule et peut contenir des lettres minuscules, des chiffres et des traits d'union.VERSION: version majeure de PostgreSQL avec laquelle vous souhaitez que les serveurs de base de données du cluster soient compatibles. Choisissez l'une des options suivantes :14, pour la compatibilité avec PostgreSQL 1415, pour la compatibilité avec PostgreSQL 1516, pour la compatibilité avec PostgreSQL 1617, pour la compatibilité avec PostgreSQL 17, qui est la version PostgreSQL par défaut prise en charge18, pour la compatibilité avec PostgreSQL 18
PASSWORD: mot de passe à utiliser pour l'utilisateurpostgrespar défaut.NETWORK(facultatif) : nom du réseau VPC que vous avez configuré pour l'accès aux services privés à AlloyDB. Si vous omettez l'option--network, AlloyDB utilise le réseaudefault.Dans le cas d'un réseau VPC partagé, définissez le chemin d'accès complet au réseau VPC, par exemple
projects/cymbal-project/global/networks/shared-vpc-network.--enable-private-service-connect(facultatif) : définissez cette valeur pour activer Private Service Connect comme méthode de connectivité pour le cluster et ses instances.REGION_ID: région dans laquelle vous souhaitez placer le cluster.
PROJECT_ID: ID du projet dans lequel vous souhaitez placer le cluster.
Cette commande lance une opération de longue durée et renvoie un ID d'opération.
Facultatif : Pour appliquer une plage d'adresses IP spécifique à ce cluster au lieu de laisser AlloyDB choisir une plage d'adresses IP, fournissez l'argument suivant :
--allocated-ip-range-name=RANGERemplacez
RANGEpar le nom de la plage d'adresses IP que vous souhaitez que ce cluster utilise pour l'accès aux services privés.Pour en savoir plus sur cette option, consultez Créer un cluster avec une plage d'adresses IP spécifique.
Facultatif : Pour chiffrer ce cluster à l'aide d'une clé de chiffrement gérée par le client (CMEK) au lieu du chiffrement géré par Google par défaut, fournissez les arguments suivants :
--kms-key=KEY_ID \ --kms-keyring=KEYRING_ID \ --kms-location=LOCATION_ID \ --kms-project=PROJECT_IDRemplacez les éléments suivants :
KEY_ID: ID de la clé CMEK à utiliser.KEYRING_ID: ID du trousseau de clés de la clé.LOCATION_ID: ID de la région du trousseau de clés, qui doit être identique à celle du cluster.PROJECT_ID: ID du projet du trousseau de clés.
Vérifiez que l'opération a réussi.
gcloud alloydb operations describe OPERATION_ID \ --region=REGION_ID \ --project=PROJECT_IDRemplacez
OPERATION_IDpar l'ID d'opération renvoyé à l'étape précédente.
Après avoir créé le cluster principal, vous devez créer une instance principale.
Créer une instance principale
Pour créer une instance principale, utilisez la commande gcloud alloydb instances create.
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 \
--allowed-psc-projects=ALLOWED_PROJECT_LISTRemplacez les éléments suivants :
INSTANCE_ID: ID de l'instance que vous créez. Il doit commencer par une lettre minuscule et peut contenir des lettres minuscules, des chiffres et des traits d'union.REGION_ID: région dans laquelle vous souhaitez placer l'instance.CLUSTER_ID: ID du cluster que vous avez créé précédemment.PROJECT_ID: ID du projet dans lequel votre cluster a été créé.CPU_COUNT: nombre de processeurs virtuels souhaité pour l'instance.- Vous devez spécifier
cpu_countoumachine_type. Si seul
cpu_countest fourni, une instance N2 est créée avec les spécifications suivantes :- 2 : 2 processeurs virtuels, 16 Go de RAM
- 4 : 4 vCPUs, 32 Go de RAM
- 8 : 8 processeurs virtuels, 64 Go de RAM
- 16 : 16 vCPU, 128 Go de RAM
- 32 : 32 processeurs virtuels, 256 Go de RAM
- 64 : 64 vCPU, 512 Go de RAM
- 96 : 96 vCPU, 768 Go de RAM
- 128 : 128 vCPU, 864 Go de RAM
Si
machine_typeetcpu_countsont fournis, la valeurcpu_countdoit correspondre au nombre de vCPU spécifié dansmachine_type. Par exemple, simachine_typeest défini surn2-highmem-4, vous devez définircpu_countsur4.
- Vous devez spécifier
MACHINE_TYPE: sélectionnez un type de machine compatible dans la liste, par exemplen2-highmem-4,c4-highmem-4-lssdouc4a-highmem-4-lssd. Pour en savoir plus, consultez Choisir un type de machine AlloyDB.Lorsque vous utilisez
machine_typeetcpu_countensemble, les valeurs decpu_countetmachine_typedoivent correspondre. Par exemple, simachine_typeest défini surn2-highmem-4, vous devez définircpu_countsur4.ALLOWED_PROJECT_LIST: (Facultatif) si vous utilisez Private Service Connect,ALLOWED_PROJECT_LISTcorrespond à la liste d'ID de projet séparés par une virgule ou au numéro de projet auquel vous souhaitez autoriser l'accès à l'instance.
Terraform
Créer un cluster et une instance principale
Pour créer un cluster et son instance principale, utilisez une ressource Terraform.
Voici un extrait de code permettant de créer un cluster et une instance principale en fonction de l'exemple Instance AlloyDB complète :
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
}
database_version = "POSTGRES_16"
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]
}
Cet exemple crée une instance N2. Pour obtenir la liste des autres types de machines compatibles, tels que n2-highmem-4, c4-highmem-4-lssd ou c4a-highmem-4-lssd, consultez Choisir un type de machine AlloyDB.
Préparer Cloud Shell
Pour appliquer votre configuration Terraform dans un projet Google Cloud , préparez Cloud Shell comme suit :
- Lancez Cloud Shell.
Définissez le projet Google Cloud par défaut dans lequel vous souhaitez appliquer vos configurations Terraform.
Vous n'avez besoin d'exécuter cette commande qu'une seule fois par projet et vous pouvez l'exécuter dans n'importe quel répertoire.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Les variables d'environnement sont remplacées si vous définissez des valeurs explicites dans le fichier de configuration Terraform.
Préparer le répertoire
Chaque fichier de configuration Terraform doit avoir son propre répertoire, également appelé module racine.
- Dans Cloud Shell, créez un répertoire et un nouveau fichier dans ce répertoire. Le nom du fichier doit être un fichier TF, par exemple
main.tf. Dans ce document, le fichier est appelémain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
- Copiez l'exemple de code dans le fichier
main.tfque vous venez de créer. Vous pouvez également copier le code depuis GitHub. Cela est recommandé lorsque l'extrait Terraform fait partie d'une solution de bout en bout. - Examinez le fichier
main.tfet modifiez les exemples de paramètres à appliquer à votre environnement. - Enregistrez les modifications.
- Initialisez Terraform. Cette opération n'est à effectuer qu'une seule fois par répertoire.
Facultatif : Pour utiliser la dernière version du fournisseur Google, incluez l'optionterraform init
-upgrade:terraform init -upgrade