Procéder au scaling d'une instance

Vous pouvez mettre à l'échelle une instance AlloyDB pour ajuster la capacité et les performances de votre cluster afin de répondre aux demandes de charge de travail changeantes. Le scaling 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 Manuel et automatique Non compatible Compatible

Avant de commencer

  • Le Google Cloud projet que vous utilisez doit avoir été activé pour accéder à AlloyDB.
  • Vous devez disposer de l'un des rôles IAM suivants dans le Google Cloud projet que vous utilisez :
    • roles/alloydb.admin (rôle IAM prédéfini d'administrateur AlloyDB)
    • roles/owner (rôle IAM de base de propriétaire)
    • roles/editor (rôle IAM de base d'é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 de scaling de vos instances AlloyDB. Par exemple, vous pouvez mettre à l'échelle une instance verticalement en modifiant son type de machine et mettre à l'échelle une instance de pool de lecture horizontalement en modifiant son nombre de nœuds.

Mettre à l'échelle le type de machine d'une instance

Vous pouvez mettre à l'échelle verticalement les instances principales et de pool de lecture en modifiant le type de machine de l'instance, ce qui modifie son nombre de processeurs virtuels et sa RAM.

Console

  1. Dans la console Google Cloud , accédez à la page Clusters.

    Accéder aux clusters

  2. Cliquez sur un cluster dans la colonne Nom de la ressource.

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

  4. Sélectionnez l'une des séries de machines suivantes :

    • C4A (série de machines Google Axion)
    • N2 (série de machines x86) Il s'agit de la série de machines par défaut.
    • C4 (série de machines x86)
    • Z3 (série de machines Intel Xeon)
  5. Sélectionnez un type de machine.

    • C4A est compatible avec 1, 2, 4, 8, 16, 32, 48, 64 et 72 processeurs virtuels.
    • N2 est compatible avec 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 processeurs virtuels.
    • Z3 est compatible avec 8, 14, 16, 22, 32, 44 et 88 processeurs virtuels.

    Pour en savoir plus sur l'utilisation de la série de machines C4A Axion, y compris le type de machine à un processeur virtuel, consultez la section Points à prendre en compte lors de l'utilisation de la série de machines C4A Axion.

  6. 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 vous pouvez utiliser Cloud Shell.

Utilisez la gcloud alloydb instances update commande 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_ID

Remplacez 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 processeurs virtuels, 16 Go de RAM
    • 4 : 4 processeurs virtuels, 32 Go de RAM
    • 8 : 8 processeurs virtuels, 64 Go de RAM
    • 16 : 16 processeurs virtuels, 128 Go de RAM
    • 32 : 32 processeurs virtuels, 256 Go de RAM
    • 64 : 64 processeurs virtuels, 512 Go de RAM
    • 96 : 96 processeurs virtuels, 768 Go de RAM
    • 128 : 128 processeurs virtuels, 864 Go de RAM

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

    Lorsque vous utilisez MACHINE_TYPE et CPU_COUNT ensemble, les valeurs de CPU_COUNT et MACHINE_TYPE doivent correspondre. 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 contenant l'expression invalid cluster state MAINTENANCE, cela signifie que le cluster est en cours de maintenance de routine. Cela interdit 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 la section 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_APPLY
  • L'instance subit un temps d'arrêt d'environ une minute.

  • Le type de machine d'une instance change après 10 à 15 minutes.

Mettre à l'échelle le nombre de nœuds d'une instance de pool de lecture

AlloyDB vous permet de mettre à l'échelle 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

  1. Dans la console Google Cloud , accédez à la page Clusters.

    Accéder aux clusters

  2. Cliquez sur un cluster dans la colonne Nom de la ressource.

  3. Sur la page Présentation, accédez à la section Instances dans votre cluster, puis cliquez sur Modifier le pool de lecture.

  4. Dans le champ Nombre de nœuds, saisissez un nombre de nœuds.

  5. Cliquez sur Mettre à jour le pool de lecture.

gcloud

Pour utiliser la gcloud CLI, vous pouvez installer et initialiser la Google Cloud CLI, ou vous pouvez utiliser Cloud Shell.

Utilisez la gcloud alloydb instances update commande pour modifier le nombre de nœuds dans une instance de pool de 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 de pool de lecture. Spécifiez un nombre compris entre 1 et 20 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 dans laquelle 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 contenant l'expression invalid cluster state MAINTENANCE, cela signifie que le cluster est en cours de maintenance de routine. Cela interdit 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 la section Afficher les détails du cluster.

Mettre à l'échelle automatiquement une instance de pool de lecture

L'autoscaling du pool 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 variations d'utilisation et à réduire les dépenses.

Vous pouvez configurer l'autoscaling à l'aide des règles suivantes :

  • Basée sur l'utilisation du processeur : met à l'échelle le nombre de nœuds en fonction d'une utilisation cible du processeur.
  • Basée sur une programmation : met à l'échelle le nombre de nœuds jusqu'à 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 du pool de lecture présente les limites suivantes :

  • Répartition de la charge pour les connexions de longue durée : pour établir une répartition 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 ne met pas fin aux connexions de longue durée existantes lorsqu'il ajoute de nouveaux nœuds. Par conséquent, le trafic de ces connexions n'est pas acheminé vers les nœuds nouvellement ajoutés.
  • Réchauffement du cache pour les nouveaux nœuds : lorsque l'autoscaler ajoute de nouveaux nœuds, il peut s'écouler quelques minutes avant qu'ils ne réchauffent leurs caches et n'atteignent des performances de requête maximales.

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 une programmation 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 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-target-cpu-usage=TARGET_CPU_USAGE

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 de nœuds dans l'instance de pool de lecture. Spécifiez un nombre compris entre 1 et 20 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 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é.

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

  • TARGET_CPU_USAGE : utilisation cible du processeur pour votre instance de pool de lecture, exprimée sous forme de valeur décimale comprise entre 0,0 et 1,0. Par exemple, 0,7 pour 70 %.

Créer une instance de pool de lecture avec une règle basée sur une programmation

Pour créer une instance de pool de lecture avec une règle de scaling automatique basée sur une programmation qui définit un nombre minimal de nœuds pour une période spécifique, exécutez la commande suivante :

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

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.

  • SCHEDULE_NAME : nom unique de la programmation de scaling.

  • CRON_EXPRESSION : programmation 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 programmation reste active après son démarrage. Après cette période, l'instance est réduite au nombre de nœuds déterminé par d'autres règles ou sa configuration d'origine.

  • TIME_ZONE : fuseau horaire facultatif pour la programmation. Par exemple, America/Los_Angeles.

  • MIN_NODE_COUNT : nombre minimal de nœuds jusqu'auquel l'autoscaler met à l'échelle l'instance de pool de lecture pendant que la programmation est active.

  • DESCRIPTION : description textuelle facultative de la programmation.

Créer une instance de pool de lecture avec des règles basées sur le processeur et sur une programmation

Pour créer une instance de pool de lecture avec des règles de scaling automatique basées sur le processeur et sur une programmation, exécutez la commande suivante :

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

Remplacez TARGET_CPU_USAGE par l'utilisation cible du processeur pour votre instance de pool de lecture, exprimée sous forme de valeur décimale comprise entre 0,0 et 1,0.

Pour obtenir une description des espaces réservés utilisés dans cette commande, consultez les sections Créer une instance de pool de lecture avec une règle basée sur le processeur et Créer une instance de pool de lecture avec une règle basée sur une programmation.

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 alloydb instances update. Par exemple, pour mettre à jour l'utilisation cible du processeur, exécutez la commande suivante :

gcloud alloydb instances update INSTANCE_ID \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --autoscaler-target-cpu-usage=NEW_TARGET_CPU_USAGE

Remplacez NEW_TARGET_CPU_USAGE par la nouvelle utilisation cible du processeur 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 de mise à jour avec un nouveau nom de programmation. Si le nom de la programmation existe déjà, la commande met à jour la programmation existante. Sinon, elle crée une programmation.

gcloud alloydb instances update INSTANCE_ID \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --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_COUNT

Remplacez NEW_SCHEDULE_NAME par le nom unique de la programmation de scaling nouvelle ou mise à jour. Si le nom fourni correspond à une programmation existante, la commande met à jour les paramètres de cette programmation. Si le nom n'existe pas, la commande crée une programmation avec 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 :

  • Une règle basée sur le processeur avec une cible d'utilisation de 60 %.
  • Une règle basée sur une programmation qui nécessite un minimum de trois nœuds en semaine entre 8 h et 17 h.

Si nous sommes en semaine à midi et que l'utilisation du processeur est de 80 %, la règle basée sur le processeur peut recommander de passer à quatre nœuds, tandis que la règle basée sur une programmation en recommande trois. L'autoscaler met à l'échelle l'instance à quatre nœuds.

Désactiver l'autoscaling

Pour désactiver le scaling automatique, utilisez l'option no-enable-autoscaler. Cela rétablit le nombre de nœuds d'origine du pool de lecture avant l'activation de l'autoscaling.

gcloud alloydb instances update INSTANCE_ID \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --no-enable-autoscaler