Cette page explique comment créer l'instance principale d'un cluster AlloyDB.
Avant de commencer
- Le projet Google Cloud que vous utilisez doit avoir été activé pour accéder à AlloyDB.
- Vous devez disposer de l'un des rôles IAM suivants dans le projet Google Cloud que vous utilisez :
roles/alloydb.admin
(rôle IAM prédéfini d'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.
Créer une instance principale AlloyDB
Console
Accédez à la page Clusters.
Cliquez sur un cluster dans la colonne Nom de la ressource.
Sur la page Présentation, accédez à Instances de votre cluster, puis cliquez sur Créer une instance principale.
Configurez votre instance principale :
- Dans le champ ID d'instance, saisissez un ID pour votre instance principale.
- Sous Disponibilité zonale, sélectionnez l'une des options suivantes :
- Pour créer une instance de production à disponibilité élevée avec basculement automatique, sélectionnez Plusieurs zones (Haute disponibilité).
- Pour créer une instance de base qui n'a pas besoin d'être hautement disponible, sélectionnez Zone unique.
Sélectionnez l'une des séries de machines suivantes :
- C4A (série de machines basées sur Google Axion)
- N2 (série de machines x86) Il s'agit de la série de machines par défaut.
Sélectionnez un type de machine.
- C4A est compatible avec les types ou formes de machines 1, 4, 8, 16, 32, 48, 64 et 72.
- N2 est compatible avec les types ou formes de machines 2, 4, 8, 16, 32, 64, 96 et 128.
Pour en savoir plus sur l'utilisation de la série de machines C4A basée sur Axion, y compris le type de machine à un processeur virtuel, consultez Points à prendre en compte lors de l'utilisation de la série de machines C4A basée sur Axion.
Facultatif : Pour connecter vos applications et clients via l'Internet public, cochez la case Activer les adresses IP publiques sous Connectivité des adresses IP publiques. L'activation de l'adresse IP publique peut nécessiter une configuration supplémentaire pour garantir une connexion sécurisée. Pour en savoir plus, consultez Se connecter à l'aide d'une adresse IP publique.
Par défaut, l'adresse IP privée est toujours activée. Pour en savoir plus, consultez Activer l'accès aux services privés.
Facultatif : Pour activer et utiliser le pool de connexions géré, cochez la case Activer le pool de connexions géré sous Pool de connexions géré. Pour en savoir plus, consultez Configurer le pooling de connexions géré.
Facultatif : Pour définir des options personnalisées pour votre instance, développez Options de configuration avancées, puis procédez comme suit pour chaque option :
- Cliquez sur Ajouter une option.
- Sélectionnez un indicateur dans la liste Nouvel indicateur de base de données.
- Indiquez une valeur pour l'option.
- Cliquez sur OK.
Facultatif : Pour configurer les exigences SSL ou du connecteur sur l'instance, développez Options de configuration avancées, puis procédez comme suit :
- Par défaut, les instances AlloyDB exigent que toutes les connexions utilisent le chiffrement SSL. Pour autoriser les connexions non SSL, décochez la case Autoriser uniquement les connexions SSL.
- Pour exiger que toutes les connexions à la base de données de l'instance utilisent le proxy d'authentification AlloyDB ou les bibliothèques de connecteurs sécurisés fournies par Google, sélectionnez Exiger des connecteurs.
Cliquez sur Créer une instance.
gcloud
Pour utiliser la gcloud CLI, vous pouvez installer et initialiser Google Cloud CLI, ou utiliser Cloud Shell.
Utilisez la commande gcloud alloydb instances create
pour créer une instance principale.
gcloud alloydb instances create INSTANCE_ID \
--instance-type=PRIMARY \
--availability-type=AVAILABILITY \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--project=PROJECT_ID
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.AVAILABILITY
: indique si cette instance doit être disponibilité élevée (HA), avec des nœuds dans plusieurs zones. Les valeurs valides sont les suivantes :REGIONAL
: crée une instance HA avec des nœuds actifs et de secours distincts, et un basculement automatisé entre eux. Il s'agit de la valeur par défaut, qui convient aux environnements de production.ZONAL
: crée une instance de base, contenant un seul nœud et aucune reprise après sinistre automatisée.
REGION_ID
: région dans laquelle vous souhaitez placer l'instance. Exemple :us-central1
CLUSTER_ID
: ID du cluster dans lequel vous souhaitez placer l'instance.CPU_COUNT
: nombre de processeurs virtuels souhaité pour l'instance.- Vous devez spécifier
cpu_count
oumachine_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 processeurs virtuels, 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 vCPUs, 512 Go de RAM
- 96 : 96 vCPU, 768 Go de RAM
- 128 : 128 vCPU, 864 Go de RAM
- Si
machine_type
etcpu_count
sont fournis, la valeurcpu_count
doit correspondre au nombre de vCPU spécifié dansmachine_type
. Par exemple, simachine_type
est défini surn2-highmem-4
, vous devez définircpu_count
sur4
.
- Vous devez spécifier
MACHINE_TYPE
: type de machine de l'instance.Pour la série de machines C4A basée sur Axion, les valeurs valides sont les suivantes :
c4a-highmem-1
c4a-highmem-4-lssd
c4a-highmem-8-lssd
c4a-highmem-16-lssd
c4a-highmem-32-lssd
c4a-highmem-48-lssd
c4a-highmem-64-lssd
c4a-highmem-72-lssd
Pour la série de machines N2, les valeurs valides sont les suivantes :
n2-highmem-2
n2-highmem-4
n2-highmem-8
n2-highmem-16
n2-highmem-32
n2-highmem-64
n2-highmem-96
n2-highmem-128
Lorsque vous utilisez
machine_type
etcpu_count
ensemble, les valeurs decpu_count
etmachine_type
doivent correspondre. Par exemple, simachine_type
est défini surn2-highmem-4
, vous devez définircpu_count
sur4
.
PROJECT_ID
: ID du projet dans lequel le cluster est placé.
Par défaut, les nouvelles instances exigent que toutes les connexions utilisent le chiffrement SSL. Pour autoriser les connexions non SSL à l'instance, ajoutez l'option --ssl-mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED
à la commande :
gcloud alloydb instances create INSTANCE_ID \
--instance-type=PRIMARY \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--ssl-mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED
Pour forcer une connexion sécurisée entre le client et une instance AlloyDB via le proxy d'authentification ou d'autres applications qui utilisent des bibliothèques de connecteurs fournies par Google, ajoutez l'indicateur --require-connectors
à la commande :
gcloud alloydb instances create INSTANCE_ID \
--instance-type=PRIMARY \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--project=PROJECT_ID \
--require-connectors
Pour activer le pooling de connexions géré dans votre instance AlloyDB, ajoutez l'indicateur --enable-connection-pooling
à la commande gcloud alloydb instances create
:
gcloud alloydb instances create INSTANCE_ID \
--instance-type=PRIMARY \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--project=PROJECT_ID \
--enable-connection-pooling
Vous pouvez également créer une instance AlloyDB avec Private Service Connect activé. Pour savoir comment créer une instance principale pour un cluster compatible avec Private Service Connect, consultez Créer une instance AlloyDB.
Terraform
Créer une instance
Pour créer une instance dans votre cluster de bases de données, utilisez une ressource Terraform.
resource "google_alloydb_instance" "default" { cluster = google_alloydb_cluster.default.name instance_id = "alloydb-instance" instance_type = "PRIMARY" machine_config { cpu_count = 2 } depends_on = [google_service_networking_connection.vpc_connection] } resource "google_alloydb_cluster" "default" { cluster_id = "alloydb-cluster" location = "us-central1" network_config { network = google_compute_network.default.id } initial_user { password = "alloydb-cluster" } } data "google_project" "project" {} resource "google_compute_network" "default" { name = "alloydb-network" } resource "google_compute_global_address" "private_ip_alloc" { name = "alloydb-cluster" address_type = "INTERNAL" purpose = "VPC_PEERING" prefix_length = 16 network = google_compute_network.default.id } resource "google_service_networking_connection" "vpc_connection" { network = google_compute_network.default.id service = "servicenetworking.googleapis.com" reserved_peering_ranges = [google_compute_global_address.private_ip_alloc.name] }
Dans l'exemple précédent, une instance N2 est créée. Pour créer une instance C4A, utilisez le champ machine_type
dans la structure machine_config
, comme indiqué dans l'exemple suivant :
machine_config { machine_type = "c4a-highmem-4-lssd" }
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 de 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.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.git clone https://github.com/terraform-google-modules/terraform-docs-samples
- Dans le répertoire
terraform-docs-samples
, accédez au répertoirealloydb
.cd terraform-docs-samples/alloydb
- Copiez l'exemple de code dans le fichier
main.tf
que vous venez de créer. Remplacezcp SAMPLE_FILE
<var>SAMPLE_FILE</var>
par le nom du fichier exemple à copier, par exemplemain.tf
. - Examinez et 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
Appliquer les modifications
- Examinez la configuration pour vérifier que les mises à jour Terraform correspondent à vos attentes :
Corrigez les modifications de la configuration si nécessaire.terraform plan
- Appliquez la configuration Terraform en exécutant la commande suivante et en saisissant
yes
lorsque vous y êtes invité : Attendez que Terraform affiche le messageterraform apply
Apply complete!
.
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.
REST v1
Créer une instance
Cet exemple crée une instance principale. Pour obtenir la liste complète des paramètres de cet appel, consultez Méthode : projects.locations.clusters.instances.create. Pour en savoir plus sur les paramètres de cluster, consultez Afficher les paramètres des clusters et des instances.
N'incluez pas d'informations sensibles ou permettant d'identifier personnellement l'utilisateur dans l'ID de votre cluster, car les utilisateurs externes peuvent le voir. Vous n'avez pas besoin d'inclure l'ID du projet dans le nom du cluster, car cela est fait automatiquement le cas échéant (par exemple, dans les fichiers journaux).
Pour envoyer votre requête, enregistrez le corps de la requête dans un fichier nommé instance_request.json
.
{ "instance_type": "PRIMARY", "machine_config": { "cpu_count": "vCPU_COUNT", }, }
Effectuez le remplacement suivant :
CPU_COUNT
: nombre de cœurs de processeur visibles sur l'instance que vous souhaitez créer.
L'exemple précédent crée une instance N2 avec les spécifications suivantes :
- 2 : 2 processeurs virtuels, 16 Go de RAM
- 4 : 4 processeurs virtuels, 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
Pour créer une instance C4A, utilisez le champ machine_type
au lieu de cpu_count
dans la structure machine_config
, comme indiqué dans l'exemple suivant :
machine_config: { machine_type : MACHINE_TYPE, },
Pour la série de machines C4A basée sur Axion, les valeurs valides sont les suivantes :
c4a-highmem-1
c4a-highmem-4-lssd
c4a-highmem-8-lssd
c4a-highmem-16-lssd
c4a-highmem-32-lssd
c4a-highmem-48-lssd
c4a-highmem-64-lssd
c4a-highmem-72-lssd
Pour la série de machines N2, les valeurs valides sont les suivantes :
n2-highmem-2
n2-highmem-4
n2-highmem-8
n2-highmem-16
n2-highmem-32
n2-highmem-64
n2-highmem-96
n2-highmem-128
Utilisez la méthode HTTP et l'URL suivantes :
POST https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances?instance_id=INSTANCE_ID
Effectuez les remplacements suivants :
PROJECT_ID
: ID du projet dans lequel vous souhaitez que le cluster soit situé.LOCATION_ID
: ID de la région du cluster.CLUSTER_ID
: ID du cluster que vous créez. L'ID doit commencer par une lettre minuscule et peut contenir des lettres minuscules, des chiffres et des traits d'union.INSTANCE_ID
: nom de l'instance principale que vous souhaitez créer.
Vous pouvez utiliser curl pour exécuter la requête, comme illustré dans l'exemple suivant :
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://alloydb.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances?instance_id=INSTANCE_ID -d @instance_request.json