Configuration supplémentaire pour les instances et les clusters de bases de données Neptune sans serveur - 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.

Configuration supplémentaire pour les instances et les clusters de bases de données Neptune sans serveur

Outre la définition de la capacité minimale et maximale du cluster de bases de données Neptune sans serveur, vous devez prendre en compte quelques autres choix de configuration.

Combinaison d'instances sans serveur et d'instances provisionnées dans un cluster de bases de données

Un cluster de bases de données ne doit pas nécessairement être uniquement sans serveur : vous pouvez créer une combinaison d'instances sans serveur et d'instances provisionnées (configuration mixte).

Supposons, par exemple, que vous ayez besoin d'une capacité d'écriture supérieure à celle disponible pour une instance sans serveur. Dans ce cas, vous pouvez configurer le cluster avec un enregistreur provisionné de très grande taille tout en utilisant des instances sans serveur pour les lecteurs.

Supposons également que la charge de travail d'écriture de votre cluster varie, mais que la charge de travail de lecture soit stable. Dans ce cas, vous pouvez configurer le cluster avec un enregistreur sans serveur et un ou plusieurs lecteurs provisionnés.

Pour plus d'informations sur la création d'un cluster de bases de données à configuration mixte, consultez Utilisation d'Amazon Neptune sans serveur.

Définition des niveaux de promotion des instances Neptune sans serveur

Pour les clusters contenant plusieurs instances sans serveur ou une combinaison d'instances sans serveur et d'instances provisionnées, prêtez attention au paramètre de niveau de promotion pour chaque instance sans serveur. Ce paramètre contrôle davantage le comportement des instances sans serveur que celui des instances de base de données provisionnées.

Dans le AWS Management Console, vous spécifiez ce paramètre en utilisant la priorité Failover sous Configuration supplémentaire sur les pages Créer une base de données, Modifier une instance et Ajouter un lecteur. Cette propriété s'affiche pour les instances de base de données existantes dans la colonne facultative Niveau de priorité sur la page Bases de données. Cette propriété est également disponible sur la page de détails d'un cluster de bases de données ou d'une instance.

Pour les instances provisionnées, le choix du niveau 0 à 15 détermine uniquement l'ordre dans lequel Neptune choisit l'instance de lecteur à promouvoir en enregistreur lors d'une opération de basculement. Pour les instances de lecteur Neptune sans serveur, le numéro de niveau détermine également si la capacité de l'instance augmente pour correspondre à celle de l'instance d'enregistreur ou si elle se met à l'échelle indépendamment de celle-ci en fonction uniquement de sa propre charge de travail.

Les instances de lecteur Neptune sans serveur de niveau 0 ou 1 sont maintenues à une capacité minimale au moins égale à celle de l'instance d'enregistreur afin d'être prêtes à prendre le relais de l'enregistreur en cas de basculement. Si l'enregistreur est une instance provisionnée, Neptune estime la capacité sans serveur équivalente et utilise cette estimation comme capacité minimale pour l'instance de lecteur sans serveur.

Les instances de lecteur Neptune sans serveur des niveaux 2 à 15 n'ont pas la même contrainte de capacité minimale et peuvent faire l'objet d'une mise à l'échelle indépendamment de l'enregistreur. Lorsqu'elles sont inactives, leur capacité est réduite à la valeur NCU minimale spécifiée dans la plage de capacité du cluster. Cela peut toutefois poser des problèmes si la charge de travail de lecture fait l'objet d'une hausse soudaine.

Assurer l'alignement entre la capacité des lecteurs et la capacité de l'enregistreur

Il est important de vous assurer que les instances de lecteur peuvent suivre le rythme de l'instance d'enregistreur, afin d'éviter un retard de réplication excessif. Cela est particulièrement préoccupant dans deux situations, où les instances de lecteur sans serveur ne sont pas automatiquement mises à l'échelle en synchronisation avec l'instance d'enregistreur :

  • Lorsque l'enregistreur est provisionné et que les lecteurs sont sans serveur.

  • Lorsque l'enregistreur est sans serveur et que les lecteurs sans serveur sont aux niveaux de promotion 2 à 15.

Dans les deux cas, définissez la capacité minimale sans serveur pour qu'elle corresponde à la capacité d'enregistreur attendue, afin de garantir que les opérations de lecture n'expirent pas et ne provoquent pas de redémarrages potentiels. Dans le cas d'une instance d'enregistreur provisionnée, définissez la capacité minimale pour qu'elle corresponde à celle de l'instance provisionnée. Dans le cas d'un enregistreur sans serveur, le paramètre optimal peut être plus difficile à prévoir.

Comme la plage de capacité des instances est définie au niveau du cluster, toutes les instances sans serveur sont contrôlées par les mêmes paramètres de capacité minimale et maximale. Les instances de lecteur des niveaux 0 et 1 se mettent à l'échelle en synchronisation avec l'instance d'enregistreur, mais les instances des niveaux de promotion 2 à 15 se mettent à l'échelle indépendamment les unes des autres et de l'instance d'enregistreur, en fonction de leur charge de travail. Si vous définissez une capacité minimale trop faible, la capacité des instances inactives des niveaux 2 à 15 risque d'être trop réduite pour pouvoir être réaugmentée assez rapidement afin de faire face à une augmentation soudaine de l'activité de l'enregistreur.

Éviter de définir une valeur de délai d'expiration trop élevée

Il est possible que vous encouriez des coûts inattendus si vous définissez une valeur trop élevée pour le délai d'expiration des requêtes sur une instance sans serveur.

Sans paramètre de délai d'expiration raisonnable, vous risquez d'émettre par inadvertance une requête qui nécessite un type d'instance puissant et coûteux et qui continue de s'exécuter pendant très longtemps, entraînant ainsi des coûts que vous n'auriez jamais anticipés. Pour éviter cette situation, utilisez une valeur de délai d'expiration qui convient à la plupart des requêtes et qui n'implique que l'expiration de celles dont le délai est étonnamment long.

Ce principe est valable à la fois pour les valeurs de délai d'expiration générales définies à l'aide de paramètres et pour les valeurs de délai d'expiration par requête définies à l'aide d'indicateurs de requête.

Optimisation de la configuration de Neptune sans serveur

Si le cluster de bases de données Neptune sans serveur n'est pas adapté à la charge de travail qu'il exécute, vous remarquerez peut-être qu'il ne fonctionne pas de manière optimale. Vous pouvez ajuster le paramètre de capacité minimale et/ou maximale afin qu'il puisse effectuer une mise à l'échelle sans rencontrer de problèmes de mémoire.

  • Augmentez la valeur du paramètre de capacité minimale du cluster. Cette action peut remédier à la situation dans laquelle une instance inactive revient à une capacité qui dispose de moins de mémoire que ce dont votre application et les fonctionnalités activées ont besoin.

  • Augmentez la valeur du paramètre de capacité maximale du cluster. Cette action peut remédier à la situation dans laquelle la capacité d'une base de données occupée ne parvient pas à augmenter au point d'atteindre une capacité où la mémoire serait suffisante pour gérer la charge de travail ainsi que les fonctionnalités qui ont été activées et qui nécessitent beaucoup de mémoire.

  • Modifiez la charge de travail sur l'instance en question. Par exemple, vous pouvez ajouter des instances de lecteur au cluster afin de répartir la charge sur d'autres instances.

  • Ajustez les requêtes de votre application afin qu'elles utilisent moins de ressources.

  • Essayez d'utiliser une instance provisionnée dont la taille est supérieure au nombre maximal de NCU disponibles dans Neptune sans serveur, afin de déterminer si elle répond mieux aux exigences de mémoire et de CPU de la charge de travail.