Créer un cluster et son instance principale

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

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.list dans 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

  1. Accédez à la page Clusters.

    accéder aux clusters

  2. Cliquez sur Créer un cluster.

  3. 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.

  4. Cliquez sur Continuer.

  5. Dans la section Configurer le cluster, dans le champ ID du cluster, saisissez un ID pour votre cluster.

  6. 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 postgres lors de la création du cluster.

  7. 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_authentication sur l'instance principale.

    • Crée un utilisateur de base de données IAM pour vous.

  8. Dans le champ Version de la base de données, sélectionnez la version majeure de PostgreSQL pour votre nouveau cluster AlloyDB.

  9. 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.

  10. Sélectionnez un chemin réseau.

  11. Facultatif : Pour appliquer une plage d'adresses IP spécifique à ce cluster au lieu de laisser AlloyDB en choisir une, procédez comme suit :

    1. Cliquez sur Afficher l'option de plage d'adresses IP allouée.

    2. 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.

  12. 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 :

    1. Cliquez sur Options de chiffrement avancées.

    2. Sélectionnez Clé de chiffrement gérée par le client (CMEK).

    3. 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.

    4. Cliquez sur Continuer.

  13. Configurez votre instance principale :

    1. Dans le champ ID d'instance, saisissez un ID pour votre instance principale.
    2. 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)
    3. 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.

    4. Facultatif : Définissez des indicateurs personnalisés pour votre instance. Pour chaque signalement, procédez comme suit :

      1. Cliquez sur Ajouter un flag.
      2. Dans la liste Nouvel indicateur de base de données, sélectionnez un indicateur.
      3. Indiquez une valeur pour l'option.
      4. Cliquez sur OK.
  14. 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

  1. 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=NETWORK

    Private Service Connect

    gcloud alloydb clusters create CLUSTER_ID \
        --database-version=POSTGRES_VERSION \
        --password=PASSWORD \
        --region=REGION_ID \
        --project=PROJECT_ID \
        --enable-private-service-connect

    Remplacez 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 14

      • 15, pour la compatibilité avec PostgreSQL 15

      • 16, pour la compatibilité avec PostgreSQL 16

      • 17, pour la compatibilité avec PostgreSQL 17, qui est la version PostgreSQL par défaut prise en charge

      • 18, pour la compatibilité avec PostgreSQL 18

    • PASSWORD : mot de passe à utiliser pour l'utilisateur postgres par 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éseau default.

      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.

  2. 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=RANGE
    

    Remplacez RANGE par 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.

  3. 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_ID
    

    Remplacez 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.

  4. Vérifiez que l'opération a réussi.

    gcloud alloydb operations describe OPERATION_ID \
        --region=REGION_ID \
        --project=PROJECT_ID

    Remplacez OPERATION_ID par 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_LIST

Remplacez 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_count ou machine_type.
    • Si seul cpu_count est 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_type et cpu_count sont fournis, la valeur cpu_count doit correspondre au nombre de vCPU spécifié dans machine_type. Par exemple, si machine_type est défini sur n2-highmem-4, vous devez définir cpu_count sur 4.

  • MACHINE_TYPE : sélectionnez un type de machine compatible dans la liste, par exemple n2-highmem-4, c4-highmem-4-lssd ou c4a-highmem-4-lssd. Pour en savoir plus, consultez Choisir un type de machine AlloyDB.

    Lorsque vous utilisez machine_type et cpu_count ensemble, les valeurs de cpu_count et machine_type doivent correspondre. Par exemple, si machine_type est défini sur n2-highmem-4, vous devez définir cpu_count sur 4.

  • ALLOWED_PROJECT_LIST : (Facultatif) si vous utilisez Private Service Connect, ALLOWED_PROJECT_LIST correspond à 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 :

  1. Lancez Cloud Shell.
  2. 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.

  1. 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
  2. Copiez l'exemple de code dans le fichier main.tf que 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.
  3. Examinez le fichier main.tf et modifiez les exemples de paramètres à appliquer à votre environnement.
  4. Enregistrez les modifications.
  5. Initialisez Terraform. Cette opération n'est à effectuer qu'une seule fois par répertoire.
    terraform init
    Facultatif : Pour utiliser la dernière version du fournisseur Google, incluez l'option -upgrade :
    terraform init -upgrade

Appliquer les modifications