Procéder au scaling d'une instance

Vous pouvez faire évoluer une instance AlloyDB pour ajuster la capacité et les performances de votre cluster en fonction des 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 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 basée sur Google Axion, disponible en preview.
    • N2 : série de machines par défaut basée sur x86.
    • C4 : série de machines basée sur les processeurs Intel Xeon Scalable et Titanium.
  5. 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.
    • C4 est compatible avec les types ou formes de machines 4, 8, 16, 24, 32, 48, 96, 144, 192 et 288.

      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.

  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 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_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 vCPU, 16 Go de RAM
    • 4 : 4 vCPU, 32 Go de RAM
    • 8 : 8 vCPU, 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 processeurs virtuels, 768 Go de RAM
    • 128 : 128 vCPU, 864 Go de RAM

  • MACHINE_TYPE : facultatif. Sélectionnez un type de machine compatible, tel que n2-highmem-4, c4-highmem-4-lssd ou c4a-highmem-4-lssd. Pour en savoir plus, consultez 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 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é.

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_APPLY
  • L'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

  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 le nombre de nœuds.

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

gcloud

Pour utiliser la gcloud CLI, vous pouvez installer et initialiser 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 du pool de lecture.

  • NODE_COUNT : nombre de nœuds dans l'instance du 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 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éremplissage 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éremplis et que les performances de requête maximales ne soient atteintes.
  • Comportement avec les requêtes volumineuses : les ajustements de l'autoscaling peuvent être différés lors de l'exécution de requêtes de lecture très volumineuses.

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 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 du pool de lecture.

  • READ_POOL : spécifie le type d'instance.

  • NODE_COUNT : nombre de nœuds dans l'instance du 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 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é.

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

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 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 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 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. Exemple :America/Los_Angeles

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

  • DESCRIPTION : description textuelle facultative de la planification.

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 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 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 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 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 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 du calendrier de scaling à créer ou à modifier. Si le nom fourni correspond à une planification existante, la commande met à jour les paramètres de cette planification. Si le nom n'existe pas, la commande crée une programmation 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.

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