Vous pouvez mettre à l'échelle une instance AlloyDB pour ajuster la capacité et les performances de votre cluster afin de répondre aux besoins changeants de la charge de travail. La mise à l'échelle permet de gérer les coûts et de faciliter la gestion des pics de trafic.
Vous pouvez mettre à l'échelle les instances AlloyDB de plusieurs manières, comme indiqué ci-dessous.
| Type de scaling | Méthode | Automatisation | Instances principales | Instances de pool de lecture |
|---|---|---|---|---|
| Verticale | Modifier le type de machine | Manuel | Compatible | Compatible |
| Horizontale | Modifier le nombre de nœuds | Manuelle et automatique | Non compatible | Compatible |
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 "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.
Scaling manuel
Cette section décrit les méthodes manuelles pour mettre à l'échelle vos instances AlloyDB. Par exemple, vous pouvez faire évoluer verticalement une instance en modifiant son type de machine et faire évoluer horizontalement une instance de pool de lecture en modifiant son nombre de nœuds.
Faire évoluer le type de machine d'une instance
Vous pouvez faire évoluer verticalement les instances principales et de pool de lecture en modifiant le type de machine de l'instance, ce qui modifie ses processeurs virtuels et sa RAM.
Console
Dans la console Google Cloud , accédez à la page Clusters.
Cliquez sur un cluster dans la colonne Nom de la ressource.
Sur la page Présentation, accédez à la section Instances dans votre cluster, puis cliquez sur Modifier l'instance principale ou Modifier le pool de lecture.
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.
- C4 (série de machines x86)
- Z3 (série de machines basées sur Intel Xeon)
Sélectionnez 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.
Cliquez sur Mettre à jour l'instance ou Mettre à jour le pool de lecture.
gcloud
Pour utiliser la gcloud CLI, vous pouvez installer et initialiser la Google Cloud CLI, ou utiliser Cloud Shell.
Utilisez la commande gcloud alloydb instances update pour modifier le type de machine de l'instance principale.
gcloud alloydb instances update INSTANCE_ID \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_IDRemplacez les éléments suivants :
INSTANCE_ID: ID de l'instance que vous mettez à jour.CPU_COUNT: nombre de processeurs virtuels N2 souhaité pour l'instance. N2 est la valeur par défaut. Les valeurs valides sont les suivantes:2: 2 vCPU, 16 Go de RAM4: 4 vCPU, 32 Go de RAM8: 8 vCPU, 64 Go de RAM16: 16 vCPU, 128 Go de RAM32: 32 vCPU, 256 Go de RAM64: 64 vCPU, 512 Go de RAM96: 96 vCPU, 768 Go de RAM128: 128 vCPU, 864 Go de RAM
MACHINE_TYPE: facultatif. Sélectionnez un type de machine compatible, tel quen2-highmem-4,c4-highmem-4-lssdouc4a-highmem-4-lssd. Pour en savoir plus, consultez Choisir un type de machine AlloyDB.Lorsque vous utilisez
MACHINE_TYPEetCPU_COUNTensemble, les valeurs deCPU_COUNTetMACHINE_TYPEdoivent correspondre, sinon une erreur s'affiche.REGION_ID: région dans laquelle l'instance est placée.CLUSTER_ID: ID du cluster dans lequel l'instance est placée.PROJECT_ID: ID du projet dans lequel le cluster est placé.
Si la commande renvoie un message d'erreur incluant l'expression invalid cluster state MAINTENANCE, cela signifie que le cluster est en cours de maintenance de routine. Cela empêche temporairement la reconfiguration de l'instance.
Exécutez à nouveau la commande une fois que le cluster est revenu à l'état READY.
Pour vérifier l'état du cluster, consultez Afficher les détails du cluster.
Accélérer les mises à jour du type de machine
Pour mettre à jour le type de machine plus rapidement, utilisez l'option FORCE_APPLY avec la commande gcloud beta alloydb instances update.
gcloud beta alloydb instances update INSTANCE_ID \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--update-mode=FORCE_APPLYL'instance subit environ une minute de temps d'arrêt.
Le type de machine d'une instance change au bout de 10 à 15 minutes.
Mettre à l'échelle le nombre de nœuds d'une instance de pool de lecture
AlloyDB vous permet de faire évoluer le nombre de nœuds dans une instance de pool de lecture sans aucun temps d'arrêt au niveau de l'instance. Lorsque vous augmentez le nombre de nœuds, les connexions client ne sont pas affectées.
Lorsque vous diminuez le nombre de nœuds, tous les clients connectés à un nœud en cours d'arrêt peuvent se reconnecter aux autres nœuds à l'aide du point de terminaison de l'instance.
Console
Dans la console Google Cloud , accédez à la page Clusters.
Cliquez sur un cluster dans la colonne Nom de la ressource.
Sur la page Présentation, accédez à la section Instances dans votre cluster, puis cliquez sur Modifier le pool de lecture.
L'action redevient disponible une fois que l'état passe à Prêt.Dans le champ Nombre de nœuds, saisissez le nombre de nœuds.
Cliquez sur Mettre à jour le pool de lecture.
gcloud
Pour utiliser la gcloud CLI, vous pouvez installer et initialiser la Google Cloud CLI, ou utiliser Cloud Shell.
Utilisez la commande gcloud alloydb instances update pour modifier le nombre de nœuds dans une instance de pool avec accès en lecture.
gcloud alloydb instances update INSTANCE_ID \
--read-pool-node-count=NODE_COUNT \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \INSTANCE_ID: ID de l'instance de pool de lecture.NODE_COUNT: nombre de nœuds dans l'instance du pool de lecture. Spécifiez un nombre compris entre1et20(inclus). Notez que vous ne pouvez pas avoir plus de 20 nœuds dans toutes les instances de pool de lecture d'un cluster.REGION_ID: région où se trouve l'instance.CLUSTER_ID: ID du cluster dans lequel se trouve l'instance.PROJECT_ID: ID du projet dans lequel se trouve le cluster.
Si la commande renvoie un message d'erreur incluant l'expression invalid cluster state MAINTENANCE, cela signifie que le cluster est en cours de maintenance de routine. Cela empêche temporairement la reconfiguration de l'instance.
Exécutez à nouveau la commande une fois que le cluster est revenu à l'état READY. Pour vérifier l'état du cluster, consultez Afficher les détails du cluster.
Mettre à l'échelle automatiquement une instance de pool de lecture
L'autoscaling des pools de lecture AlloyDB vous permet de modifier automatiquement et de manière adaptative le nombre de nœuds de lecture en fonction de l'utilisation des ressources en temps réel. Cela vous aide à gérer les changements d'utilisation et à réduire les dépenses.
Vous pouvez configurer l'autoscaling à l'aide des règles suivantes :
- Basé sur l'utilisation du processeur : ajuste le nombre de nœuds en fonction d'un objectif d'utilisation du processeur.
- Basé sur la planification : ajuste le nombre de nœuds à un nombre minimal pendant une période spécifiée.
Vous pouvez utiliser ces règles ensemble. Lorsque plusieurs règles sont actives, l'autoscaler sélectionne celle qui recommande le plus grand nombre de nœuds.
Limites
L'autoscaler de pool de lecture présente les limites suivantes :
- Distribution de la charge pour les connexions de longue durée : pour établir une distribution uniforme du trafic et utiliser pleinement la capacité ajoutée par l'autoscaling, nous vous recommandons de créer de nouvelles connexions client. L'autoscaler n'interrompt pas les connexions persistantes existantes lorsqu'il ajoute de nouveaux nœuds. Le trafic de ces connexions n'est donc pas acheminé vers les nœuds nouvellement ajoutés.
- Préparation du cache pour les nouveaux nœuds : lorsque l'autoscaler ajoute des nœuds, il peut s'écouler quelques minutes avant que leurs caches ne soient prêts et que les performances des requêtes n'atteignent leur maximum.
Activer le scaling automatique sur une nouvelle instance de pool de lecture
Vous pouvez activer et configurer le scaling automatique lorsque vous créez une instance de pool de lecture à l'aide d'une règle basée sur le processeur, d'une règle basée sur la planification ou des deux.
Créer une instance de pool de lecture avec une règle basée sur le processeur
Pour créer une instance de pool de lecture avec une règle de scaling automatique basée sur une utilisation cible du processeur, exécutez la commande suivante :
gcloud beta alloydb instances create INSTANCE_ID \
--instance-type=READ_POOL \
--read-pool-node-count=NODE_COUNT \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--enable-autoscaler \
--autoscaler-max-node-count=MAX_NODE_COUNT \
--autoscaler-cool-down-period-seconds=COOLDOWN_PERIOD \
--autoscaler-target-cpu-usage=TARGET_CPU_USAGE \
{--cpu-count=CPU_COUNT | --machine-type=MACHINE_TYPE}Remplacez les éléments suivants :
INSTANCE_ID: ID de l'instance de pool de lecture.READ_POOL: spécifie le type d'instance.NODE_COUNT: nombre minimal de nœuds que le scaler automatique peut créer dans l'instance de pool de lecture. Spécifiez un nombre compris entre1et20(inclus). Vous ne pouvez pas avoir plus de 20 nœuds dans toutes les instances de pool de lecture d'un cluster.REGION_ID:: région où l'instance est placée.CLUSTER_ID: ID du cluster dans lequel l'instance est placée.PROJECT_ID: ID du projet dans lequel le cluster est placé.MAX_NODE_COUNT: nombre maximal de nœuds que l'autoscaler peut créer dans l'instance de pool de lecture. Le nombre total de nœuds dans toutes les instances de pool de lecture d'un même cluster ne peut pas dépasser 20.COOLDOWN_PERIOD: durée en secondes pendant laquelle AlloyDB attend avant de prendre en compte l'utilisation des ressources de l'instance du pool de lecture dans l'algorithme d'autoscaling. La valeur par défaut est de300secondes. Pour en savoir plus, consultez Autoscaling dans.TARGET_CPU_USAGE: utilisation du processeur cible pour votre instance de pool de lecture, exprimée sous la forme d'une valeur décimale comprise entre 0,0 et 1,0. Par exemple, 0,7 pour 70%.CPU_COUNT: nombre de processeurs virtuels N2 souhaité pour l'instance. Vous devez indiquer soit--cpu-count, soit--machine-type.MACHINE_TYPE: sélectionnez un type de machine compatible dans la liste, par exemplen2-highmem-4,c4-highmem-4-lssdouc4a-highmem-4-lssd. Pour en savoir plus, consultez Choisir un type de machine AlloyDB.
Créer une instance de pool de lecture avec une règle basée sur une planification
Pour créer une instance de pool de lecture avec une règle de scaling automatique basée sur un calendrier qui définit un nombre minimal de nœuds pour une période spécifique, exécutez la commande suivante :
gcloud beta alloydb instances create INSTANCE_ID \
--instance-type=READ_POOL \
--read-pool-node-count=NODE_COUNT \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--enable-autoscaler \
--autoscaler-max-node-count=MAX_NODE_COUNT \
--autoscaler-cool-down-period-seconds=COOLDOWN_PERIOD \
--autoscaler-set-schedule=SCHEDULE_NAME \
--autoscaler-schedule-cron-exp=CRON_EXPRESSION \
--autoscaler-schedule-duration-seconds=DURATION_SECONDS \
--autoscaler-schedule-time-zone=TIME_ZONE \
--autoscaler-schedule-min-node-count=MIN_NODE_COUNT \
--autoscaler-schedule-description="DESCRIPTION"
{--cpu-count=CPU_COUNT | --machine-type=MACHINE_TYPE}Remplacez les éléments suivants :
MAX_NODE_COUNT: nombre maximal de nœuds que l'autoscaler peut créer dans l'instance de pool de lecture. Le nombre total de nœuds dans toutes les instances de pool de lecture d'un même cluster ne peut pas dépasser 20.COOLDOWN_PERIOD: durée en secondes pendant laquelle AlloyDB attend avant de prendre en compte l'utilisation des ressources de l'instance du pool de lecture dans l'algorithme d'autoscaling. La valeur par défaut est de300secondes. Pour en savoir plus, consultez Autoscaling dans.SCHEDULE_NAME: nom unique de la planification de scaling.CRON_EXPRESSION: planification au format cron qui spécifie l'heure de début de l'événement de scaling.DURATION_SECONDS: durée en secondes pendant laquelle la planification reste active après son démarrage. Passé ce délai, l'instance est redimensionnée à la baisse pour atteindre le nombre de nœuds déterminé par d'autres règles ou sa configuration d'origine.TIME_ZONE: fuseau horaire facultatif pour la programmation. Exemple :America/Los_AngelesMIN_NODE_COUNT: nombre minimal de nœuds auquel le scaler automatique met à l'échelle l'instance de pool de lecture lorsque la planification est active.DESCRIPTION: description textuelle facultative de la planification.CPU_COUNT: nombre de processeurs virtuels N2 souhaité pour l'instance. Vous devez indiquer soit--cpu-count, soit--machine-type.MACHINE_TYPE: sélectionnez un type de machine compatible dans la liste, par exemplen2-highmem-4,c4-highmem-4-lssdouc4a-highmem-4-lssd. Pour en savoir plus, consultez Choisir un type de machine AlloyDB.
Créer une instance de pool de lecture avec des règles basées sur le processeur et la planification
Pour créer une instance de pool de lecture avec des règles de scaling automatique basées sur le processeur et sur la planification, exécutez la commande suivante :
gcloud beta alloydb instances create INSTANCE_ID \
--instance-type=READ_POOL \
--read-pool-node-count=NODE_COUNT \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--enable-autoscaler \
--autoscaler-max-node-count=MAX_NODE_COUNT \
--autoscaler-cool-down-period-seconds=COOLDOWN_PERIOD \
--autoscaler-target-cpu-usage=TARGET_CPU_USAGE \
--autoscaler-set-schedule=SCHEDULE_NAME \
--autoscaler-schedule-cron-exp=CRON_EXPRESSION \
--autoscaler-schedule-duration-seconds=DURATION_SECONDS \
--autoscaler-schedule-time-zone=TIME_ZONE \
--autoscaler-schedule-min-node-count=MIN_NODE_COUNT \
--autoscaler-schedule-description="DESCRIPTION"
{--cpu-count=CPU_COUNT | --machine-type=MACHINE_TYPE}Pour obtenir une description des espaces réservés utilisés dans cette commande, consultez les stratégies Créer une instance de pool de lecture avec une stratégie basée sur le processeur et Créer une instance de pool de lecture avec une stratégie basée sur un calendrier.
Activer ou mettre à jour l'autoscaling sur une instance de pool de lecture existante
Vous pouvez activer, désactiver ou modifier les paramètres de scaling automatique sur une instance de pool de lecture existante.
Pour activer l'autoscaling pour la première fois sur une instance existante ou pour mettre à jour une règle existante, utilisez la commande gcloud beta alloydb instances update. Par exemple, pour mettre à jour l'utilisation cible du processeur, exécutez la commande suivante :
gcloud beta alloydb instances update INSTANCE_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--enable-autoscaler \
--autoscaler-target-cpu-usage=NEW_TARGET_CPU_USAGERemplacez NEW_TARGET_CPU_USAGE par la nouvelle utilisation du processeur cible que vous souhaitez définir pour votre instance de pool de lecture, exprimée sous forme de valeur décimale comprise entre 0,0 et 1,0.
Pour ajouter une deuxième programmation à une configuration existante, exécutez la commande update avec un nouveau nom de programmation. Si le nom de la programmation existe déjà, la commande met à jour la programmation existante. Sinon, il crée une programmation.
gcloud beta alloydb instances update INSTANCE_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--enable-autoscaler \
--autoscaler-set-schedule=NEW_SCHEDULE_NAME \
--autoscaler-schedule-cron-exp=CRON_EXPRESSION \
--autoscaler-schedule-duration-seconds=DURATION_SECONDS \
--autoscaler-schedule-min-node-count=MIN_NODE_COUNTRemplacez NEW_SCHEDULE_NAME par le nom unique du nouveau calendrier de scaling ou du calendrier mis à jour. Si le nom fourni correspond à un calendrier existant, la commande met à jour les paramètres de ce calendrier. Si le nom n'existe pas, la commande crée un calendrier portant ce nom.
Évaluation des règles d'autoscaling
Lorsque plusieurs règles de scaling automatique sont actives, l'autoscaler évalue chaque règle et choisit celle qui recommande le plus grand nombre de nœuds.
Prenons l'exemple d'une configuration avec deux règles :
- Règle basée sur le CPU avec une utilisation cible de 60 %.
- Une règle basée sur la planification qui nécessite un minimum de trois nœuds en semaine entre 8h et 17h.
Si l'utilisation du processeur est de 80 % un jour de semaine à midi, la règle basée sur le processeur peut recommander de passer à quatre nœuds, tandis que la règle basée sur la planification en recommande trois. L'autoscaler fait passer l'instance à quatre nœuds.
Autoscaling dans
En plus de l'autoscaling de votre instance de pool de lecture, AlloyDB effectue également un autoscaling de votre instance lorsque vous n'avez pas besoin d'autant de nœuds de lecture pour prendre en charge votre workflow. Lorsque l'autoscaling se produit, AlloyDB réduit le nombre de nœuds à la valeur que vous avez définie pour le champ --read-pool-node-count.
Pour déterminer quand réduire la taille de votre instance de pool de lecture, AlloyDB attend que votre calendrier d'autoscaling soit inactif ou que votre utilisation du processeur soit inférieure à votre utilisation cible pendant la période la plus longue parmi les deux suivantes :
- 10 minutes
- Durée en secondes définie par le champ
--autoscaler-cool-down-period-seconds.
Par exemple, si vous définissez --autoscaler-cool-down-period-seconds sur 660 secondes lorsque vous créez votre instance de pool de lecture, AlloyDB attend que votre calendrier d'autoscaling soit inactif ou que votre utilisation du processeur soit inférieure à votre objectif d'utilisation pendant 11 minutes avant d'effectuer le scaling à la hausse de votre instance.
Pour en savoir plus sur le scaling vertical, consultez Comprendre les décisions de l'autoscaler.
Désactiver l'autoscaling
Pour désactiver le scaling automatique, utilisez le flag no-enable-autoscaler. Cela réinitialise le pool de lecture au nombre de nœuds d'origine avant l'activation de l'autoscaling.
gcloud beta alloydb instances update INSTANCE_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--no-enable-autoscalerAfficher le nombre de nœuds mis à l'échelle automatiquement
Vous pouvez afficher le nombre de nœuds auxquels l'autoscaler a été mis à l'échelle dans une instance.
Console
Dans la console Google Cloud , accédez à la page Clusters.
Cliquez sur un cluster dans la colonne Nom de la ressource.
Dans le menu de navigation, cliquez sur Insights sur le système.
Sélectionnez une instance dans la liste déroulante Instance.
Affichez le nombre de nœuds sous Nombre de nœuds actifs.
gcloud
Pour utiliser la gcloud CLI, vous pouvez installer et initialiser la Google Cloud CLI, ou utiliser Cloud Shell.
Exécutez la commande gcloud alloydb instances describe pour afficher la liste des nœuds de l'instance.
gcloud alloydb instances describe INSTANCE_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--view=FULL \
--format="yaml(nodes)"Remplacez les éléments suivants :
INSTANCE_ID: ID de l'instance que vous mettez à jour.REGION_ID: région où se trouve l'instance.CLUSTER_ID: ID du cluster dans lequel l'instance est placée.PROJECT_ID: ID du projet dans lequel le cluster est placé.