Créer des instances

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

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

Après avoir créé une instance Cloud SQL, vous allez créer ou importer des bases de données afin de les ajouter à cette instance.

Avant de commencer

  1. Connectez-vous à votre compte Google.

    Si vous n'en possédez pas déjà un, vous devez en créer un.

  2. Dans Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Cloud.

    Accéder à la page de sélection du projet

  3. Vérifiez que la facturation est activée pour votre projet Google Cloud. Découvrez comment vérifier que la facturation est activée pour votre projet.

  4. Installez et initialisez le SDK Cloud.
  5. Assurez-vous de disposer des rôles d'administrateur Cloud SQL et de lecteur de Compute sur votre compte utilisateur.

    Accéder à la page "Cloud IAM"

    En savoir plus sur les rôles et les autorisations

Créer une instance PostgreSQL

Pour créer une instance PostgreSQL :

Console

  1. Accédez à la page "Instances Cloud SQL" dans Google Cloud Console.

    Accéder à la page "Instances Cloud SQL"

  2. Cliquez sur Créer une instance.
  3. Sélectionnez PostgreSQL et cliquez sur Suivant.
  4. Saisissez un nom.

    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, qui sera ajouté automatiquement le cas échéant (par exemple, dans les fichiers journaux).

    Remarque : Après avoir supprimé l'instance, vous ne pouvez pas réutiliser son nom pendant un laps de temps pouvant s'étendre jusqu'à une semaine.

  5. Saisissez un mot de passe pour l'utilisateur postgres.
  6. Sous Emplacement, sélectionnez la région et la zone de votre 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.

  7. Sous Options de configuration, mettez à jour les paramètres de votre instance :
    Paramètre Remarques
    Version de la base de données
    Version de la base de données PostgreSQL 12 (par défaut), PostgreSQL 11, PostgreSQL 10 et PostgreSQL 9.6
    Connectivité
    Adresse IP privée Ajoute une adresse IP privée pour l'instance. Pour autoriser la connexion à l'instance, une configuration supplémentaire est requise. .
    Adresse IP publique Ajoute une adresse IP publique pour l'instance. Pour autoriser la connexion à l'instance, une configuration supplémentaire est requise.
    Type de machine et stockage
    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
    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
    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
    Haute disponibilité Si votre instance doit être configurée pour la haute disponibilité, vous devez cocher la case Haute disponibilité (régionale). En savoir plus
    Sauvegardes automatiques Période durant laquelle vous souhaitez que les sauvegardes commencent. En savoir plus
    Autoriser les réseaux
    Ajouter des indicateurs de base de données
    Indicateurs de base de données Les indicateurs de base de données permettent de contrôler les réglages et les paramètres de l'instance. En savoir plus
    Calendrier de maintenance
    Intervalle de maintenance 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 Période privilégiée pour les mises à jour de l'instance, par rapport aux autres instances du même projet. En savoir plus

    En savoir plus sur les paramètres d'instance

  8. Cliquez sur Créer.

gcloud

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

  1. Créez l'instance :
    gcloud sql instances create [INSTANCE_NAME] --database-version=POSTGRES_12 \
           --cpu=[NUMBER_CPUS] --memory=[MEMORY_SIZE] \
           --region=[REGION] | --gce-zone=[GCE_ZONE] | --zone=[ZONE]
    
    or, alternatively:
    
    gcloud sql instances create instance --tier=[API_TIER_STRING] --region=[REGION]
    

    [API_TIER_STRING] correspond à des types de machines personnalisés, qui sont définis ici. Ces noms incluent les valeurs correspondant au nombre de processeurs virtuels et à la taille de la mémoire. Par exemple, le type de machine db-custom-2-7680 est doté de 2 processeurs virtuels et 7 680 Mo de mémoire.

    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 chaîne suivante crée une instance comportant deux processeurs virtuels et 7 680 Mo de mémoire :

     gcloud sql instances create myinstance --database-version=POSTGRES_12 --cpu=2 \
            --memory=7680MB --region="us-central"
    

    Pour obtenir des exemples de valeurs, consultez la section Exemples de types de machines.

    Vous pouvez également créer une instance à cœur partagé en utilisant --tier db-f1-micro ou --tier db-g1-small, et en supprimant les paramètres --cpu et --memory.

    La valeur par défaut pour [REGION] est us-central.

    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, qui sera ajouté automatiquement le cas échéant (par exemple, dans les fichiers journaux).

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

    Paramètre Réglage Remarques
    Réglages obligatoires
    Version de la base de données --database-version POSTGRES_12 (par défaut), POSTGRES_11, POSTGRES_10 ou POSTGRES_9_6
    Région --region Consultez les valeurs valides.
    Connectivité
    Adresse IP privée --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 seulement avec la commande bêta (gcloud beta sql instances create). En savoir plus
    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
    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). Vous ne pouvez pas spécifier les paramètres --cpu ou --memory si vous utilisez ce paramètre.
    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 seulement avec la commande bêta (gcloud beta sql instances create). En savoir plus
    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
    Sauvegardes automatiques --backup-start-time Période durant laquelle vous souhaitez que les sauvegardes commencent. 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

  2. Notez l'adresse IP attribuée automatiquement.

    Si vous ne vous servez pas du proxy 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]
    

REST

Créer l'instance

Cet exemple crée une instance avec les sauvegardes et la journalisation binaire activées. Ces paramètres sont facultatifs. 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 et le type de machine, consultez la page Paramètres des instances.

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, qui sera ajouté automatiquement le cas échéant (par exemple, dans les fichiers journaux).

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

  • project-id : ID de votre projet
  • instance-id : ID d'instance souhaité
  • region : région souhaitée
  • machine-type : type de machine souhaité

Méthode HTTP et URL :

POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances

Corps JSON de la requête :

{
  "name": "instance-id",
  "region": "region",
  "settings": {
    "tier": "machine-type",
    "backupConfiguration": {
      "binaryLogEnabled": true,
      "enabled": 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://www.googleapis.com/sql/v1beta4/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://www.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 ci-dessous, 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://www.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_5_7",
  "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://www.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.

Exemples de types de machines

Les types de machines personnalisés vous permettent d'allouer à votre instance la quantité de mémoire et le nombre de processeurs dont elle a besoin. Ces valeurs sont toutefois soumises à certaines 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).

Voici quelques exemples de valeurs de type de machine, basées sur les types de machines prédéfinis disponibles pour les instances PostgreSQL :

Type de machine prédéfini Processeurs virtuels Mémoire (Mo) Chaîne de niveau de l'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

Dépannage

Cliquez sur les liens du tableau pour en savoir plus :

Pour ce problème... Le problème peut être... Essayez ce qui suit...
Internal error Compte de service Service Networking manquant. Désactivez et réactivez l'API Service Networking API.
Échec de création de l'instance. Erreur de configuration Terraform. Inspectez et corrigez le fichier de configuration Terraform.
HTTP Error 409 dans le script Terraform. Une autre opération est déjà en cours. Corrigez le script Terraform pour attendre la fin de chaque opération.
Unknown error Tentative de création d'une instance portant le même nom qu'une instance récemment supprimée. Ou tentative de création simultanée de plusieurs instances avec une nouvelle plage d'adresses IP privées utilisée. Attribuez un autre nom à l'instance ou attendez une semaine à compter de sa suppression. Recréez les instances ayant échoué de manière consécutive en utilisant des noms différents.

Erreur interne

Le message d'erreur {"ResourceType":"sqladmin.v1beta4.instance", "ResourceErrorCode":"INTERNAL_ERROR","ResourceErrorMessage":null} s'affiche.

Cause possible

Le projet de service ne contient probablement pas le compte de service Service Networking requis pour cette fonctionnalité.

Solutions possibles

Pour réparer les autorisations de service, désactivez l'API Service Networking API, attendez cinq minutes, puis réactivez-la.


Échec de création de l'instance Terraform

Échec de création de l'instance.

Cause possible

Il s'agit généralement d'un problème dans le script Terraform lui-même.

Solutions possibles

Inspectez et corrigez le fichier de configuration Terraform.


Erreur 409 dans le script Terraform

Le message d'erreur HTTP Error 409 s'affiche dans les scripts Terraform.

Cause possible

Operation failed because another operation was already in progress

Solutions possibles

Révisez le script de façon à interrompre son exécution jusqu'à ce que chaque opération d'instance se termine. Demandez au script d'effectuer une interrogation et d'attendre le retour d'un code 200 pour l'ID de l'opération précédente avant de passer à l'étape suivante.


Erreur inconnue

Lorsque vous tentez de créer une instance, un message d'erreur tel que Cloud SQL creation failed, error UNKNOWN s'affiche.

Cause possible

Vous tentez très probablement de réutiliser le nom d'une instance que vous avez récemment supprimée. Une fois une instance supprimée, vous devez attendre une semaine avant de pouvoir réutiliser son nom. Ou vous essayez de créer plusieurs instances simultanément à l'aide d'une nouvelle plage d'adresses IP privées, et seule la première instance est créée alors que les autres échouent avec l'erreur Unknown error.

Solutions possibles

Attribuez un autre nom à l'instance ou attendez une semaine pour en créer une autre avec ce nom. Créez plusieurs instances de manière consécutive plutôt que simultanément.

Étapes suivantes