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.
RDSConsidérations relatives à la connexion proxy
Configuration des paramètres de connexion
Pour ajuster le pool de connexions du RDS proxy, vous pouvez modifier les paramètres suivants :
IdleClientTimeout
Vous pouvez spécifier la durée pendant laquelle une connexion client peut être inactive avant que le proxy ne la ferme. La valeur par défaut est de 1 800 secondes (30 minutes).
Une connexion client est considérée comme inactive lorsque l'application ne soumet aucune nouvelle demande dans le délai défini après l'achèvement de la demande précédente. La connexion à la base de données sous-jacente reste ouverte et est renvoyée au regroupement de connexions. Ainsi, elle peut être réutilisée pour de nouvelles connexions client. Si vous souhaitez que le proxy supprime de manière proactive les connexions périmées, réduisez le délai d'expiration des connexions client inactives. Si votre charge de travail établit des connexions fréquentes avec le proxy, augmentez le délai d'inactivité des connexions client afin de réduire les coûts liés à l'établissement des connexions.
Ce paramètre est représenté par le champ Délai d'expiration de la connexion client inactive dans la RDS console et par le IdleClientTimeout
paramètre dans le AWS CLI et leAPI. Pour savoir comment modifier la valeur du champ Délai d'expiration de la connexion client inactive dans la RDS console, consultezAWS Management Console. Pour savoir comment modifier la valeur du IdleClientTimeout
paramètre, reportez-vous à la CLI commande modify-db-proxyou à l'APIopération M. odifyDBProxy
MaxConnectionsPercent
Vous pouvez limiter le nombre de connexions qu'un RDS proxy peut établir avec la base de données cible. Vous indiquez la limite, sous forme de pourcentage, des connexions maximales disponibles pour votre base de données. Ce paramètre est représenté par le champ Nombre maximum de connexions du pool de connexions dans la RDS console et par le MaxConnectionsPercent
paramètre dans le AWS CLI et leAPI.
La MaxConnectionsPercent
valeur est exprimée en pourcentage du max_connections
paramètre du cluster de de base de données utilisé par le groupe cible. Le proxy ne crée pas toutes ces connexions à l'avance. Ce paramètre permet au proxy d'établir ces connexions selon les besoins de la charge de travail.
Par exemple, pour une cible de base de données enregistrée max_connections
définie sur 1 000 et MaxConnectionsPercent
définie sur 95, le RDS proxy définit 950 connexions comme limite supérieure pour les connexions simultanées à cette cible de base de données.
Le fait que votre charge de travail atteigne le nombre maximum de connexions à la base de données autorisées a souvent pour effet secondaire d'augmenter la latence globale des requêtes, ainsi que d'augmenter la métrique DatabaseConnectionsBorrowLatency
. Vous pouvez surveiller les connexions à la base de données actuellement utilisées et le nombre total de connexions autorisées en comparant les métriques DatabaseConnections
et MaxDatabaseConnectionsAllowed
.
Pour définir ce paramètre, tenez compte des bonnes pratiques suivantes :
Prévoyez une marge de connexion suffisante pour les modifications du modèle de la charge de travail. Il est recommandé de définir le paramètre afin qu'il soit au moins 30 % supérieur à votre utilisation surveillée maximale récente. Comme le RDS proxy redistribue les quotas de connexion à la base de données sur plusieurs nœuds, les modifications de capacité interne peuvent nécessiter une marge de manœuvre d'au moins 30 % pour les connexions supplémentaires afin d'éviter une augmentation des latences d'emprunt.
RDSLe proxy réserve un certain nombre de connexions à une surveillance active afin de permettre un basculement rapide, le routage du trafic et les opérations internes. La métrique
MaxDatabaseConnectionsAllowed
n'inclut pas ces connexions réservées. Elle représente le nombre de connexions disponibles pour répondre à la charge de travail et peut être inférieure à la valeur dérivée du paramètreMaxConnectionsPercent
.Les
MaxConnectionsPercent
valeurs minimales recommandées sont les suivantes :db.t3.small : 100
db.t3.medium : 55
db.t3.large : 35
db.r3.large ou supérieur : 20
Si plusieurs instances cibles sont enregistrées auprès du RDS Proxy, comme un cluster Aurora avec des nœuds de lecture, définissez la valeur minimale en fonction de la plus petite instance enregistrée.
Pour savoir comment modifier la valeur du champ Nombre maximal de connexions du pool de connexions dans la RDS console, consultezAWS Management Console. Pour savoir comment modifier la valeur du MaxConnectionsPercent
paramètre, reportez-vous à la CLI commande modify-db-proxy-target-group ou à l'APIopération M. odifyDBProxy TargetGroup
Important
Si le cluster de base de données fait partie d'une base de données globale où le transfert d'écriture est activé, réduisez la valeur MaxConnectionsPercent
de votre proxy du quota alloué au transfert d'écriture. Le quota de transfert d'écriture est défini dans le paramètre de cluster de base de données aurora_fwd_writer_max_connections_pct
. Pour de plus amples informations sur le transfert d'écriture, veuillez consulter Utilisation du transfert d'écriture dans une base de données globale Amazon Aurora.
Pour plus d'informations sur les limites de connexion à la base de données, consultez les sections Nombre maximal de connexions à une SQL instance de base de données Aurora My et Nombre maximal de connexions à une instance de SQL base de données Aurora Postgre.
MaxIdleConnectionsPercent
Vous pouvez contrôler le nombre de connexions de base de données inactives que le RDS proxy peut conserver dans le pool de connexions. Par défaut, RDS Proxy considère qu'une connexion à la base de données de son pool est inactive lorsqu'aucune activité n'a été enregistrée pendant cinq minutes.
La MaxIdleConnectionsPercent
valeur est exprimée en pourcentage du max_connections
paramètre pour le groupe cible d'RDSinstances de base de données. La valeur par défaut est de 50 % de MaxConnectionsPercent
et la limite supérieure est la valeur de MaxConnectionsPercent
. Par exemple, siMaxConnectionsPercent
, est 80, la valeur par défaut de MaxIdleConnectionsPercent
est 40.
Une valeur élevée permet au proxy de laisser ouvert un pourcentage élevé de connexions inactives à la base de données. Avec une valeur faible, le proxy ferme un pourcentage élevé de connexions de base de données inactives. Si vos charges de travail sont imprévisibles, pensez à définir une valeur élevée pour MaxIdleConnectionsPercent
. Cela signifie que le RDS proxy peut faire face à des pics d'activité sans ouvrir beaucoup de nouvelles connexions à la base de données.
Ce paramètre est représenté par le MaxIdleConnectionsPercent
paramètre DBProxyTargetGroup
dans le AWS CLI et leAPI. Pour savoir comment modifier la valeur du MaxIdleConnectionsPercent
paramètre, reportez-vous à la CLI commande modify-db-proxy-target-group ou à l'APIopération M. odifyDBProxy TargetGroup
Pour plus d'informations sur les limites de connexion à la base de données, consultez les sections Nombre maximal de connexions à une SQL instance de base de données Aurora My et Nombre maximal de connexions à une instance de SQL base de données Aurora Postgre.
ConnectionBorrowTimeout
Vous pouvez choisir la durée pendant laquelle le RDS proxy attend qu'une connexion à la base de données dans le pool de connexions soit disponible avant de renvoyer une erreur de délai d'attente. La durée par défaut est de 120 secondes. Ce paramètre s'applique lorsque le nombre maximal de connexions est atteint et qu'aucune connexion n'est disponible dans le groupe de connexion. Cela s'applique également lorsqu'aucune instance de base de données appropriée n'est disponible pour traiter la demande, par exemple lorsqu'une opération de basculement est en cours. À l'aide de ce paramètre, vous pouvez définir le meilleur délai d'attente pour votre application sans modifier le délai d'expiration des requêtes dans le code de votre application.
Ce paramètre est représenté par le champ Connection borrow timeout dans la RDS console ou par le ConnectionBorrowTimeout
paramètre de DBProxyTargetGroup
dans le AWS CLI orAPI. Pour savoir comment modifier la valeur du champ Connection borrow timeout dans la RDS console, consultezAWS Management Console. Pour savoir comment modifier la valeur du ConnectionBorrowTimeout
paramètre, reportez-vous à la CLI commande modify-db-proxy-target-group ou à l'APIopération M. odifyDBProxy TargetGroup
Connexions client et connexions aux bases de données
Les connexions entre votre application et le RDS proxy sont appelées connexions client. Les connexions d'un proxy à la base de données sont appelées connexions à la base de données. Lorsque vous utilisez le RDS proxy, les connexions client se terminent au niveau du proxy tandis que les connexions à la base de données sont gérées dans le RDS proxy.
Le regroupement des connexions côté application peut offrir l'avantage de réduire l'établissement de connexions récurrentes entre votre application et RDS le proxy.
Tenez compte des aspects de configuration suivants avant d'implémenter un pool de connexions côté application :
-
Durée de vie maximale de la connexion client : le RDS proxy impose une durée de vie maximale des connexions client de 24 heures. Cette valeur n'est pas configurable. Configurez votre pool avec une durée de vie maximale de connexion inférieure à 24 heures afin d'éviter les interruptions inattendues de la connexion client.
-
Délai d'inactivité de la connexion client : le RDS proxy impose une durée d'inactivité maximale pour les connexions client. Configurez votre pool avec un délai d'inactivité inférieur au délai d'inactivité de votre connexion client défini pour le RDS proxy afin d'éviter les interruptions de connexion inattendues.
Le nombre maximum de connexions client configurées dans votre pool de connexions côté application ne doit pas nécessairement être limité au paramètre max_connections pour le proxy. RDS
Le regroupement des connexions client prolonge la durée de vie des connexions client. Si vos connexions sont épinglées, le regroupement des connexions client peut réduire l'efficacité du multiplexage. Les connexions client bloquées mais inactives dans le pool de connexions côté application continuent de conserver une connexion à la base de données et empêchent la réutilisation de la connexion à la base de données par d'autres connexions client. Consultez les journaux de votre proxy pour vérifier si vos connexions sont épinglées.
Note
RDSLe proxy ferme les connexions à la base de données quelque temps après 24 heures lorsqu'elles ne sont plus utilisées. Le proxy effectue cette action indépendamment de la valeur du paramètre de connexions inactives maximum.