Créer des instances

Cette page explique comment créer une instance Cloud SQL pour PostgreSQL.

Pour en savoir plus sur l'ensemble des paramètres d'instance, consultez la page Paramètres des instances.

Une nouvelle instance possède une base de données postgres.

Avant de commencer

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Install the Google Cloud CLI.
  5. To initialize the gcloud CLI, run the following command:

    gcloud init
  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  7. Make sure that billing is enabled for your Google Cloud project.

  8. Install the Google Cloud CLI.
  9. To initialize the gcloud CLI, run the following command:

    gcloud init
  10. Assurez-vous de disposer des rôles d'administrateur Cloud SQL et de lecteur de Compute sur votre compte utilisateur.

    Accéder à la page IAM

    En savoir plus sur les rôles et les autorisations

Créer une instance PostgreSQL

Console

  1. Dans Google Cloud Console, accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Cliquez sur Créer une instance.
  3. Dans le panneau Choisissez votre moteur de base de données de la page Créer une instance, cliquez sur Choisir PostgreSQL.
  4. Dans le champ ID d'instance du volet d'informations de l'instance, saisissez un ID pour votre instance.

    Vous n'avez pas besoin d'indiquer l'ID du projet. Cet ajout s'effectue automatiquement le cas échéant (par exemple, dans les fichiers journaux).

  5. Saisissez un mot de passe pour l'utilisateur postgres.
  6. Pour afficher le mot de passe en texte clair, cliquez sur l'icône Afficher le mot de passe.

    Vous pouvez saisir le mot de passe manuellement ou cliquer sur Générer pour que Cloud SQL en crée un automatiquement.
  7. Facultatif : configurez une règle de mot de passe pour l'instance comme suit :

    1. Cochez la case Activer les règles sur les mots de passe.
    2. Cliquez sur le bouton Définir une règle de mot de passe, définissez une ou plusieurs des options suivantes, puis cliquez sur Enregistrer.
      • Longueur minimale : spécifie le nombre minimal de caractères que le mot de passe doit contenir.
      • Complexité du mot de passe : vérifie si le mot de passe combine des caractères minuscules, majuscules, numériques et non alphanumériques.
      • Restreindre la réutilisation des mots de passe : spécifie le nombre de mots de passe précédents que vous ne pouvez pas réutiliser.
      • Interdire le nom d'utilisateur : empêche de spécifier le nom d'utilisateur dans le mot de passe.
      • Définir un intervalle de changement de mot de passe : spécifie le nombre minimal d'heures après lesquelles vous pouvez modifier le mot de passe.
  8. Sélectionnez la version de la base de données pour votre instance : PostgreSQL 16 (par défaut), PostgreSQL 15,
    PostgreSQL 14, PostgreSQL 13, PostgreSQL 12, PostgreSQL 11, PostgreSQL 10 ou PostgreSQL 9.6.

    Une fois l'instance créée, la version de la base de données ne peut plus être modifiée.

  9. Sélectionnez l'édition Cloud SQL pour votre instance : Enterprise ou Enterprise plus. Pour en savoir plus sur les éditions Cloud SQL, consultez la page Présentation des éditions Cloud SQL.
  10. Dans la section Sélectionner la disponibilité régionale et zonale, sélectionnez la région et la zone de votre instance. La disponibilité des régions peut être différente en fonction de votre édition Cloud SQL. Pour en savoir plus, consultez la page À propos des paramètres d'instance.

    Placez l'instance dans la même région que les ressources qui y accèdent. La région que vous sélectionnez ne peut plus être modifiée. Dans la plupart des cas, il n'est pas nécessaire de spécifier une zone.

    Si vous configurez votre instance pour la haute disponibilité, vous pouvez sélectionner à la fois une zone principale et une zone secondaire.

    Les conditions suivantes s'appliquent lorsque la zone secondaire est utilisée lors de la création de l'instance :

    • Les zones par défaut sont Any pour la zone principale et Any (different from primary) pour la zone secondaire.
    • Si les zones principale et secondaire sont spécifiées, elles doivent être distinctes l'une de l'autre.
  11. Dans la section Personnaliser votre instance, mettez à jour les paramètres de votre instance. Commencez par cliquer sur Afficher les options de configuration pour afficher les groupes de paramètres. Développez ensuite les groupes de votre choix pour examiner et personnaliser les paramètres. Un résumé de toutes les options sélectionnées s'affiche à droite. La personnalisation des paramètres de l'instance est facultative. Des valeurs par défaut sont attribuées chaque fois qu'aucune personnalisation n'est effectuée.

    Le tableau suivant présente un récapitulatif des paramètres d'instances. Pour en savoir plus sur chaque paramètre, consultez la page Paramètres des instances.

    Paramètre Remarques
    Type de machine
    Type de machine Sélectionnez l'option "Cœur partagé" ou "Cœur dédié". Avec l'option "Cœur partagé", chaque type de machine est classé selon le nombre de processeurs (cœurs) et la quantité de mémoire de votre instance.
    Cœurs Nombre de processeurs virtuels de votre instance. En savoir plus
    Mémoire Quantité de mémoire disponible pour votre instance (en Go). En savoir plus
    Personnalisée Pour le type de machine à cœur dédié, au lieu de sélectionner une configuration prédéfinie, cliquez sur le bouton Personnalisé pour créer une instance avec une configuration personnalisée. Lorsque vous sélectionnez cette option, vous devez choisir le nombre de cœurs et la quantité de mémoire de votre instance. En savoir plus
    Stockage
    Type de stockage Détermine si l'instance utilise un stockage SSD ou HDD. En savoir plus
    Capacité de stockage Quantité de stockage fournie pour l'instance. En savoir plus
    Activer l'augmentation automatique de l'espace de stockage Détermine si Cloud SQL fournit automatiquement plus d'espace de stockage pour l'instance lorsque l'espace disponible est presque épuisé. En savoir plus
    Chiffrement
    Chiffrement géré par GoogleIl s'agit de l'option par défaut.
    Clé de chiffrement gérée par le client (CMEK)Sélectionnez cette option pour utiliser votre clé avec Google Cloud Key Management Service. En savoir plus
    Connexions
    Adresse IP privée Ajoute une adresse IP privée pour l'instance. Pour activer la connexion à l'instance, une configuration supplémentaire est requise.
    Vous pouvez éventuellement spécifier une plage d'adresses IP allouée pour vos instances à utiliser pour les connexions.
    1. Développez l'option Afficher la plage d'adresses IP allouée.
    2. Sélectionnez une plage d'adresses IP dans le menu déroulant.

    Votre instance peut avoir une adresse IP publique et une adresse IP privée.

    Adresse IP publique Ajoute une adresse IP publique pour l'instance. Vous pouvez ensuite ajouter des réseaux autorisés pour vous connecter à l'instance.

    Votre instance peut avoir une adresse IP publique et une adresse IP privée.

    En savoir plus sur l'utilisation des adresses IP publiques

    Réseaux autorisésAjoutez le nom du nouveau réseau et son adresse. En savoir plus
    Chemin d'accès privé pour les services Google Cloud

    En cochant cette case, vous autorisez d'autres services Google Cloud, tels que BigQuery, à accéder aux données dans Cloud SQL et à effectuer des requêtes sur ces données via une connexion privée.

    Protection des données
    Automatiser les sauvegardes Période durant laquelle vous souhaitez que les sauvegardes commencent. En savoir plus
    Choisissez l'emplacement de stockage de vos sauvegardesSélectionnez l'emplacement multirégional pour la plupart des cas d'utilisation. Si vous devez stocker des sauvegardes dans une région spécifique, pour des raisons réglementaires par exemple, cliquez sur "Région" et sélectionnez votre région dans le menu déroulant "Emplacement".
    Choisissez le nombre de sauvegardes automatiques à stockerNombre de sauvegardes automatiques que vous souhaitez conserver (de 1 à 365 jours). En savoir plus
    Activer la récupération à un moment précis Permet la récupération à un moment précis et la journalisation préalable (write-ahead logging). En savoir plus
    Activer la protection contre la suppression Détermine s'il faut protéger une instance contre toute suppression accidentelle. En savoir plus
    Choisir le nombre de jours de journaux à conserver Définit la durée de conservation des journaux WAL (write-ahead log) entre un et sept jours. La valeur par défaut est de sept jours. En savoir plus
    Maintenance
    Intervalle souhaité Détermine un intervalle d'une heure pendant lequel Cloud SQL peut effectuer des opérations de maintenance entraînant des perturbations sur l'instance. Si vous ne le définissez pas, la maintenance peut être réalisée à tout moment. En savoir plus
    Ordre des mises à jour Période privilégiée pour les mises à jour de l'instance, par rapport aux autres instances du même projet. En savoir plus
    Flags
    Ajouter un indicateur Les indicateurs de base de données permettent de contrôler les réglages et les paramètres de l'instance. En savoir plus
    Libellés
    AJOUTER UN LIBELLÉAjoutez une clé et une valeur pour chaque libellé que vous ajoutez. Les libellés vous servent à organiser vos instances.
    Cache de données
    Activer le cache de données (facultatif) Active le cache de données pour les instances Cloud SQL pour PostgreSQL Enterprise Plus. Pour en savoir plus sur le cache de données, consultez la section Cache de données.
  12. Cliquez sur Créer une instance.

    Remarque : La création de l'instance peut prendre quelques minutes. Cependant, vous pouvez afficher des informations sur l'instance pendant sa création.

gcloud

Pour en savoir plus sur l'installation et le démarrage avec gcloud, consultez la page Installer gcloud CLI. Pour en savoir plus sur le démarrage de Cloud Shell, consultez la documentation Cloud Shell.

  1. Utilisez la commande gcloud sql instances create pour créer l'instance :
    Pour les instances Cloud SQL Enterprise Plus :
    gcloud sql instances create INSTANCE_NAME \
    --database-version=DATABASE_VERSION \
    --region=REGION \
    --tier=TIER \
    --edition=ENTERPRISE_PLUS


    Pour les instances Cloud SQL Enterprise :
    gcloud sql instances create INSTANCE_NAME \
    --database-version=DATABASE_VERSION \
    --region=REGION \
    --cpu=NUMBER_CPUS \
    --memory=MEMORY_SIZE \
    --edition=ENTERPRISE

    Vous pouvez également utiliser l'option --tier si vous choisissez le type de machine db-f1-micro ou db-g1-small :
    gcloud sql instances create INSTANCE_NAME \
    --tier=API_TIER_STRING \
    --region=REGION

    Les valeurs relatives au nombre de processeurs virtuels et à la taille de la mémoire sont soumises à des restrictions :

    • Le nombre de processeurs virtuels doit correspondre à 1 ou à un nombre pair compris entre 2 et 96.
    • La taille de la mémoire doit répondre aux critères suivants :
      • La mémoire doit être comprise entre 0,9 Go et 6,5 Go par processeur virtuel.
      • La taille de la mémoire doit être un multiple de 256 Mo.
      • La taille de la mémoire ne doit pas être inférieure à 3,75 Go (3 840 Mo).

    Par exemple, la commande suivante crée une instance de l'édition Cloud SQL Enterprise avec deux processeurs virtuels et 7 680 Mo de mémoire :

    gcloud sql instances create myinstance \
    --database-version=POSTGRES_15 \
    --cpu=2 \
    --memory=7680MB \
    --region=us-central1

    La commande suivante crée une instance Cloud SQL Enterprise Plus avec quatre cœurs :

    gcloud sql instances create myinstance \
    --database-version=POSTGRES_15 \
    --tier=db-perf-optimized-N-4 \
    --edition=ENTERPRISE_PLUS \
    --region=us-central1
    Pour plus d'informations sur le dimensionnement de --cpu et --memory, consultez la section Configuration d'instances personnalisées.

    La valeur par défaut de REGION est us-central1.

    N'incluez pas d'informations sensibles ou personnelles dans le nom de l'instance, car les utilisateurs externes peuvent le voir.
    Vous n'avez pas besoin d'indiquer l'ID du projet dans le nom de l'instance. Cet ajout s'effectue automatiquement le cas échéant (par exemple, dans les fichiers journaux).

    Si vous créez une instance pour la haute disponibilité, vous pouvez spécifier les zones principale et la zone secondaire à l'aide des paramètres --zone et --secondary-zone. Les conditions suivantes s'appliquent lorsque la zone secondaire est utilisée lors de la création ou de la modification de l'instance :

    • Les zones doivent être valides.
    • Si la zone secondaire est spécifiée, la zone principale doit également être spécifiée.
    • Si les zones principale et secondaire sont spécifiées, elles doivent être distinctes l'une de l'autre.
    • Si les zones principale et secondaire sont spécifiées, elles doivent appartenir à la même région.

    Vous pouvez ajouter plus de réglages pour définir d'autres paramètres d'instance :

    Paramètre Paramètre Remarques
    Réglages obligatoires
    Version de la base de données --database-version La version de la base de données, qui est basée sur votre édition Cloud SQL.
    Région --region Consultez les valeurs valides.
    Définir une règle de mot de passe
    Activer la règle sur les mots de passe --enable-password-policy Active la stratégie de mot de passe lorsqu'utilisé. Par défaut, les règles sur les mots de passe sont désactivées. Lorsqu'elles sont désactivées à l'aide du paramètre --clear-password-policy, les autres paramètres de règles sur les mots de passe sont réinitialisés.
    Longueur minimale --password-policy-min-length Indique le nombre minimal de caractères que le mot de passe doit contenir.
    Complexité du mot de passe --password-policy-complexity Permet à la vérification du niveau de complexité du mot de passe de s'assurer que le mot de passe contient chacun des types de caractères suivants : minuscules, majuscules, numériques et non alphanumériques. Définissez la valeur sur COMPLEXITY_DEFAULT.
    Restreindre la réutilisation des mots de passe --password-policy-reuse-interval Indique le nombre de mots de passe précédents que vous ne pouvez pas réutiliser.
    Interdire le nom d'utilisateur --password-policy-disallow-username-substring Empêche l'utilisation du nom d'utilisateur dans le mot de passe. Utilisez le paramètre --no-password-policy-disallow-username-substring pour désactiver la vérification.
    Définir un intervalle de modification des mots de passe --password-policy-password-change-interval Spécifie la durée minimale après laquelle vous pouvez modifier le mot de passe, par exemple 2m pour 2 minutes.
    Connectivité
    Adresse IP privée --network

    --no-assign-ip (facultatif)

    --allocated-ip-range-name (facultatif)

    --enable-google-private-path (facultatif)

    --network : Spécifie le nom du réseau VPC que vous souhaitez utiliser pour cette instance. L'accès aux services privés doit déjà être configuré pour le réseau. Disponible uniquement avec la commande bêta (gcloud beta sql instances create).

    --no-assign-ip : l'instance ne dispose que d'une adresse IP privée.

    --allocated-ip-range-name : si spécifié, définit un nom de plage pour lequel une plage d'adresses IP est allouée. Par exemple, google-managed-services-default. Le nom de la plage doit respecter la norme RFC-1035 et comporter entre 1 et 63 caractères. (gcloud alpha sql instances create).

    --enable-google-private-path : si vous utilisez ce paramètre, vous autorisez d'autres services Google Cloud, tels que BigQuery, à accéder aux données dans Cloud SQL et à effectuer des requêtes sur ces données via une connexion privée.

    Ce paramètre n'est valide que dans les cas suivants :

    • Vous utilisez le paramètre --no-assign-ip.
    • Vous utilisez le paramètre --network pour spécifier le nom du réseau VPC que vous souhaitez utiliser pour créer une connexion privée.

    En savoir plus sur la configuration d'une adresse IP privée

    Adresse IP publique --authorized-networks Pour les connexions IP publiques, seules des connexions à partir de réseaux autorisés peuvent être établies avec l'instance. En savoir plus
    Utilisation du protocole SSL

    --ssl-mode

    --require-ssl

    Le paramètre ssl-mode applique l'application SSL/TLS pour les connexions. Pour en savoir plus, consultez la page Paramètres pour Cloud SQL pour PostgreSQL.

    Le paramètre require-ssl détermine si les connexions SSL sur IP sont appliquées ou non. require-ssl est un ancien paramètre. Utilisez plutôt ssl-mode. Pour en savoir plus, consultez la section IpConfiguration.

    Type de machine et stockage
    Type de machine --tier Permet de spécifier une instance à cœur partagé (db-f1-micro ou db-g1-small). Pour mettre en œuvre une configuration d'instance personnalisée, utilisez plutôt les paramètres --cpu ou --memory. Consultez la section Configuration d'instances personnalisées.
    Type de stockage --storage-type Détermine si l'instance utilise un stockage SSD ou HDD. En savoir plus
    Capacité de stockage --storage-size Quantité de stockage fournie pour l'instance, en Go. En savoir plus
    Augmentation automatique de l'espace de stockage --storage-auto-increase Détermine si Cloud SQL fournit automatiquement plus d'espace de stockage pour l'instance lorsque l'espace disponible est presque épuisé. En savoir plus
    Limite de l'augmentation automatique de l'espace de stockage --storage-auto-increase-limit Détermine dans quelle limite Cloud SQL peut automatiquement augmenter l'espace de stockage. Disponible uniquement avec la commande bêta (gcloud beta sql instances create). En savoir plus
    Cache de données (facultatif) --enable-data-cache Active ou désactive le cache de données pour les instances. Pour en savoir plus, consultez la section Cache de données.
    Sauvegardes automatiques et haute disponibilité
    Haute disponibilité --availability-type Pour une instance à disponibilité élevée, définissez ce paramètre sur REGIONAL. En savoir plus
    Zone secondaire --secondary-zone Si vous créez une instance pour la haute disponibilité, vous pouvez spécifier la zone principale et la zone secondaire à l'aide de --zone et de --secondary-zone parameters. Les restrictions suivantes s'appliquent lorsque la zone secondaire est utilisée lors de la création ou de la modification de l'instance :
    • Les zones doivent être valides.
    • Si la zone secondaire est spécifiée, la zone principale doit également être spécifiée.
    • Si les zones principale et secondaire sont spécifiées, elles doivent être distinctes l'une de l'autre.

      Si les zones principale et secondaire sont spécifiées, elles doivent appartenir à la même région.

    Sauvegardes automatiques --backup-start-time Période durant laquelle vous souhaitez que les sauvegardes commencent. En savoir plus
    Paramètres de conservation des sauvegardes automatiques --retained-backups-count Nombre de sauvegardes automatiques à conserver. En savoir plus
    Récupération à un moment précis --enable-point-in-time recovery Permet la récupération à un moment précis et la journalisation préalable (write-ahead logging). En savoir plus
    Paramètres de conservation pour la journalisation binaire --retained-transaction-log-days Nombre de jours pendant lesquels les journaux WAL (write-ahead log) doivent être conservés pour la récupération à un moment précis. En savoir plus
    Ajouter des indicateurs de base de données
    Indicateurs de base de données --database-flags Les indicateurs de base de données permettent de contrôler les réglages et les paramètres de l'instance. En savoir plus sur les indicateurs de base de données
    Calendrier de maintenance
    Intervalle de maintenance --maintenance-window-day,
    --maintenance-window-hour
    Détermine un intervalle d'une heure pendant lequel Cloud SQL peut effectuer des opérations de maintenance entraînant des perturbations sur l'instance. Si vous ne le définissez pas, la maintenance peut être réalisée à tout moment. En savoir plus.
    Planification des maintenances --maintenance-release-channel Période privilégiée pour les mises à jour de l'instance, par rapport aux autres instances du même projet. Utilisez preview pour les mises à jour précédentes et production pour les mises à jour ultérieures. En savoir plus
    Intégration à Vertex AI
    --enable-google-ml-integration Permet aux instances Cloud SQL de se connecter à Vertex AI pour transmettre des requêtes de prédictions en temps réel et des insights à l'IA.
    --database-flags cloudsql.enable_google_ml_integration=on En activant cette option, Cloud SQL peut s'intégrer à Vertex AI.
  2. Notez l'adresse IP attribuée automatiquement.

    Si vous ne vous servez pas du proxy d'authentification Cloud SQL, les applications ou les outils l'utiliseront comme adresse hôte pour se connecter à l'instance.

  3. Définissez le mot de passe de l'utilisateur postgres :
    gcloud sql users set-password postgres \
    --instance=INSTANCE_NAME \
    --password=PASSWORD

Terraform

Pour créer une instance, utilisez une ressource Terraform.

resource "google_sql_database_instance" "postgres_pvp_instance_name" {
  name             = "postgres-pvp-instance-name"
  region           = "asia-northeast1"
  database_version = "POSTGRES_14"
  root_password    = "abcABC123!"
  settings {
    tier = "db-custom-2-7680"
    password_validation_policy {
      min_length                  = 6
      reuse_interval              = 2
      complexity                  = "COMPLEXITY_DEFAULT"
      disallow_username_substring = true
      password_change_interval    = "30s"
      enable_password_policy      = true
    }
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

Appliquer les modifications

Pour appliquer votre configuration Terraform dans un projet Google Cloud, suivez les procédures des sections suivantes.

Préparer Cloud Shell

  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 comporter l'extension .tf, par exemple main.tf. Dans ce tutoriel, le fichier est appelé main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Si vous suivez un tutoriel, vous pouvez copier l'exemple de code dans chaque section ou étape.

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

    Vous pouvez également utiliser la dernière version du fournisseur Google en incluant l'option -upgrade :

    terraform init -upgrade

Appliquer les modifications

  1. Examinez la configuration et vérifiez que les ressources que Terraform va créer ou mettre à jour correspondent à vos attentes :
    terraform plan

    Corrigez les modifications de la configuration si nécessaire.

  2. Appliquez la configuration Terraform en exécutant la commande suivante et en saisissant yes lorsque vous y êtes invité :
    terraform apply

    Attendez que Terraform affiche le message "Apply completed!" (Application terminée).

  3. Ouvrez votre projet Google Cloud pour afficher les résultats. Dans la console Google Cloud, accédez à vos ressources dans l'interface utilisateur pour vous assurer que Terraform les a créées ou mises à jour.

Supprimer les modifications

Pour supprimer vos modifications, procédez comme suit :

  1. Pour désactiver la protection contre la suppression, définissez l'argument deletion_protection sur false dans le fichier de configuration Terraform.
    deletion_protection =  "false"
  2. Appliquez la configuration Terraform mise à jour en exécutant la commande suivante et en saisissant yes lorsque vous y êtes invité :
    terraform apply
  1. Supprimez les ressources précédemment appliquées à votre configuration Terraform en exécutant la commande suivante et en saisissant yes à la requête :

    terraform destroy

REST v1

Créer l'instance

Cet exemple crée une instance. Certains paramètres facultatifs, tels que les sauvegardes et la journalisation binaire, sont également inclus. Pour obtenir la liste complète des paramètres de cet appel, consultez la page instances:insert. Pour en savoir plus sur les paramètres des instances, y compris sur les valeurs valides pour la région, consultez la page Paramètres des instances.

N'incluez pas d'informations sensibles ou personnelles dans l'ID d'instance, car les utilisateurs externes peuvent le voir.
Vous n'avez pas besoin d'indiquer l'ID du projet dans le nom de l'instance. Cet ajout s'effectue automatiquement le cas échéant (par exemple, dans les fichiers journaux).

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet.
  • INSTANCE_ID : Votre ID d'instance
  • REGION : région
  • DATABASE_VERSION : chaîne d'énumération de la version de base de données (par exemple, POSTGRES_16).
  • PASSWORD : mot de passe de l'utilisateur racine.
  • MACHINE_TYPE : chaîne d'énumération du type (niveau) de machine, comme suit : db-custom-[CPUS]-[MEMORY_MBS].
  • EDITION_TYPE : votre édition Cloud SQL

  • DATA_CACHE_ENABLED (facultatif) : défini sur true pour activer le cache de données pour votre instance.
  • PRIVATE_NETWORK : spécifiez le nom du réseau cloud privé virtuel (VPC) que vous souhaitez utiliser pour cette instance. L'accès aux services privés doit déjà être configuré pour le réseau.
  • AUTHORIZED_NETWORKS : pour les connexions IP publiques, spécifiez les connexions à partir de réseaux autorisés pouvant vous connecter à l'instance.

Pour définir une règle sur les mots de passe lors de la création d'une instance, incluez l'objet passwordValidationPolicy dans la requête. Définissez les paramètres suivants, si nécessaire :

  • enablePasswordPolicy : active la règle de mot de passe lorsqu'elle est définie sur true.

    Pour supprimer la règle de mot de passe, vous pouvez utiliser une requête PATCH avec null comme valeur pour enablePasswordPolicy. Dans ce cas, les autres paramètres des règles sur les mots de passe sont réinitialisés.

  • minLength : spécifie le nombre minimal de caractères que le mot de passe doit contenir.
  • complexity : vérifie si le mot de passe est une combinaison de caractères minuscules, majuscules, numériques et non alphanumériques. La valeur par défaut est COMPLEXITY_DEFAULT.
  • reuseInterval : indique le nombre de mots de passe précédents que vous ne pouvez pas réutiliser.
  • disallowUsernameSubstring : empêche l'utilisation du nom d'utilisateur dans le mot de passe lorsqu'il est défini sur true.
  • passwordChangeInterval : spécifie la durée minimale après laquelle vous pouvez modifier le mot de passe. La valeur est exprimée en secondes avec un maximum de neuf chiffres après la virgule et se termine par s. Exemple :3.5s

Pour créer l'instance afin qu'elle puisse s'intégrer à Vertex AI, incluez l'objet enableGoogleMlIntegration dans la requête. Cette intégration vous permet d'appliquer de grands modèles de langage (LLM), hébergés dans Vertex AI, à une base de données Cloud SQL pour PostgreSQL.

Définissez les paramètres suivants, si nécessaire :

  • enableGoogleMlIntegration : lorsque ce paramètre est défini sur true, les instances Cloud SQL peuvent se connecter à Vertex AI pour transmettre des requêtes de prédictions en temps réel et des insights à l'IA.
  • cloudsql.enable_google_ml_integration : lorsque ce paramètre est défini sur on, Cloud SQL peut s'intégrer à Vertex AI.

Méthode HTTP et URL :

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

Corps JSON de la requête :

{
  "name": "INSTANCE_ID",
  "region": "REGION",
  "databaseVersion": "DATABASE_VERSION",
  "rootPassword": "PASSWORD",
  "settings": {
    "tier": "MACHINE_TYPE",
    "edition": "EDITION_TYPE",
    "enableGoogleMlIntegration": "true" | "false"
    "databaseFlags":
    [
      {
        "name": "cloudsql.enable_google_ml_integration",
        "value": "on" | "off"
      }
    ]
    "dataCacheConfig" = {
      "dataCacheEnabled": DATA_CACHE_ENABLED
    },
    "backupConfiguration": {
      "enabled": true
    },
    "passwordValidationPolicy": {
      "enablePasswordPolicy": true
      "minLength": "MIN_LENGTH",
      "complexity": COMPLEXITY_DEFAULT,
      "reuseInterval": "REUSE_INTERVAL",
      "disallowUsernameSubstring": "DISALLOW_USERNAME_SUBSTRING",
      "passwordChangeInterval": "PASSWORD_CHANGE_INTERVAL"
    }
    "ipConfiguration": {
      "privateNetwork": "PRIVATE_NETWORK",
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      "ipv4Enabled": false,
      "enablePrivatePathForGoogleCloudServices": true
    }
  }
}

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2019-09-25T22:19:33.735Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

La réponse est une opération de longue durée qui peut prendre quelques minutes.

Récupérer l'adresse IPv4

Récupérez l'adresse IPv4 attribuée automatiquement pour la nouvelle instance :

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • project-id : ID de votre projet.
  • instance-id : ID de l'instance créée à l'étape précédente

Méthode HTTP et URL :

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "MYSQL_8_0_18",
  "settings": {
    "authorizedGaeApplications": [],
    "tier": "db-f1-micro",
    "kind": "sql#settings",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "activationPolicy": "ALWAYS",
    "ipConfiguration": {
      "authorizedNetworks": [],
      "ipv4Enabled": true
    },
    "locationPreference": {
      "zone": "us-west1-a",
      "kind": "sql#locationPreference"
    },
    "dataDiskType": "PD_SSD",
    "backupConfiguration": {
      "startTime": "18:00",
      "kind": "sql#backupConfiguration",
      "enabled": true,
      "binaryLogEnabled": true
    },
    "settingsVersion": "1",
    "storageAutoResizeLimit": "0",
    "storageAutoResize": true,
    "dataDiskSizeGb": "10"
  },
  "etag": "--redacted--",
  "ipAddresses": [
    {
      "type": "PRIMARY",
      "ipAddress": "10.0.0.1"
    }
  ],
  "serverCaCert": {
    ...
  },
  "instanceType": "CLOUD_SQL_INSTANCE",
  "project": "project-id",
  "serviceAccountEmailAddress": "redacted@gcp-sa-cloud-sql.iam.gserviceaccount.com",
  "backendType": "SECOND_GEN",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "connectionName": "project-id:region:instance-id",
  "name": "instance-id",
  "region": "us-west1",
  "gceZone": "us-west1-a"
}

Recherchez le champ ipAddress dans la réponse.

REST v1beta4

Créer l'instance

Cet exemple crée une instance. Certains paramètres facultatifs, tels que les sauvegardes et la journalisation binaire, sont également inclus. Pour obtenir la liste complète des paramètres de cet appel, consultez la page instances:insert. Pour en savoir plus sur les paramètres des instances, y compris sur les valeurs valides pour la région, consultez la page Paramètres des instances.

N'incluez pas d'informations sensibles ou personnelles dans l'ID d'instance, car les utilisateurs externes peuvent le voir.
Vous n'avez pas besoin d'indiquer l'ID du projet dans le nom de l'instance. Cet ajout s'effectue automatiquement le cas échéant (par exemple, dans les fichiers journaux).

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet.
  • INSTANCE_ID : Votre ID d'instance
  • REGION : région
  • DATABASE_VERSION : chaîne d'énumération de la version de base de données (par exemple, POSTGRES_16).
  • PASSWORD : mot de passe de l'utilisateur racine.
  • MACHINE_TYPE : chaîne d'énumération du type (niveau) de machine, comme suit : db-custom-[CPUS]-[MEMORY_MBS].
  • EDITION_TYPE : votre édition Cloud SQL

  • DATA_CACHE_ENABLED (facultatif) : défini sur true pour activer le cache de données pour votre instance.

Pour définir une règle sur les mots de passe lors de la création d'une instance, incluez l'objet passwordValidationPolicy dans la requête. Définissez les paramètres suivants, si nécessaire :

  • enablePasswordPolicy : active la règle de mot de passe lorsqu'elle est définie sur true.

    Pour supprimer la règle de mot de passe, vous pouvez utiliser une requête PATCH avec null comme valeur pour enablePasswordPolicy. Dans ce cas, les autres paramètres des règles sur les mots de passe sont réinitialisés.

  • minLength : spécifie le nombre minimal de caractères que le mot de passe doit contenir.
  • complexity : vérifie si le mot de passe est une combinaison de caractères minuscules, majuscules, numériques et non alphanumériques. La valeur par défaut est COMPLEXITY_DEFAULT.
  • reuseInterval : indique le nombre de mots de passe précédents que vous ne pouvez pas réutiliser.
  • disallowUsernameSubstring : empêche l'utilisation du nom d'utilisateur dans le mot de passe lorsqu'il est défini sur true.
  • passwordChangeInterval : spécifie la durée minimale après laquelle vous pouvez modifier le mot de passe. La valeur est exprimée en secondes avec un maximum de neuf chiffres après la virgule et se termine par s. Exemple :3.5s

Pour créer l'instance afin qu'elle puisse s'intégrer à Vertex AI, incluez l'objet enableGoogleMlIntegration dans la requête. Cette intégration vous permet d'appliquer de grands modèles de langage (LLM), hébergés dans Vertex AI, à une base de données Cloud SQL pour PostgreSQL.

Définissez les paramètres suivants, si nécessaire :

  • enableGoogleMlIntegration : lorsque ce paramètre est défini sur true, les instances Cloud SQL peuvent se connecter à Vertex AI pour transmettre des requêtes de prédictions en temps réel et des insights à l'IA.
  • cloudsql.enable_google_ml_integration : lorsque ce paramètre est défini sur on, Cloud SQL peut s'intégrer à Vertex AI.

Méthode HTTP et URL :

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances

Corps JSON de la requête :

{
  "name": "INSTANCE_ID",
  "region": "REGION",
  "databaseVersion": "DATABASE_VERSION",
  "rootPassword": "PASSWORD",
  "settings": {
    "tier": "MACHINE_TYPE",
    "edition": "EDITION_TYPE",
    "enableGoogleMlIntegration": "true" | "false"
    "databaseFlags":
    [
      {
        "name": "cloudsql.enable_google_ml_integration",
        "value": "on" | "off"
      }
    ]
    "dataCacheConfig" = {
      "dataCacheEnabled": DATA_CACHE_ENABLED
    },
    "backupConfiguration": {
      "enabled": true
    },
    "passwordValidationPolicy": {
      "enablePasswordPolicy": true
      "minLength": "MIN_LENGTH",
      "complexity": COMPLEXITY_DEFAULT,
      "reuseInterval": "REUSE_INTERVAL",
      "disallowUsernameSubstring": "DISALLOW_USERNAME_SUBSTRING",
      "passwordChangeInterval": "PASSWORD_CHANGE_INTERVAL"
    }
  }
}

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-01T19:13:21.834Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

La réponse est une opération de longue durée qui peut prendre quelques minutes.

Récupérer l'adresse IPv4

Récupérez l'adresse IPv4 attribuée automatiquement pour la nouvelle instance :

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • project-id : ID de votre projet.
  • instance-id : ID de l'instance créée à l'étape précédente

Méthode HTTP et URL :

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "MYSQL_8_0_18",
  "settings": {
    "authorizedGaeApplications": [],
    "tier": "db-f1-micro",
    "kind": "sql#settings",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "activationPolicy": "ALWAYS",
    "ipConfiguration": {
      "authorizedNetworks": [],
      "ipv4Enabled": true
    },
    "locationPreference": {
      "zone": "us-west1-a",
      "kind": "sql#locationPreference"
    },
    "dataDiskType": "PD_SSD",
    "backupConfiguration": {
      "startTime": "18:00",
      "kind": "sql#backupConfiguration",
      "enabled": true,
      "binaryLogEnabled": true
    },
    "settingsVersion": "1",
    "storageAutoResizeLimit": "0",
    "storageAutoResize": true,
    "dataDiskSizeGb": "10"
  },
  "etag": "--redacted--",
  "ipAddresses": [
    {
      "type": "PRIMARY",
      "ipAddress": "10.0.0.1"
    }
  ],
  "serverCaCert": {
    ...
  },
  "instanceType": "CLOUD_SQL_INSTANCE",
  "project": "project-id",
  "serviceAccountEmailAddress": "redacted@gcp-sa-cloud-sql.iam.gserviceaccount.com",
  "backendType": "SECOND_GEN",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "connectionName": "project-id:region:instance-id",
  "name": "instance-id",
  "region": "us-west1",
  "gceZone": "us-west1-a"
}

Recherchez le champ ipAddress dans la réponse.

Pour découvrir comment est formée la requête sous-jacente à l'API REST pour cette tâche, consultez la page dédiée à la méthode "instances:insert" dans APIs Explorer.

Configurations d'instances personnalisées

Détermine la mémoire et les cœurs virtuels disponibles pour votre instance Cloud SQL. La disponibilité des types de machines dépend de votre édition Cloud SQL.

Pour les charges de travail nécessitant un traitement en temps réel, comme le traitement des transactions en ligne (OLTP), assurez-vous que votre instance dispose de suffisamment de mémoire pour contenir l'ensemble de travail complet. Toutefois, d'autres facteurs peuvent avoir une incidence sur l'utilisation de la mémoire, tels que le nombre de connexions actives et les processus internes. Nous vous conseillons d'effectuer des tests de charge pour éviter les problèmes de performances dans votre environnement de production.

Lorsque vous configurez votre instance, sélectionnez suffisamment de mémoire et de processeurs virtuels pour gérer votre charge de travail, et effectuez une mise à niveau à mesure que celle-ci augmente. Une configuration de machine disposant d'un nombre insuffisant de processeurs virtuels risque de ne plus être couverte par son contrat de niveau de service. Pour en savoir plus, consultez la section Consignes opérationnelles.

Types de machines pour les instances Cloud SQL Enterprise Plus

Pour les instances Cloud SQL Enterprise Plus, les types de machines sont prédéfinis comme suit :

Type de machine Enterprise Plus vCPUs Mémoire (Go) SSD local
db-perf-optimized-N-2 2 16 375
db-perf-optimized-N-4 4 32 375
db-perf-optimized-N-8 8 64 375
db-perf-optimized-N-16 16 128 750
db-perf-optimized-N-32 32 256 1500
db-perf-optimized-N-48 48 384 3000
db-perf-optimized-N-64 64 512 6000
db-perf-optimized-N-80 80 640 6000
db-perf-optimized-N-96 96 768 6000
db-perf-optimized-N-128 128 864 9000

Types de machines pour les instances Cloud SQL Enterprise

Pour les instances Cloud SQL Enterprise, vous pouvez également créer des configurations d'instances personnalisées à l'aide de la commande gcloud sql instances create. Les configurations d'instances flexibles vous permettent d'allouer à votre instance la quantité de mémoire et le nombre de processeurs dont elle a besoin. Cette flexibilité vous permet également de choisir la forme de VM adaptée à votre charge de travail.

Les noms de types de machines utilisent le format suivant : db-custom-#-#

Remplacez le premier espace réservé # par le nombre de processeurs dans la machine, et le deuxième espace réservé # par la quantité de mémoire sur la machine.

Par exemple, si le nom de votre machine est db-custom et que votre machine dispose d'un processeur et de 3 840 Mo de RAM, le format de la machine est db-custom-1-3840.

Lorsque vous sélectionnez le nombre de processeurs et la quantité de mémoire, certaines restrictions s'appliquent à la configuration que vous choisissez :

  • Le nombre de processeurs virtuels doit correspondre à 1 ou à un nombre pair compris entre 2 et 96.
  • La taille de la mémoire doit répondre aux critères suivants :
    • La mémoire doit être comprise entre 0,9 Go et 6,5 Go par processeur virtuel.
    • La taille de la mémoire doit être un multiple de 256 Mo.
    • La taille de la mémoire ne doit pas être inférieure à 3,75 Go (3 840 Mo).

Le tableau suivant répertorie les noms de chaque ancien type de machine, le nombre de processeurs et la mémoire RAM pour chaque type de machine, ainsi que la chaîne résultante pour le type de machine.

Vous pouvez créer le type de machine équivalent en spécifiant le processeur et la RAM équivalents dans Google Cloud Console, en utilisant gcloud CLI ou en spécifiant db-custom-#-# dans l'API.

Ancien type de machine vCPUs Mémoire (Mo) Chaîne db-custom-CPU-RAM (chaîne de couche d'API)
db-n1-standard-1 1 3 840 db-custom-1-3840
db-n1-standard-2 2 7 680 db-custom-2-7680
db-n1-standard-4 4 15 360 db-custom-4-15360
db-n1-standard-8 8 30 720 db-custom-8-30720
db-n1-standard-16 16 61 440 db-custom-16-61440
db-n1-standard-32 32 122 880 db-custom-32-122880
db-n1-standard-64 64 245 760 db-custom-64-245760
db-n1-standard-96 96 368640 db-custom-96-368640
db-n1-highmem-2 2 13 312 db-custom-2-13312
db-n1-highmem-4 4 26 624 db-custom-4-26624
db-n1-highmem-8 8 53 248 db-custom-8-53248
db-n1-highmem-16 16 106 496 db-custom-16-106496
db-n1-highmem-32 32 212 992 db-custom-32-212992
db-n1-highmem-64 64 425 984 db-custom-64-425984
db-n1-highmem-96 96 638976 db-custom-96-638976

Résoudre les problèmes

Problème Dépannage
Message d'erreur : Failed to create subnetwork. Couldn't find free blocks in allocated IP ranges. Please allocate new ranges for this service provider. Il n'y a plus d'adresses disponibles dans la plage d'adresses IP allouée. Plusieurs scénarios sont possibles :

  • La taille de la plage d'adresses IP allouée à la connexion de service privé est inférieure à /24.
  • La taille de la plage d'adresses IP allouée pour la connexion de service privé est trop petite pour le nombre d'instances Cloud SQL.
  • La taille requise pour la plage d'adresses IP allouée sera plus importante si les instances sont créées dans plusieurs régions. Voir Taille de la plage allouée

Pour résoudre ce problème, vous pouvez étendre la plage d'adresses IP allouée existante ou allouer une plage d'adresses IP supplémentaire à la connexion de service privée. Pour plus d'informations, consultez la section Allouer une plage d'adresses IP.

Si vous avez utilisé l'option --allocated-ip-range-name lors de la création de l'instance Cloud SQL, vous ne pouvez étendre que la plage d'adresses IP spécifiée.

Si vous allouez une nouvelle plage, assurez-vous que l'allocation ne chevauche aucune allocation existante.

Après avoir créé une nouvelle plage d'adresses IP, mettez à jour l'appairage de VPC à l'aide de la commande suivante :

gcloud services vpc-peerings update \
--service=servicenetworking.googleapis.com \
--ranges=OLD_RESERVED_RANGE_NAME,NEW_RESERVED_RANGE_NAME \
--network=VPC_NETWORK \
--project=PROJECT_ID \
--force
    

Si vous développez une allocation existante, veillez à effectuer uniquement une opération d'augmentation de la plage d'allocation et non à la réduire. Par exemple, si l'allocation d'origine était 10.0.10.0/24, la nouvelle allocation doit être définie au mininmum sur 10.0.10.0/23.

En règle générale, si vous commencez par utiliser une allocation /24, il est conseillé de réduire le /masque d'une unité pour chaque condition (groupe de type d'instances supplémentaire, région supplémentaire). Par exemple, si vous essayez de créer les deux groupes de types d'instances sur la même allocation, passer de /24 à /23 est suffisant.

Après avoir étendu une plage d'adresses IP existante, mettez à jour l'appairage de VPC à l'aide de la commande suivante :

gcloud services vpc-peerings update \
--service=servicenetworking.googleapis.com \
--ranges=RESERVED_RANGE_NAME \
--network=VPC_NETWORK \
--project=PROJECT_ID
    
Message d'erreur : Failed to create subnetwork. Router status is temporarily unavailable. Please try again later. Help Token: [token-ID]. Essayez de créer à nouveau l'instance Cloud SQL.
Message d'erreur : Failed to create subnetwork. Required 'compute.projects.get' permission for PROJECT_ID. Lorsque vous créez une instance à l'aide d'une adresse IP privée, un compte de service est créé avec le juste-à-temps à l'aide de l'API Service Networking. Si vous avez activé l'API Service Networking récemment, le compte de service peut ne pas être créé et la création de l'instance échoue. Dans ce cas, vous devez attendre que le compte de service se propage dans le système ou l'ajouter manuellement avec les autorisations requises.

Étapes suivantes

  1. Créez une base de données PostgreSQL sur l'instance.
  2. Créez des utilisateurs PostgreSQL sur l'instance.
  3. Sécurisez et contrôlez l'accès à l'instance.
  4. Connectez-vous à l'instance avec un client PostgreSQL.
  5. Importez des données dans la base de données.