Scalabilité automatique du nombre de réplicas dans un cluster de bases de données Amazon Neptune - Amazon Neptune

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Scalabilité automatique du nombre de réplicas dans un cluster de bases de données Amazon Neptune

Vous pouvez utiliser la auto-scaling Neptune pour ajuster automatiquement le nombre de réplicas Neptune dans un cluster de bases de données, afin de répondre à vos exigences en matière de connectivité et de charge de travail. La auto-scaling permet à votre cluster de bases de données Neptune de gérer les augmentations soudaines de la charge de travail, puis, lorsque la charge de travail diminue, la mise à l'échelle automatique supprime les réplicas inutiles, de sorte que vous ne payez pas la capacité inutilisée.

Vous ne pouvez utiliser la auto-scaling qu'avec un cluster DB Neptune qui possède déjà une instance de graveur principale et au moins une instance de réplica en lecture (voirClusters et instances de base de données Amazon Neptune). De plus, toutes les instances de réplica en lecture du cluster doivent être à l'état disponible. Si un réplica en lecture est dans un état autre que celui disponible, la mise à l'échelle automatique Neptune ne fait rien tant que tous les réplicas en lecture du cluster ne sont pas disponibles.

VoirCréer un cluster de bases de donnéessi vous devez créer un cluster.

Utilisation deAWS CLI, vous définissez et appliquez une stratégie de dimensionnement au cluster de bases de données. La stratégie de dimensionnement spécifie les paramètres de auto-scaling suivants :

  • Nombre minimal et maximal de réplicas devant être présents dans le cluster.

  • Un soi-disanttemps de stabilitéintervalle entre les ajouts ou les suppressions de réplicas.

  • Le CloudWatch métrique et valeur de déclenchement de mesure pour la mise à l'échelle vers le haut ou vers le bas.

Utilisation deAWS CLI, vous pouvez également modifier ou supprimer votre stratégie de auto-scaling.

Lorsque le CloudWatch mesure que vous utilisez atteint le seuil que vous avez spécifié dans votre stratégie, tant que votre cluster de bases de données ne dispose pas déjà du nombre maximal de réplicas que vous avez défini, Neptune crée un nouveau réplica utilisant le même type d'instance que l'instance principale du cluster de bases de données.

Lorsque la métrique montre que la charge de travail a diminué suffisamment, la scalabilité automatique Neptune supprime les réplicas inutiles de telle sorte que vous ne payez pas la capacité que vous n'utilisez pas.

Note

La auto-scaling Neptune supprime uniquement les réplicas créés. Il ne supprime pas les réplicas préexistants.

Utilisation deneptune_autoscaling_configParamètre de cluster DB, vous pouvez également spécifier le type d'instance des nouveaux réplicas en lecture créés par Neptune auto-scaling, les fenêtres de maintenance de ces réplicas en lecture et les balises à associer à chacun des nouveaux réplicas en lecture. Vous fournissez ces paramètres de configuration dans une chaîne JSON en tant que valeur de laneptune_autoscaling_config, comme suit :

"{ \"tags\": [ { \"key\" : \"reader tag-0 key\", \"value\" : \"reader tag-0 value\" }, { \"key\" : \"reader tag-1 key\", \"value\" : \"reader tag-1 value\" }, ], \"maintenanceWindow\" : \"wed:12:03-wed:12:33\", \"dbInstanceClass\" : \"db.r5.xlarge\" }"

Notez que les guillemets de la chaîne JSON doivent tous être échappés par une barre oblique inverse (\). Tous les espaces blancs de la chaîne sont facultatifs, comme d'habitude.

L'un des trois paramètres de configuration non spécifiés dans leneptune_autoscaling_configsont copiés à partir de la configuration de l'instance d'écriture principale du cluster de bases de données.

Quandauto-scalingajoute une nouvelle instance de réplica en lecture, elle préfixe l'ID d'instance DB avecautoscaled-reader(par exemple,autoscaled-reader-7r7t7z3lbd-20210828). Il ajoute également la balise a à chaque réplica en lecture créé avec la cléautoscaled-readeret une valeur deTRUE. Vous pouvez voir cette étiquette sur leBalisesde la page détaillée de l'instance de base de données dans laAWS Management Console.

"key" : "autoscaled-reader", "value" : "TRUE"

Le niveau de promotion de toutes les instances de réplica en lecture créées par la auto-scaling est la priorité la plus basse, qui est15par défaut. Cela signifie que pendant un basculement, tout réplica ayant une priorité supérieure, par exemple un réplica ayant été créé manuellement, serait promu en premier. Consultez Tolérance aux pannes pour un cluster DB Neptune.

La auto-scaling Neptune est implémentée à l'aide d'Application Auto Scaling avec unStratégie de dimensionnement de suivi de ciblequi utilise un NeptuneCPUUtilization CloudWatch métrique sous forme de métrique prédéfinie.

Comment activer la auto-scaling pour Amazon Neptune

L'activation de la auto-scaling pour un cluster de bases de données Neptune comporte trois étapes :

1. Enregistrement de votre cluster de bases de données avec Application Auto Scaling

La première étape de l'activation de la auto-scaling pour un cluster de bases de données Neptune consiste à enregistrer le cluster auprès d'Application Auto Scaling, à l'aide duAWS CLIou l'un des kits SDK Application Auto Scaling. Le cluster doit déjà avoir une instance principale et au moins une instance de réplica en lecture :

Par exemple, pour enregistrer un cluster à dimensionner automatiquement avec un à huit réplicas supplémentaires, vous pouvez utiliser leAWS CLI register-scalable-targetcommande comme suit :

aws application-autoscaling register-scalable-target \ --service-namespace neptune \ --resource-id cluster:(your DB cluster name) \ --scalable-dimension neptune:cluster:ReadReplicaCount \ --min-capacity 1 \ --max-capacity 8

Ceci est équivalent à l'utilisation duRegisterScalableTargetFonctionnement de l'API Application Auto Scaling.

LeAWS CLI register-scalable-targetaccepte les paramètres suivants :

  • --service-namespace – Défini sur neptune.

    Ce paramètre est équivalent à l'ServiceNamespacedans l'API Application Auto Scaling.

  • resource-id— Définissez ce paramètre sur l'identificateur de ressource de votre cluster de bases de données Neptune. Le type de ressource estcluster, qui est suivi d'un deux-points (':'), puis le nom de votre cluster de bases de données.

    Ce paramètre est équivalent à l'ResourceIDdans l'API Application Auto Scaling.

  • scalable-dimension— La dimension évolutive dans ce cas correspond au nombre d'instances de réplica dans le cluster de bases de données. Vous définissez donc ce paramètre surneptune:cluster:ReadReplicaCount.

    Ce paramètre est équivalent à l'ScalableDimensiondans l'API Application Auto Scaling.

  • min-capacity— Nombre minimal d'instances de réplica de base de données en écriture devant être gérées par Application Auto Scaling. Cela peut être aussi petit que 0 et pas plus grand que la valeur de la valeurmax-capacity  Paramètre .

    Ce paramètre est équivalent à l'MinCapacitydans l'API Application Auto Scaling.

  • max-capacity— Nombre maximal d'instances de réplica de base de données en écriture devant être gérées par Application Auto Scaling. Cette valeur ne peut pas être inférieure à la valeur du paramètremin-capacityet pas plus de 15 fois moins le nombre de réplicas préexistants. Un cluster de bases de données ne peut pas comporter plus de 15 réplicas au total, de sorte que le nombre maximal de réplicas gérés par auto-scaling et le nombre de réplicas préexistants ne peuvent pas dépasser cette limite.

    Lemax-capacity AWS CLIest équivalent à l'MaxCapacitydans l'API Application Auto Scaling.

Lorsque vous enregistrez votre cluster de bases de données, Application Auto Scaling crée unAWSServiceRoleForApplicationAutoScaling_NeptuneClusterUn rôle lié à un service. Pour de plus amples informations, veuillez consulterRôles liés à un service pour la auto-scaling applicationsdans leGuide de l'utilisateur Application Auto Scaling.

2. Définissez une stratégie de scalabilité automatique à utiliser avec votre cluster de bases de données

Une stratégie de mise à l'échelle du suivi des cibles est définie comme un objet texte JSON qui peut également être enregistré dans un fichier texte. Pour Neptune, cette stratégie ne peut actuellement utiliser que le NeptuneCPUUtilization CloudWatch métrique sous forme de métrique prédéfinie nomméeNeptuneReaderAverageCPUUtilization.

Voici un exemple de stratégie de configuration de dimensionnement de suivi des cibles pour Neptune :

{ "PredefinedMetricSpecification": { "PredefinedMetricType": "NeptuneReaderAverageCPUUtilization" }, "TargetValue": 60.0, "ScaleOutCooldown" : 600, "ScaleInCooldown" : 600 }

LeTargetValuecontient ici le pourcentage d'utilisation du processeur au-dessus duquel la auto-scalingmontée en charge(c'est-à-dire ajoute d'autres réplicas) et en dessous desquels iléchelles en(c'est-à-dire, supprime les réplicas). Dans ce cas, le pourcentage cible qui déclenche une mise à l'échelle est de60.0%.

LeScaleInCooldownspécifie la durée, en secondes, devant s'écouler entre la fin d'une activité de diminution et le début d'une autre. La durée par défaut est 300 secondes. Ici, la valeur de 600 spécifie qu'au moins dix minutes doivent s'écouler entre la fin d'une suppression de réplica et le début d'un autre.

LeScaleOutCooldownspécifie la durée, en secondes, devant s'écouler entre la fin d'une activité de montée en charge et le début d'une autre. La durée par défaut est 300 secondes. Ici, la valeur de 600 spécifie qu'au moins dix minutes doivent s'écouler entre la fin d'un ajout de réplica et le début d'un autre.

LeDisableScaleInest un booléen qui s'il est présent et défini surtruedésactive entièrement le scale-in, ce qui signifie que la auto-scaling peut ajouter des réplicas mais n'en supprimera jamais. Par défaut, la mise à l'échelle est activée, etDisableScaleInestfalse.

Après avoir enregistré votre cluster de bases de données Neptune dans Application Auto Scaling et défini une stratégie de mise à l'échelle JSON dans un fichier texte, appliquez ensuite cette dernière au cluster de bases de données enregistré. Vous pouvez utiliser le pluginAWS CLI put-scaling-policypour ce faire, avec des paramètres tels que les suivants :

aws application-autoscaling put-scaling-policy \ --policy-name (name of the scaling policy) \ --policy-type TargetTrackingScaling \ --resource-id cluster:(name of your Neptune DB cluster) \ --service-namespace neptune \ --scalable-dimension neptune:cluster:ReadReplicaCount --target-tracking-scaling-policy-configuration file://(path to the JSON configuration file)

Lorsque vous avez appliqué la stratégie de auto-scaling, la auto-scaling est activée sur votre cluster de bases de données.

Vous pouvez également utiliser leAWS CLI put-scaling-policypour mettre à jour une stratégie de auto-scaling existante.

Voir aussiPutScalingPolicydans leRéférence de l'API Application Auto Scaling.

Suppression de la auto-scaling d'un cluster de bases de données Neptune

Pour supprimer la auto-scaling d'un cluster de bases de données Neptune, utilisez leAWS CLI stratégie de suppression de dimensionnementetcible évolutive de désenregistreurcommandes.