Considérations relatives à la connexion au proxy RDS - Amazon Relational Database Service

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.

Considérations relatives à la connexion au proxy RDS

Configuration des paramètres de connexion

Pour ajuster le regroupement de connexion 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 console RDS et par le IdleClientTimeout paramètre dans l'API AWS CLI et. Pour savoir comment modifier la valeur du champ Idle client connection timeout (Délai d'inactivité de la connexion client) dans la console RDS, veuillez consulter AWS Management Console. Pour savoir comment modifier la valeur du IdleClientTimeout paramètre, consultez la commande CLI modify-db-proxyou l'opération Modify de l'APIDBProxy.

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 console RDS et par le MaxConnectionsPercent paramètre dans l'API AWS CLI et.

La valeur MaxConnectionsPercent est exprimée en pourcentage du paramètre max_connections pour l'instance de base de données RDS 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 avec max_connections définies sur 1 000 et MaxConnectionsPercent défini sur 95, RDS Proxy définit 950 connexions comme la 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 RDS Proxy redistribue les quotas de connexion à la base de données entre plusieurs nœuds, les modifications de la capacité interne peuvent nécessiter une marge d'au moins 30 % pour les connexions supplémentaires afin d'éviter des latences d'emprunt plus importantes.

  • RDS Proxy réserve un certain nombre de connexions pour 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ètre MaxConnectionsPercent.

    Valeurs MaxConnectionsPercent minimales recommandées

    • db.t3.small : 30

    • db.t3.medium ou supérieur : 20

Pour savoir comment modifier la valeur du champ Connection pool maximum connections (Connexions maximales au groupe de connexion) dans la console RDS, veuillez consulter AWS Management Console. Pour savoir comment modifier la valeur du MaxConnectionsPercent paramètre, consultez la commande CLI modify-db-proxy-target-group ou l'opération d'API DBProxyTargetGroupModify.

Pour en savoir plus sur les limites de connexion aux bases de données, veuillez consulter Nombre maximal de connexions aux bases de données.

MaxIdleConnectionsPercent

Vous pouvez contrôler le nombre de connexions aux bases de données inactives que RDS Proxy peut conserver dans le groupe de connexion. Par défaut, le proxy RDS 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'instances de base de données RDS. 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. Si la valeur de MaxConnectionsPercent n'est pas spécifiée, alors pour RDS pour SQL Server, elle MaxIdleConnectionsPercent est 5, et pour tous les autres moteurs, la valeur par défaut est 50.

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 RDS Proxy peut prendre en charge les vagues d'activité sans ouvrir de nombreuses nouvelles connexions aux bases de données.

Ce paramètre est représenté par le MaxIdleConnectionsPercent paramètre de DBProxyTargetGroup in the AWS CLI et dans l'API. Pour savoir comment modifier la valeur du MaxIdleConnectionsPercent paramètre, consultez la commande CLI modify-db-proxy-target-group ou l'opération d'API DBProxyTargetGroupModify.

Pour en savoir plus sur les limites de connexion aux bases de données, veuillez consulter Nombre maximal de connexions aux bases de données.

ConnectionBorrowTimeout

Vous pouvez choisir combien de temps le RDS Proxy doit attendre la disponibilité d'utilisation d'une connexion à une base de données dans le groupe de connexion avant de renvoyer une erreur de dépassement 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'attente des requêtes dans le code de votre application.

Ce paramètre est représenté par le champ Connection borrow timeout dans la console RDS ou par le ConnectionBorrowTimeout paramètre de DBProxyTargetGroup l'API AWS CLI or. Pour savoir comment modifier la valeur du champ Connection borrow timeout (Délai d'expiration d'emprunt de connexion) dans la console RDS, veuillez consulter AWS Management Console. Pour savoir comment modifier la valeur du ConnectionBorrowTimeout paramètre, consultez la commande CLI modify-db-proxy-target-group ou l'opération d'API DBProxyTargetGroupModify.

Connexions client et connexions aux bases de données

Les connexions entre votre application et 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 RDS Proxy, les connexions client s'arrêtent au niveau du proxy tandis que les connexions à la base de données sont gérées au sein de 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 le proxy RDS.

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 proxy RDS impose une durée de vie maximale de 24 heures aux connexions client. 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 proxy RDS impose une durée d'inactivité maximale pour les connexions client. Configurez votre regroupement avec un délai d'inactivité inférieur au délai d'inactivité de votre connexion client pour 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

RDS Proxy ferme les connexions à la base de données 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.