

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.

# Proxy Amazon RDS
<a name="rds-proxy"></a>

Le proxy Amazon RDS vous permet d’autoriser vos applications à grouper et à partager des connexions de bases de données pour améliorer leur capacité de mise à l’échelle. Le proxy RDS rend les applications plus résistantes aux échecs de base de données en les connectant automatiquement à une instance de base de données de secours tout en préservant les connexions des applications. En utilisant le proxy RDS, vous pouvez appliquer l'authentification Gestion des identités et des accès AWS (IAM) aux clients qui se connectent au proxy, et le proxy peut se connecter aux bases de données à l'aide de l'authentification de base de données IAM ou des informations d'identification stockées dans. AWS Secrets Manager

![\[Vue d'ensemble de la façon dont les applications se connectent au proxy RDS\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/Proxy-Overview.png)


 Avec le proxy RDS, vous pouvez gérer des pics imprévisibles de trafic des bases de données. Ces pics peuvent également occasionner des problèmes liés à la surallocation de connexions ou à la création de connexions à un rythme élevé. Le proxy RDS établit un groupe de connexions de bases de données et réutilise les connexions de ce groupe. Cette approche évite la surcharge de mémoire et d’UC liée à l’ouverture d’une nouvelle connexion de base de données à chaque fois. Pour protéger une base de données contre cette congestion, vous pouvez contrôler le nombre de connexions créées. 

 Le proxy RDS met en file d’attente ou limite les connexions des applications qui ne peuvent pas être servies immédiatement à partir du groupe de connexions. Bien que les latences puissent augmenter, votre application peut continuer à évoluer sans échouer brusquement ou surcharger la base de données. Si les demandes de connexion dépassent les limites que vous définissez, le proxy RDS rejette les connexions des applications (en d’autres termes, il déleste la charge). Parallèlement, il conserve des performances prévisibles pour la charge pouvant être desservie par RDS avec la capacité disponible. 

![\[Vue détaillée de la manière dont les applications se connectent au proxy RDS et des types de connexions concernés.\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/Proxy-detail.png)


 Vous pouvez réduire la surcharge pour traiter des informations d’identification et établir une connexion sécurisée pour chaque nouvelle connexion. Le proxy RDS peut gérer une partie de ce travail pour le compte de la base de données. 

 Le proxy RDS est entièrement compatible avec les versions de moteur qu’il prend en charge. Vous pouvez activer le proxy RDS pour la plupart des applications sans modifier le code. 

**Topics**
+ [Disponibilité des régions et des versions](#rds-proxy.RegionVersionAvailability)
+ [Quotas et limites pour le proxy RDS](#rds-proxy.limitations)
+ [Planification de l’emplacement où utiliser le proxy RDS](rds-proxy-planning.md)
+ [Concepts et terminologie RDS Proxy](rds-proxy.howitworks.md)
+ [Démarrage avec le proxy RDS](rds-proxy-setup.md)
+ [Gestion d’un RDS Proxy](rds-proxy-managing.md)
+ [Utilisation des points de terminaison du proxy Amazon RDS](rds-proxy-endpoints.md)
+ [Surveillance des métriques RDS Proxy avec Amazon CloudWatch](rds-proxy.monitoring.md)
+ [Utilisation des des événements RDS Proxy](rds-proxy.events.md)
+ [Résolution des problèmes liés au proxy RDS](rds-proxy.troubleshooting.md)
+ [Utilisation de RDS Proxy avec AWS CloudFormation](rds-proxy-cfn.md)

## Disponibilité des régions et des versions
<a name="rds-proxy.RegionVersionAvailability"></a>

La disponibilité et la prise en charge des fonctionnalités varient selon les versions spécifiques de chaque moteur de base de données, et selon les Régions AWS. Pour obtenir plus d’informations sur la disponibilité des versions et des régions d’Amazon RDS avec le proxy RDS, consultez [Régions et moteurs de base de données pris en charge pour Proxy Amazon RDS](Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSProxy.md).

## Quotas et limites pour le proxy RDS
<a name="rds-proxy.limitations"></a>

 Voici les quotas et les limites qui s’appliquent au proxy RDS : 
+  Chaque Compte AWS identifiant est limité à 20 proxies. Si votre application nécessite davantage de proxies, demandez une augmentation via la page **Service Quotas** dans la AWS Management Console. Sur la page **Service Quotas**, sélectionnez **Amazon Relational Database Service (Amazon RDS**) et **localisez** les proxys pour demander une augmentation de quota. AWS peut automatiquement augmenter votre quota ou attendre l’examen de votre demande par Support.
+ Chaque proxy peut avoir jusqu'à 200 secrets associés à Secrets Manager, limitant ainsi les connexions à un maximum de 200 comptes utilisateurs différents lors de l'utilisation de secrets. 
+  Chaque proxy possède un point de terminaison par défaut qui est provisionné sur deux zones de disponibilité uniquement sélectionnées parmi les sous-réseaux configurés du proxy. Si plusieurs sous-réseaux AZs sont configurés, deux seront sélectionnés. 
+  Vous pouvez ajouter jusqu'à 20 points de terminaison supplémentaires pour chaque proxy. Ces points de terminaison supplémentaires sont approvisionnés dans toutes les zones de disponibilité spécifiées lors de leur création. Vous pouvez créer, afficher, modifier et supprimer ces points de terminaison. 
+ Pour les instances de base de données RDS dans les configurations de réplication, vous pouvez associer un proxy uniquement à l’instance de base de données du rédacteur, mais pas à un réplica en lecture.
+ Votre proxy RDS doit se trouver dans le même cloud privé virtuel (VPC) que la base de données. Le proxy peut ne pas être accessible au public, contrairement à la base de données. Par exemple, si vous effectuez un prototypage de votre base de données sur un hôte local, vous ne pouvez pas vous connecter à votre proxy à moins de mettre en place les exigences de réseau nécessaires pour autoriser la connexion au proxy. C’est le cas, car votre hôte local se trouve en dehors du VPC du proxy. 
+  Vous ne pouvez pas utiliser le proxy RDS avec un VPC dont la location est définie sur `dedicated`. 
+  Vous ne pouvez pas utiliser le proxy RDS dans un VPC dont les contrôles `Enforce Mode` de chiffrement sont activés. 
+ Pour les types de réseaux de points de IPv6 terminaison, configurez votre VPC et vos sous-réseaux pour qu'ils soient pris en charge uniquement. IPv6 Pour les deux types de réseaux de connexion IPv4 et ceux de connexion IPv6 cible, configurez votre VPC et vos sous-réseaux pour qu'ils prennent en charge le mode double pile. 
+ Si vous utilisez le proxy RDS avec un sur lequel l'authentification IAM est activée, le proxy peut se connecter à la base de données à l'aide de l'authentification IAM ou des informations d'identification stockées dans Secrets Manager. Les clients qui se connectent au proxy doivent s'authentifier à l'aide des informations d'identification IAM. Pour obtenir des instructions de configuration détaillées, consultez [Configuration des informations d'identification de base de données pour le proxy RDS](rds-proxy-secrets-arns.md) et [Configuration de l’authentification IAM pour RDS Proxy](rds-proxy-iam-setup.md)
+  Vous ne pouvez pas utiliser le proxy RDS avec DNS personnalisé lorsque vous utilisez la validation du nom d’hôte SSL. 
+  Chaque proxy peut être associé à une instance unique. Toutefois, vous pouvez associer plusieurs proxies à la même instance .
+ Le proxy épingle la session à la connexion en cours si la taille de texte de l’instruction est supérieure à 16 ko.
+ Certaines régions ont des restrictions de zone de disponibilité (AZ) à prendre en compte lors de la création de votre proxy. La région USA Est (Virginie du Nord) ne prend pas en charge le proxy RDS dans la zone de disponibilité `use1-az3`. La région USA Ouest (Californie du Nord) ne prend pas en charge le proxy RDS dans la zone de disponibilité `usw1-az2`. Lorsque vous sélectionnez des sous-réseaux lors de la création de votre proxy, assurez-vous de ne pas sélectionner de sous-réseaux dans les zones de disponibilité mentionnées ci-dessus. 
+ Actuellement, le proxy RDS ne prend en charge aucune clé de contexte de condition globale.

  Pour plus d’informations sur les clés de contexte de condition globale, consultez [Clés de contexte de condition globales AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) dans le *Guide de l’utilisateur IAM*.
+ Vous ne pouvez pas utiliser le proxy RDS avec RDS Custom for SQL Server.
+ Pour refléter toute modification du groupe de paramètres de base de données sur votre proxy, un redémarrage de l’instance est nécessaire même si vous avez choisi d’appliquer vos modifications immédiatement. Pour les paramètres au niveau du cluster, un redémarrage à l’échelle du cluster est requis.
+ Votre proxy crée automatiquement l’utilisateur de base de données `rdsproxyadmin` lorsque vous enregistrez une cible proxy. Il s’agit d’un utilisateur protégé essentiel à la fonctionnalité du proxy. Vous devez éviter d’altérer l’utilisateur `rdsproxyadmin` de quelque manière que ce soit. La suppression ou la modification de l’utilisateur `rdsproxyadmin` ou de ses autorisations peut entraîner l’indisponibilité totale du proxy pour votre application.

Pour connaître les limites supplémentaires pour chaque moteur de base de données, consultez les sections suivantes :
+ [Limites supplémentaires pour RDS for MariaDB](#rds-proxy.limitations-mdb)
+ [Limites supplémentaires pour RDS for Microsoft SQL Server](#rds-proxy.limitations-ms)
+ [Limites supplémentaires pour RDS for MySQL](#rds-proxy.limitations-my)
+ [Limites supplémentaires pour RDS pour PostgreSQL](#rds-proxy.limitations-pg)

### Limites supplémentaires pour RDS for MariaDB
<a name="rds-proxy.limitations-mdb"></a>

 Les limites supplémentaires suivantes s’appliquent au proxy RDS avec RDS for MariaDB :
+  Actuellement, tous les proxies écoutent sur le port 3306 pour MariaDB. Les proxys se connectent toujours à votre base de données à l’aide du port spécifié dans les paramètres de la base de données. 
+ Vous ne pouvez pas utiliser le proxy RDS avec des bases de données MariaDB autogérées dans des instances Amazon EC2.
+ Vous ne pouvez pas utiliser le proxy RDS avec une instance de base de données MariaDB dont le paramètre `read_only` dans son groupe de paramètres de base de données est défini sur `1`.
+ Le proxy RDS ne prend pas en charge le mode compressé MariaDB. Par exemple, il ne prend pas en charge la compression utilisée par les options `--compress` ou `-C` de la commande `mysql`.
+ Certaines instructions et fonctions SQL peuvent modifier l’état de connexion sans provoquer d’épinglage. Pour connaître le comportement d’épinglage le plus récent, consultez [Contournement de l’épinglage d’un proxy RDS](rds-proxy-pinning.md).
+ Le proxy RDS ne prend pas en charge le plugin `auth_ed25519` MariaDB.
+ Le proxy RDS ne prend pas en charge le protocole TLS (Transport Layer Security) version 1.3 pour les bases de données MariaDB.
+ Les connexions à la base de données qui traitent une commande `GET DIAGNOSTIC`peuvent renvoyer des informations inexactes lorsque le proxy RDS réutilise la même connexion à la base de données pour exécuter une autre requête. Cela peut se produire quand le proxy RDS multiplexe les connexions à la base de données. Pour plus d’informations, consultez [Présentation des concepts RDS Proxy](rds-proxy.howitworks.md#rds-proxy-overview).
+ Le proxy RDS ne prend actuellement pas en charge l’option `caching_sha2_password` pour `ClientPasswordAuthType` for MariaDB.

**Important**  
 Pour les proxies associés aux bases de données MariaDB, ne définissez pas le paramètre de configuration `sql_auto_is_null` sur `true` ou sur une valeur différente de zéro dans la requête d’initialisation. Cela pourrait entraîner un comportement incorrect de l’application. 

### Limites supplémentaires pour RDS for Microsoft SQL Server
<a name="rds-proxy.limitations-ms"></a>

 Les limitations supplémentaires suivantes s’appliquent au proxy RDS avec les bases de données RDS for Microsoft SQL Server :
+ Le nombre de secrets de Secrets Manager que vous devez créer pour un proxy dépend du classement utilisé par votre instance de base de données. Par exemple, supposons que votre instance de base de données utilise un classement sensible à la casse. Si votre application accepte à la fois « Admin » et « admin », votre proxy a besoin de deux secrets distincts. Pour plus d’informations sur le classement SQL Server, consultez la documentation [Microsoft SQL Server](https://docs.microsoft.com/en-us/sql/relational-databases/collations/collation-and-unicode-support?view=sql-server-ver16).
+ Le proxy RDS ne prend pas en charge les connexions qui utilisent Active Directory.
+ Vous ne pouvez pas utiliser l’authentification IAM avec des clients qui ne prennent pas en charge les propriétés des jetons. Pour plus d’informations, consultez [Considérations relatives à la connexion à Microsoft SQL Server](rds-proxy-connecting.md#rds-proxy-connecting-sqlserver).
+ Les résultats `@@IDENTITY`, `@@ROWCOUNT` et `SCOPE_IDENTITY` ne sont pas toujours précis. Pour contourner ce problème, récupérez leurs valeurs dans la même instruction de session pour vous assurer qu’elles renvoient les informations correctes.
+ Si la connexion utilise plusieurs ensembles de résultats actifs (MARS), le proxy RDS n’exécute pas les requêtes d’initialisation. Pour plus d’informations, consultez la documentation [Microsoft SQL Server](https://docs.microsoft.com/en-us/sql/relational-databases/native-client/features/using-multiple-active-result-sets-mars?view=sql-server-ver16).
+ Actuellement, le proxy RDS ne prend pas en charge les instances de base de données RDS for SQL Server exécutées sur la version majeure de *SQL Server 2022*.
+ Le proxy RDS ne prend pas en charge les instances de base de données RDS for SQL Server exécutées sur la version majeure de *SQL Server 2014*.
+ Le proxy RDS ne prend pas en charge les applications clientes qui ne peuvent pas gérer plusieurs messages de réponse dans un seul enregistrement TLS.
+ Le proxy RDS ne prend pas en charge end-to-end l'authentification IAM pour RDS pour SQL Server.

### Limites supplémentaires pour RDS for MySQL
<a name="rds-proxy.limitations-my"></a>

 Les limitations supplémentaires suivantes s’appliquent au proxy RDS avec RDS for MySQL :
+ La prise en charge du proxy RDS pour l’authentification `caching_sha2_password` nécessite une connexion sécurisée (TLS).
+ La prise en charge du proxy RDS pour `caching_sha2_password` est connue pour présenter des problèmes de compatibilité avec certaines versions du pilote go-sql.
+ Lorsque vous utilisez le pilote MySQL 8.4 C, l’API `mysql_stmt_bind_named_param` peut former des paquets mal formés si le nombre de paramètres dépasse le nombre d’espaces réservés dans une instruction préparée. Cela entraîne des réponses incorrectes. Pour plus d’informations, consultez [Signalement de bogue MySQL](https://bugs.mysql.com/bug.php?id=116860&thanks=4).
+ Actuellement, tous les proxies écoutent sur le port 3306 pour MySQL. Les proxys se connectent toujours à votre base de données à l’aide du port spécifié dans les paramètres de la base de données. 
+  Vous ne pouvez pas utiliser le proxy RDS avec des bases de données MySQL autogérées dans des instances EC2.
+  Vous ne pouvez pas utiliser le proxy RDS avec une instance de base de données RDS for MySQL dont le paramètre `read_only` dans son groupe de paramètres de base de données est défini sur `1`.
+ Le proxy RDSvne prend pas en charge le mode compressé de MySQL. Par exemple, il ne prend pas en charge la compression utilisée par les options `--compress` ou `-C` de la commande `mysql`.
+ Les connexions à la base de données qui traitent une commande `GET DIAGNOSTIC`peuvent renvoyer des informations inexactes lorsque le proxy RDS réutilise la même connexion à la base de données pour exécuter une autre requête. Cela peut se produire quand le proxy RDS multiplexe les connexions à la base de données.
+ Certaines instructions et fonctions SQL, telles que `SET LOCAL`, peuvent modifier l’état de connexion sans provoquer d’épinglage. Pour connaître le comportement d’épinglage le plus récent, consultez [Contournement de l’épinglage d’un proxy RDS](rds-proxy-pinning.md).
+ L’utilisation de la fonction `ROW_COUNT()` dans une requête à instructions multiples n’est pas prise en charge.
+ Le proxy RDS ne prend pas en charge les applications clientes qui ne peuvent pas gérer plusieurs messages de réponse dans un seul enregistrement TLS.
+ Le proxy RDS ne prend pas en charge les mots de passe doubles MySQL.
+ Le proxy RDS peut ne pas fonctionner comme prévu lorsque vous configurez le paramètre `init_connect` dans votre groupe de paramètres de base de données RDS pour définir les variables d’état de session. Définissez plutôt la requête d’initialisation pour que votre proxy exécute les instructions d’initialisation de session lorsque vous utilisez le proxy pour vous connecter à votre base de données.

**Important**  
 Pour les proxies associés aux bases de données MySQL, ne définissez pas le paramètre de configuration `sql_auto_is_null` sur `true` ou sur une valeur différente de zéro dans la requête d’initialisation. Cela pourrait entraîner un comportement incorrect de l’application. 

### Limites supplémentaires pour RDS pour PostgreSQL
<a name="rds-proxy.limitations-pg"></a>

 Les limitations supplémentaires suivantes s’appliquent au proxy RDS avec les bases de données RDS pour PostgreSQL :
+ Le proxy RDS ne prend pas en charge les filtres d’épinglage de session pour PostgreSQL.
+  Actuellement, tous des proxies écoutent sur le port 5432 pour PostgreSQL.
+ Pour PostgreSQL, RDS Proxy ne prend actuellement pas en charge l’annulation d’une requête d’un client en émettant un `CancelRequest`. C’est le cas par exemple lorsque vous annulez une requête longue dans une session psql interactive à l’aide de Ctrl\$1C. 
+  Les résultats de la fonctionnalité PostgreSQL [lastval](https://www.postgresql.org/docs/current/functions-sequence.html) ne sont pas toujours précis. Pour contourner ce problème, utilisez l’instruction [INSERT](https://www.postgresql.org/docs/current/sql-insert.html) avec la clause `RETURNING`.
+ Le proxy RDS ne prend actuellement pas en charge le mode de réplication de streaming.
+ Avec RDS pour PostgreSQL 16, les modifications apportées à la valeur `scram_iterations` ont un impact exclusif sur le processus d’authentification entre le proxy et la base de données. Plus précisément, si vous le configurez`scram-sha-256`, `ClientPasswordAuthType` les personnalisations apportées à la `scram_iterations` valeur n'ont aucune influence sur l'authentification par client-to-proxy mot de passe. Au lieu de cela, la valeur d'itération pour l'authentification par client-to-proxy mot de passe est fixée à 4096.
+ La `postgres` base de données par défaut doit exister sur l'instance RDS pour PostgreSQL pour que le proxy RDS fonctionne. Ne supprimez pas cette base de données même si votre application utilise des bases de données différentes.
+ Si vous utilisez `ALTER ROLE` pour modifier le rôle de l’utilisateur avec `SET ROLE`, les connexions suivantes entre cet utilisateur et le proxy risquent de ne pas utiliser ce paramètre de rôle, si ces connexions sont épinglées. Pour éviter cela, lorsque vous utilisez un proxy, utilisez `SET ROLE` dans la requête d’initialisation du proxy. Pour plus d’informations, consultez **Requête d’initialisation** dans [Création d’un proxy pour Amazon RDS](rds-proxy-creating.md).

**Important**  
Pour des proxies existants avec des bases de données PostgreSQL, si vous modifiez l’authentification de la base de données pour utiliser uniquement `SCRAM`, le proxy devient indisponible pendant 60 secondes maximum. Pour éviter ce problème, effectuez l’une des actions suivantes :  
Veillez à ce que la base de données permette à la fois l’authentification `SCRAM` et `MD5`.
Pour utiliser uniquement l’authentification `SCRAM`, créez un nouveau proxy, migrez le trafic de votre application vers ce nouveau proxy, puis supprimez le proxy précédemment associé à la base de données.

# Planification de l’emplacement où utiliser le proxy RDS
<a name="rds-proxy-planning"></a>

 Vous pouvez déterminer les instances de base de données, clusters et applications qui pourraient bénéficier le plus de l’utilisation du proxy RDS. Pour ce faire, tenez compte des facteurs suivants : 
+  Il est judicieux d’associer à un proxy toute instance qui rencontre des erreurs liées à un « nombre de connexions trop élevé ». Cela se caractérise souvent par une valeur élevée de la `ConnectionAttempts` CloudWatch métrique. Le proxy permet aux applications d’ouvrir de nombreuses connexions client, tandis que le proxy gère un plus petit nombre de connexions à long terme à l’instance. 
+  Pour les d'instances de base de données qui utilisent des classes d' AWS instance plus petites, telles que T2 ou T3, l'utilisation d'un proxy peut permettre d'éviter certaines out-of-memory conditions. Il peut également contribuer à réduire la surcharge de l’UC lors de l’établissement des connexions. Ces conditions peuvent se produire lorsque vous faites face à un grand nombre de connexions. 
+  Vous pouvez surveiller certaines CloudWatch métriques Amazon pour déterminer si un d'instances de base de données approche certains types de limites. Ces limites concernent le nombre de connexions et la mémoire associées à la gestion des connexions. Vous pouvez également surveiller certaines CloudWatch mesures pour déterminer si un d'instances de base de données gère de nombreuses connexions de courte durée. L’ouverture et la fermeture de telles connexions peuvent entraîner une surcharge de performances sur votre base de données. Pour en savoir plus sur les métriques à surveiller, consultez [Surveillance des métriques RDS Proxy avec Amazon CloudWatchSurveillance de RDS Proxy avec CloudWatch](rds-proxy.monitoring.md). 
+  AWS Lambda les fonctions peuvent également être de bons candidats pour l'utilisation d'un proxy. Ces fonctions réalisent fréquemment des connexions de base de données courtes qui bénéficient du regroupement de connexions offert par le proxy RDS. Vous pouvez profiter de toute authentification IAM dont vous disposez déjà pour les fonctions Lambda, plutôt que de gérer les informations d’identification de base de données dans votre code d’application Lambda. 
+  Les applications qui ouvrent et ferment généralement un grand nombre de connexions à des bases de données et qui ne disposent pas de mécanismes intégrés de regroupement des connexions sont de bons candidats pour l’utilisation d’un proxy. 
+  Il est souvent judicieux d’utiliser les applications qui maintiennent un grand nombre de connexions ouvertes pendant de longues périodes avec un proxy. Les applications dans des secteurs tels que le logiciel en tant que service (SaaS) ou le e-commerce réduisent souvent la latence pour les demandes de base de données en laissant les connexions ouvertes. Avec le proxy RDS, une application peut garder davantage de connexions ouvertes que lorsqu’elle se connecte directement à l’instance de base de données. 
+  Vous n'avez peut-être pas adopté l'authentification IAM et Secrets Manager en raison de la complexité de la configuration de cette authentification pour tous les d'instances de base de données. Le proxy peut appliquer les politiques d’authentification relatives aux connexions client pour des applications spécifiques. Vous pouvez profiter de toute authentification IAM dont vous disposez déjà pour les fonctions Lambda, plutôt que de gérer les informations d’identification de base de données dans votre code d’application Lambda. 
+  Le proxy RDS peut aider à rendre les applications plus résilientes et plus transparentes face aux pannes de bases de données. Le proxy RDS contourne les caches du système de nom de domaine (DNS) afin de réduire les temps de basculement jusqu’à 66 % pour les instances de base de données Amazon RDS Multi-AZ. Le proxy RDS achemine automatiquement le trafic vers une nouvelle instance de base de données tout en préservant les connexions aux applications. Cela rend les basculements plus transparents pour les applications.

# Concepts et terminologie RDS Proxy
<a name="rds-proxy.howitworks"></a>

 Vous pouvez simplifier la gestion des connexions pour vos instances de base de données Amazon RDS à l’aide de RDS Proxy. 

 RDS Proxy gère le trafic réseau entre l’application cliente et la base de données. Il le fait d’abord de manière active en comprenant le protocole de la base de données. Il ajuste ensuite son comportement en fonction des opérations SQL de votre application et des jeux de résultats de la base de données. 

 RDS Proxy réduit la charge de mémoire et d’UC pour la gestion des connexions sur votre base de données. La base de données a besoin de moins de mémoire et de ressources de l’UC lorsque les applications ouvrent de nombreuses connexions simultanées. La logique n’est pas non plus nécessaire dans vos applications pour fermer et rouvrir les connexions qui restent inactives pendant longtemps. De même, il faut logique d’application moindre pour rétablir les connexions en cas de problème de base de données. 

 L'infrastructure du proxy RDS est hautement disponible et déployée sur plusieurs zones de disponibilité (AZs). Le calcul, la mémoire et le stockage de RDS Proxy sont indépendants de votre instance de base de données RDS. Cette séparation permet de réduire la surcharge sur vos serveurs de base de données, afin qu’ils puissent dédier leurs ressources à la gestion des charges de travail de base de données. Les ressources de calcul de RDS Proxy sont sans serveur et automatiquement mises à l’échelle en fonction de la charge de travail de votre base de données. 

**Topics**
+ [Présentation des concepts RDS Proxy](#rds-proxy-overview)
+ [Regroupement de connexions](#rds-proxy-connection-pooling)
+ [Sécurité RDS Proxy](#rds-proxy-security)
+ [Basculement](#rds-proxy-failover)
+ [Transactions](#rds-proxy-transactions)

## Présentation des concepts RDS Proxy
<a name="rds-proxy-overview"></a>

 RDS Proxy gère l’infrastructure pour effectuer le regroupement de connexions et les autres fonctions décrites dans les sections qui suivent. Vous voyez les serveurs proxy qui figurent dans la console RDS sur la page **Proxys**. 

Chaque proxy gère les connexions à une seule instance de base de données RDS. Le proxy détermine automatiquement l’instance d’enregistreur actuelle pour l’instance ou le cluster de bases de données multi-AZ RDS.

 Les connexions qu’un proxy garde ouvertes et disponibles pour vos applications de base de données constituent le *groupe de connexions*. 

 Par défaut, RDS Proxy peut réutiliser une connexion après chaque transaction dans votre session. « *multiplexage* » est le terme utilisé pour cette réutilisation au niveau de la transaction. Lorsque RDS Proxy supprime temporairement une connexion du groupe de connexions pour la réutiliser, cette opération est appelée un *emprunt* de connexion. lorsque l’opération peut être effectuée sans risque, RDS Proxy renvoie cette connexion au groupe de connexions. 

 Dans certains cas, RDS Proxy ne peut pas s’assurer que la réutilisation d’une connexion à une base de données en dehors de la session en cours peut être effectuée sans risque. Dans ce cas, il maintient la session sur la même connexion jusqu’à la fin. Ce comportement de secours est appelé *épinglage*. 

Un proxy a un point de terminaison par défaut. Vous vous connectez à ce point de terminaison lorsque vous utilisez une instance de base de données RDS. Vous le faites au lieu de vous connecter au read/write point de terminaison qui se connecte directement au d'instances. Pour les clusters de base de de base de données RDS), vous pouvez également créer des points de terminaison supplémentaires read/write en lecture seule. Pour de plus amples informations, veuillez consulter [Présentation des points de terminaison proxy](rds-proxy-endpoints.md#rds-proxy-endpoints-overview). 

 Par exemple, vous pouvez toujours vous connecter au point de terminaison du cluster pour read/write les connexions sans regroupement de connexions. Vous pouvez toujours vous connecter au point de terminaison du lecteur pour des connexions en lecture seule à charge équilibrée. Vous pouvez toujours vous connecter aux points de terminaison de l’instance pour le diagnostic et le dépannage d’instances de base de données spécifiques d’un cluster. Si vous utilisez d'autres AWS services, par exemple pour vous connecter AWS Lambda aux bases de données RDS, modifiez leurs paramètres de connexion pour utiliser le point de terminaison du proxy. Par exemple, vous indiquez au point de terminaison proxy de permettre aux fonctions de Lambda d’accéder à votre base de données tout en profitant des fonctionnalités de RDS Proxy. 

 Chaque proxy contient un groupe cible. Ce *groupe cible* incarne l’instance de base de données RDS à laquelle le proxy peut se connecter. L’instance de base de données RDS associée à un proxy est appelée *cibles* de ce proxy. Pour des raisons pratiques, lorsque vous créez un proxy via la console, RDS Proxy crée également le groupe cible correspondant et enregistre automatiquement les cibles associées. 

 Une *famille de moteurs* est un ensemble associé de moteurs de base de données qui utilisent le même protocole de base de données. Vous choisissez la famille de moteurs pour chaque proxy que vous créez. 

## Regroupement de connexions
<a name="rds-proxy-connection-pooling"></a>

Chaque proxy effectue le regroupement de connexions séparément pour l’instance d’enregistreur et de lecteur de sa base de données RDS associée. Le *regroupement de connexions* est une optimisation qui réduit la surcharge associée à l’ouverture et à la fermeture des connexions, tout en maintenant plusieurs connexions ouvertes simultanément. Cette surcharge inclut la mémoire nécessaire pour gérer chaque nouvelle connexion. Cela implique également une surcharge du processeur pour fermer chaque connexion et en ouvrir une nouvelle. Les exemples incluent l'établissement de contacts Security/Secure TLS/SSL (Transport Layer Sockets Layer), l'authentification, les capacités de négociation, etc. Le regroupement de connexions simplifie la logique de votre application. Vous n’avez pas besoin d’écrire de code d’application pour minimiser le nombre de connexions ouvertes simultanées. 

 Chaque proxy effectue aussi le multiplexage de connexion, également connu sous le nom de réutilisation de connexion. Grâce au *multiplexage*, RDS Proxy exécute toutes les opérations d’une transaction à l’aide d’une connexion de base de données sous-jacente. RDS peut ensuite utiliser une connexion différente pour la transaction suivante. Si vous ouvrez de nombreuses connexions simultanées au proxy, celui-ci conserve un plus petit nombre de connexions ouvertes à l’instance ou au cluster de bases de données. Cela permet de réduire davantage la surcharge de mémoire pour les connexions sur le serveur de base de données. Cette technique réduit également le risque que des erreurs liées au « nombre de connexions trop élevé » se produisent. 

## Sécurité RDS Proxy
<a name="rds-proxy-security"></a>

 Le proxy RDS utilise les mécanismes de sécurité RDS existants tels que TLS/SSL et Gestion des identités et des accès AWS (IAM). Pour obtenir des informations générales sur ces fonctionnalités de sécurité, reportez-vous à la section [Sécurité dans Amazon RDS ( Aurora)](UsingWithRDS.md). Par ailleurs, commencez par découvrir la façon dont RDS utilise l’authentification, l’autorisation et d’autres domaines de sécurité. 

 RDS Proxy peut agir comme une couche de sécurité supplémentaire entre les applications clientes et la base de données sous-jacente. Par exemple, vous pouvez vous connecter au proxy à l’aide de TLS 1.3, même si l’instance de base de données sous-jacente prend en charge une version antérieure de TLS. Vous pouvez vous connecter au proxy à l'aide d'un rôle IAM même si le proxy se connecte à la base de données à l'aide de la méthode d'authentification de l'utilisateur et du mot de passe de la base de données. Grâce à cette technique, vous pouvez appliquer de fortes exigences d’authentification pour les applications de base de données sans avoir à fournir un effort de migration coûteux pour les instances de base de données elles-mêmes. 

Vous pouvez utiliser les méthodes d'authentification suivantes avec le proxy RDS :
+ **Informations d'identification de base**
+ **Authentification IAM standard**
+ **End-to-end Authentification IAM**

### Utilisation d'IAM avec RDS Proxy
<a name="rds-proxy-security.IAM"></a>

RDS Proxy propose deux méthodes d'authentification IAM :
+ Authentification **IAM standard : appliquez l'authentification** IAM pour les connexions à votre proxy pendant que le proxy se connecte à la base de données à l'aide des informations d'identification stockées dans Secrets Manager. Cela permet d'appliquer l'authentification IAM pour l'accès aux bases de données, même si les bases de données utilisent l'authentification par mot de passe native. Le proxy récupère les informations d'identification de la base de données auprès de Secrets Manager et gère l'authentification auprès de la base de données pour le compte de votre application.
+ **End-to-end Authentification IAM** : applique l'authentification IAM pour les connexions directement entre vos applications et votre base de données via le proxy. End-to-end L'authentification IAM simplifie votre configuration de sécurité et évite la gestion des informations d'identification de base de données dans Secrets Manager. Cette couche de sécurité supplémentaire renforce le contrôle d'accès basé sur l'IAM depuis l'application cliente vers la base de données.

Pour utiliser l'authentification IAM standard, configurez votre proxy pour utiliser les secrets de Secrets Manager pour l'authentification et activez l'authentification IAM pour les connexions client. Vos applications s'authentifient auprès du proxy via IAM, tandis que le proxy s'authentifie auprès de la base de données à l'aide des informations d'identification extraites de Secrets Manager.

Pour utiliser l'authentification end-to-end IAM, configurez votre proxy pour qu'il utilise l'authentification IAM lors de la définition du schéma d'authentification par défaut lors de la création ou de la modification de votre proxy.

Pour l'authentification end-to-end IAM, vous devez mettre à jour le rôle IAM associé au proxy pour accorder l'`rds-db:connect`autorisation. Grâce à l'authentification end-to-end IAM, il n'est plus nécessaire d'enregistrer des utilisateurs de base de données individuels auprès du proxy via les secrets de Secrets Manager.

### Utilisation TLS/SSL avec RDS Proxy
<a name="rds-proxy-security.tls"></a>

 Vous pouvez vous connecter au proxy RDS à l'aide du TLS/SSL protocole. 

**Note**  
 Le proxy RDS utilise les certificats du AWS Certificate Manager (ACM). Si vous utilisez RDS Proxy, vous n’avez pas besoin de télécharger des certificats Amazon RDS ou de mettre à jour des applications utilisant des connexions RDS Proxy.

Afin d’appliquer TLS pour toutes les connexions entre le proxy et votre base de données, vous pouvez spécifier un paramètre **Exiger la sécurité de la couche de transport** lorsque vous créez ou modifiez un proxy dans la AWS Management Console. 

Le proxy RDS peut également garantir que votre session est utilisée TLS/SSL entre votre client et le point de terminaison du proxy RDS. Pour que RDS Proxy procède ainsi, spécifiez l’exigence côté client. Les variables de session SSL ne sont pas définies pour les connexions SSL à une base de données utilisant RDS Proxy. 
+  Pour RDS for MySQL, spécifiez l’exigence côté client avec le paramètre `--ssl-mode` lorsque vous exécutez la commande `mysql`. 
+  Pour Amazon RDS PostgreSQL, spécifiez `sslmode=require` comme partie de la chaîne `conninfo` lorsque vous exécutez la commande `psql`. 

Le proxy RDS prend en charge le protocole TLS versions 1.0, 1.1 ; 1.2 et 1.3. Vous pouvez vous connecter au proxy à l’aide d’une version de TLS supérieure à celle utilisée dans la base de données sous-jacente. 

Par défaut, les programmes client établissent une connexion chiffrée avec RDS Proxy. L’option `--ssl-mode` fournit davantage de contrôle. Du côté client, RDS Proxy prend en charge tous les modes SSL. 

 Pour le client, les modes SSL sont les suivants : 

**PREFERRED**  
 SSL est le premier choix, mais n’est pas obligatoire. 

**DISABLED**  
 Aucun mode SSL n’est autorisé. 

**REQUIRED**  
 SSL est obligatoire. 

**VERIFY\$1CA**  
 SSL est obligatoire et une vérification de l’autorité de certification (CA) est effectuée. 

**VERIFY\$1IDENTITY**  
 SSL est obligatoire et une vérification de l’autorité de certification (CA) et de son nom d’hôte est effectuée. 

 Lorsque vous utilisez un client avec `--ssl-mode` `VERIFY_CA` ou `VERIFY_IDENTITY`, spécifiez l’option `--ssl-ca` pointant vers une autorité de certification au format `.pem`. Pour utiliser le `.pem` fichier, téléchargez toutes les autorités PEMs de certification racine depuis [Amazon Trust Services](https://www.amazontrust.com/repository/) et placez-les dans un seul `.pem` fichier.

 Le proxy RDS utilise des certificats à caractères génériques, qui s’appliquent à un domaine et à ses sous-domaines. Si vous utilisez le client `mysql` pour vous connecter avec le mode SSL `VERIFY_IDENTITY`, vous devez actuellement exécuter la commande `mysql` compatible avec MySQL 8.0. 

## Basculement
<a name="rds-proxy-failover"></a>

 Le *basculement* est une fonctionnalité de haute disponibilité qui remplace une instance de base de données par une autre lorsque l’instance d’origine est indisponible. Un problème lié à une instance de base de données peut entraîner un basculement. Celui-ci peut également faire partie de procédures de maintenance normales, lors d’une mise à niveau de la base de données par exemple. Le basculement s’applique aux instances de base de données RDS dans une configuration multi-AZ.

 La connexion via un proxy rend vos applications plus résistantes aux basculements de base de données. Lorsque l’instance de base de données d’origine est indisponible, RDS Proxy se connecte à la base de données de secours sans supprimer les connexions d’application inactives. Cela permet d’accélérer et de simplifier le processus de basculement. Ce basculement interrompt moins longtemps votre application par rapport à un problème de redémarrage ou de base de données classique. 

 Sans RDS Proxy, un basculement provoque une brève interruption de service. Pendant la panne, vous ne pouvez pas effectuer d’opérations d’écriture sur la base de données en cours de basculement. Toutes les connexions de base de données existantes sont interrompues et votre application doit les rouvrir. La base de données est ouverte à de nouvelles connexions et opérations d’écriture lorsqu’une instance de base de données en lecture seule est promue pour remplacer celle qui n’est pas disponible. 

 Pendant les basculements de base de données, RDS Proxy continue d’accepter les connexions à la même adresse IP et redirige automatiquement les connexions vers la nouvelle instance de base de données principale. Les clients qui se connectent via RDS Proxy ne sont pas sujets aux éléments suivants : 
+  Délais de propagation du système de noms de domaine (DNS) lors du basculement. 
+  Mise en cache DNS locale. 
+  Délai d’expiration de connexion. 
+  Incertitude concernant l’instance de base de données qui est le rédacteur en cours. 
+  Attente d’une réponse à la requête d’un ancien rédacteur devenu indisponible sans fermer les connexions. 

 Pour les applications qui conservent leur propre regroupement de connexions, passer par RDS Proxy implique que la plupart des connexions restent actives pendant des basculements ou d’autres interruptions. Seules les connexions qui se trouvent au milieu d’une transaction ou d’une instruction SQL sont annulées. RDS Proxy accepte immédiatement les nouvelles connexions. Lorsque le rédacteur de base de données n’est pas disponible, RDS Proxy place les demandes entrantes dans la file d’attente. 

 Pour les applications qui ne conservent pas leurs propres regroupements de connexions, RDS Proxy offre des taux de connexion plus rapides et davantage de connexions ouvertes. Il permet de réduire la surcharge coûteuse des reconnexions fréquentes à la base de données. Il effectue cette opération en réutilisant les connexions de base de données maintenues dans le regroupement de connexions de RDS Proxy. Cette approche est particulièrement importante pour les connexions TLS, où les coûts d’installation sont importants. 

## Transactions
<a name="rds-proxy-transactions"></a>

 Toutes les instructions d’une seule transaction utilisent toujours la même connexion à la base de données sous-jacente. La connexion devient disponible pour une session différente lorsque la transaction se termine. Voici les conséquences de l’utilisation de la transaction en tant qu’unité de granularité : 
+  La connexion peut être réutilisée après chaque instruction individuelle lorsque le paramètre RDS for MySQL `autocommit` est activé. 
+  Inversement, lorsque le paramètre `autocommit` est désactivé, la première instruction que vous émettez dans une session lance une nouvelle transaction. Par exemple, supposons que vous saisissiez une séquence `SELECT`, `INSERT`, `UPDATE`, ainsi que d’autres instructions en langage de manipulation de données (DML). Dans ce cas, la réutilisation de la connexion ne se produit que lorsque vous émettez `COMMIT`, `ROLLBACK` ou que vous mettez fin à la transaction. 
+  La saisie d’une instruction en langage de définition de données (DDL) entraîne la fin de la transaction une fois l’instruction terminée. 

 RDS Proxy détecte lorsqu’une transaction se termine par le protocole réseau utilisé par l’application cliente de base de données. La détection des transactions ne repose pas sur des mots-clés tels que `COMMIT` ou `ROLLBACK` apparaissant dans le texte de l’instruction SQL. 

 Dans certains cas, RDS Proxy peut détecter une demande de base de données qui rend impossible le déplacement de votre session vers une autre connexion. Dans ce cas, il désactive le multiplexage pour cette connexion pendant le reste de votre session. La même règle s’applique si RDS Proxy ne peut pas s’assurer de la praticité du multiplexage pour la session. Cette opération est appelée *épinglage*. Pour savoir comment détecter et réduire l’épinglage, consultez [Contournement de l’épinglage d’un proxy RDS](rds-proxy-pinning.md). 

# Démarrage avec le proxy RDS
<a name="rds-proxy-setup"></a>

Utilisez les informations des pages suivantes pour configurer, gérer le [Proxy Amazon RDS ](rds-proxy.md) et définir les options de sécurité associées. Les options de sécurité contrôlent les accès à chaque proxy et la connexion de ces derniers aux instances de base de données.

Si vous utilisez le proxy RDS pour la première fois, nous vous recommandons de suivre les pages dans l’ordre dans lequel nous les présentons. 

**Topics**
+ [Configuration des prérequis réseau pour un proxy RDS](rds-proxy-network-prereqs.md)
+ [Configuration des informations d'identification de base de données pour le proxy RDS](rds-proxy-secrets-arns.md)
+ [Configuration de l’authentification IAM pour RDS Proxy](rds-proxy-iam-setup.md)
+ [Création d’un proxy pour Amazon RDS](rds-proxy-creating.md)
+ [Affichage d’un proxy](rds-proxy-viewing.md)
+ [Connexion à une base de données via RDS Proxy](rds-proxy-connecting.md)

# Configuration des prérequis réseau pour un proxy RDS
<a name="rds-proxy-network-prereqs"></a>

 L’utilisation de RDS Proxy nécessite un cloud privé virtuel (VPC) commun entre votre instance de base de données RDS et RDS Proxy. Ce VPC doit avoir au moins deux sous-réseaux situés dans des zones de disponibilité différentes. Votre compte peut posséder ces sous-réseaux ou les partager avec d’autres comptes. Pour plus d'informations sur le partage VPC, consultez la section [Travailler avec](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-sharing.html) le partage. VPCs 

Pour le IPv6 support, une configuration réseau supplémentaire est requise :
+ **IPv6 types de réseaux de points de terminaison** : votre VPC et vos sous-réseaux doivent être configurés pour prendre en charge. IPv6 Cela inclut l'attribution de blocs IPv6 CIDR à votre VPC et à vos sous-réseaux.
+ **Types de réseaux de points de terminaison à double pile** : votre VPC et vos sous-réseaux doivent prendre en charge IPv4 les deux types et l'adressage. IPv6 
+ **IPv6 types de réseaux de connexion cibles** : votre base de données doit être configurée pour le mode double pile afin de prendre en charge IPv6 les connexions depuis le proxy.

Les ressources de vos applications client telles qu’Amazon EC2, Lambda ou Amazon ECS peuvent se trouver dans le même VPC que le proxy. Elles peuvent également se trouver dans un VPC distinct du proxy. Si vous êtes bien connecté à des instances de base de données RDS , vous disposez déjà des ressources réseau requises. 

**Topics**
+ [Obtention d’informations sur vos sous-réseaux](#rds-proxy-network-prereqs.subnet-info)
+ [Planification de la capacité des adresses IP](#rds-proxy-network-prereqs.plan-ip-address)

## Obtention d’informations sur vos sous-réseaux
<a name="rds-proxy-network-prereqs.subnet-info"></a>

Pour créer un proxy, vous devez fournir les sous-réseaux et le VPC au sein desquels le proxy fonctionne. L'exemple Linux suivant montre des AWS CLI commandes qui examinent les sous-réseaux VPCs et appartenant à votre Compte AWS. En particulier, vous transmettez le sous-réseau IDs en tant que paramètres lorsque vous créez un proxy à l'aide de la CLI. 

```
aws ec2 describe-vpcs
aws ec2 describe-internet-gateways
aws ec2 describe-subnets --query '*[].[VpcId,SubnetId]' --output text | sort
```

L'exemple Linux suivant montre des AWS CLI commandes permettant de déterminer le sous-réseau IDs correspondant à un cluster de base de données de base de données RDS spécifique. Recherchez l’ID du VPC de l’instance de base de données. Examinez le VPC pour rechercher ses sous-réseaux. Pour ce faire, examinez l’exemple Linux suivant.

```
$ #From the DB instance, trace through the DBSubnetGroup and Subnets to find the subnet IDs.
$ aws rds describe-db-instances --db-instance-identifier my_instance_id --query '*[].[DBSubnetGroup]|[0]|[0]|[Subnets]|[0]|[*].SubnetIdentifier' --output text
```

```
subnet_id_1
subnet_id_2
subnet_id_3
...
```

```
$ #From the DB instance, find the VPC.
$ aws rds describe-db-instances --db-instance-identifier my_instance_id --query '*[].[DBSubnetGroup]|[0]|[0].VpcId' --output text
```

```
my_vpc_id
```

```
$ aws ec2 describe-subnets --filters Name=vpc-id,Values=my_vpc_id --query '*[].[SubnetId]' --output text
```

```
subnet_id_1
subnet_id_2
subnet_id_3
subnet_id_4
subnet_id_5
subnet_id_6
```

## Planification de la capacité des adresses IP
<a name="rds-proxy-network-prereqs.plan-ip-address"></a>

Un proxy RDS ajuste automatiquement sa capacité selon les besoins en fonction de la taille et du nombre d’instances de base de données enregistrées auprès de lui. Certaines opérations peuvent également nécessiter de la capacité de proxy supplémentaire, par exemple, une augmentation de la taille d’une base de données enregistrée ou des opérations de maintenance des proxy RDS internes. Au cours de ces opérations, votre proxy peut avoir besoin de plus d’adresses IP pour fournir de la capacité supplémentaire. Ces adresses supplémentaires permettent à votre proxy d’évoluer sans affecter votre charge de travail. L’absence d’adresses IP libres dans vos sous-réseaux empêche d’augmenter un proxy. Cela peut entraîner des latences de requêtes plus élevées ou des échecs de connexion client. RDS vous avertit par le biais de l’événement `RDS-EVENT-0243` lorsqu’il n’y a pas suffisamment d’adresses IP libres dans vos sous-réseaux. Pour plus d’informations sur cet événement, consultez [Utilisation des des événements RDS ProxyUtilisation des des événements RDS Proxy](rds-proxy.events.md).

**Note**  
Le proxy RDS ne consomme pas plus de 215 adresses IP pour chaque proxy d'un VPC.

Réservez le nombre minimal suivant d’adresses IP libres dans vos sous-réseaux pour votre proxy, en fonction des tailles de classes d’instance de base de données.


|  Classe d’instance de base de données  |  Nombre minimal d’adresses IP libres  | 
| --- | --- | 
|  db.\$1.xlarge ou moins   |  10  | 
|  db.\$1.2xlarge   |  15  | 
|  db.\$1.4xlarge   |  25  | 
|  db.\$1.8xlarge   |  45  | 
|  db.\$1.12xlarge   |  60  | 
|  db.\$1.16xlarge   |  75  | 
|  db.\$1.24xlarge   |  110  | 

Ces nombres recommandés d’adresses IP sont des estimations pour un proxy avec uniquement le point de terminaison par défaut. Un proxy avec des points de terminaison supplémentaires ou des réplicas en lecture peut avoir besoin d’un plus grand nombre d’adresses IP libres. Pour chaque point de terminaison supplémentaire, nous vous recommandons de réserver trois adresses IP supplémentaires. Pour chaque réplica en lecture, nous vous recommandons de réserver des adresses IP supplémentaires, comme indiqué dans le tableau, en fonction de la taille de ce réplica en lecture.

# Configuration des informations d'identification de base de données pour le proxy RDS
<a name="rds-proxy-secrets-arns"></a>

Le proxy RDS dans Amazon RDS est utilisé AWS Secrets Manager pour stocker et gérer les informations d'identification de base de données en toute sécurité. Au lieu d’intégrer des informations d’identification dans votre application, vous associez un proxy à un secret Secrets Manager contenant les informations d’authentification nécessaires. Vous créez un secret Secrets Manager distinct pour chaque compte d’utilisateur de base de données auquel le proxy se connecte sur l’instance de base de données RDS.

Vous pouvez également configurer le proxy RDS pour utiliser l'authentification end-to-end IAM, ce qui élimine le besoin de stocker les informations d'identification de la base de données dans Secrets Manager. Le proxy RDS utilise l'authentification IAM pour les connexions à la fois client-to-proxy. proxy-to-database Cela fournit une solution d'authentification basée sur IAM entièrement intégrée qui ne nécessite pas de gérer des secrets ou des mots de passe. Pour plus d'informations sur l'ajout d'un nouvel utilisateur de base de données IAM, consultez[Création d’un compte de base de données à l’aide de l’authentification IAM](UsingWithRDS.IAMDBAuth.DBAccounts.md).

**Topics**
+ [Création de secrets à utiliser avec le proxy RDS](#rds-proxy-secrets-create)

## Création de secrets à utiliser avec le proxy RDS
<a name="rds-proxy-secrets-create"></a>

Avant de créer un proxy, vous devez d’abord créer au moins un secret qui stocke les informations d’identification de votre base de données.

### Console
<a name="rds-proxy-secrets-create-console"></a>

**Pour créer un secret**

1. Ouvrez la console Secrets Manager à l'adresse [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Choisissez **Store a new secret** (Stocker un nouveau secret).

1. Choisissez **Informations d’identification pour une base de données Amazon RDS**.

1. Entrez un nom d’utilisateur et un mot de passe. Les informations d’identification que vous entrez doivent correspondre aux informations d’identification d’un utilisateur de base de données existant dans la base de données RDS associée. Le proxy RDS utilise ces informations d’identification pour authentifier et établir des connexions à la base de données pour le compte des applications.

   En cas d’incompatibilité, vous pouvez mettre à jour le secret pour qu’il corresponde à celui de la base de données. Tant que vous ne mettez pas à jour le secret, les tentatives de connexion via le proxy utilisant ce secret échouent, mais les connexions utilisant d’autres secrets valides fonctionnent toujours.
**Note**  
Pour RDS for SQL Server, le proxy RDS nécessite un secret sensible aux majuscules et minuscules dans Secrets Manager, quels que soient les paramètres de classement des instances de base de données. Si votre application autorise des noms d’utilisateur avec des capitalisations différentes, tels que « Admin » et « admin », vous devez créer des secrets distincts pour chacun. Le proxy RDS ne prend pas en charge l’authentification insensible à la casse entre le client et le proxy.  
Pour plus d’informations sur le classement SQL Server, consultez la documentation [Microsoft SQL Server](https://docs.microsoft.com/en-us/sql/relational-databases/collations/collation-and-unicode-support?view=sql-server-ver16).

1. Pour **Base de données**, sélectionnez la base de données Amazon RDS à laquelle le secret doit accéder.

1. Renseignez les autres paramètres pour le secret, puis choisissez **Stockage**. Pour obtenir des instructions complètes, consultez [Création d’un secret AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html) dans le *AWS Secrets Manager Guide de l’utilisateur*. 

### AWS CLI
<a name="rds-proxy-secrets-create-cli"></a>

Lorsque vous créez un proxy via le AWS CLI, vous spécifiez les Amazon Resource Names (ARNs) des secrets correspondants. Vous le faites pour tous les comptes utilisateur de base de données auxquels le proxy peut accéder. Dans le AWS Management Console, vous choisissez les secrets par leurs noms descriptifs.
+ Pour créer un secret Secrets Manager à utiliser avec le proxy RDS, utilisez la commande [create-secret](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/create-secret.html) :

  ```
  aws secretsmanager create-secret \
    --name "secret_name" \
    --description "secret_description" \
    --region region_name \
    --secret-string '{"username":"db_user","password":"db_user_password"}'
  ```
+ Vous pouvez également créer une clé personnalisée pour chiffrer votre secret Secrets Manager. La commande suivante crée un exemple de clé.

  ```
  aws kms create-key --description "test-key" --policy '{
    "Id":"kms-policy",
    "Version": "2012-10-17",		 	 	 
    "Statement":
      [
        {
          "Sid":"Enable IAM User Permissions",
          "Effect":"Allow",
          "Principal":{"AWS":"arn:aws:iam::account_id:root"},
          "Action":"kms:*","Resource":"*"
        },
        {
          "Sid":"Allow access for Key Administrators",
          "Effect":"Allow",
          "Principal":
            {
              "AWS":
                ["$USER_ARN","arn:aws:iam:account_id::role/Admin"]
            },
          "Action":
            [
              "kms:Create*",
              "kms:Describe*",
              "kms:Enable*",
              "kms:List*",
              "kms:Put*",
              "kms:Update*",
              "kms:Revoke*",
              "kms:Disable*",
              "kms:Get*",
              "kms:Delete*",
              "kms:TagResource",
              "kms:UntagResource",
              "kms:ScheduleKeyDeletion",
              "kms:CancelKeyDeletion"
            ],
          "Resource":"*"
        },
        {
          "Sid":"Allow use of the key",
          "Effect":"Allow",
          "Principal":{"AWS":"$ROLE_ARN"},
          "Action":["kms:Decrypt","kms:DescribeKey"],
          "Resource":"*"
        }
      ]
  }'
  ```

 Par exemple, les commandes suivantes créent des secrets Secrets Manager pour deux utilisateurs de base de données. 

```
aws secretsmanager create-secret \
  --name secret_name_1 --description "db admin user" \
  --secret-string '{"username":"admin","password":"choose_your_own_password"}'

aws secretsmanager create-secret \
  --name secret_name_2 --description "application user" \
  --secret-string '{"username":"app-user","password":"choose_your_own_password"}'
```

Pour créer ces secrets chiffrés avec votre AWS KMS clé personnalisée, utilisez les commandes suivantes :

```
aws secretsmanager create-secret \
  --name secret_name_1 --description "db admin user" \
  --secret-string '{"username":"admin","password":"choose_your_own_password"}' \
  --kms-key-id arn:aws:kms:us-east-2:account_id:key/key_id

aws secretsmanager create-secret \
  --name secret_name_2 --description "application user" \
  --secret-string '{"username":"app-user","password":"choose_your_own_password"}' \
  --kms-key-id arn:aws:kms:us-east-2:account_id:key/key_id
```

Pour voir les secrets détenus par votre AWS compte, utilisez la commande [list-secrets](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/list-secrets.html) :

```
aws secretsmanager list-secrets
```

Lorsque vous créez un proxy à l'aide de la CLI, vous transmettez les Amazon Resource Names (ARNs) d'un ou de plusieurs secrets au `--auth` paramètre. L’exemple suivant montre comment préparer un rapport avec uniquement le nom et l’ARN de chacun des secrets détenus par votre compte AWS . Cet exemple utilise le `--output table` paramètre disponible dans la AWS CLI version 2. Si vous utilisez AWS CLI la version 1, utilisez `--output text` plutôt. 

```
aws secretsmanager list-secrets --query '*[].[Name,ARN]' --output table
```

Pour vérifier que le secret contient les informations d'identification correctes au format approprié, utilisez la [get-secret-value](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/get-secret-value.html)commande. Remplacez `your_secret_name` par le nom abrégé ou l’ARN du secret.

```
aws secretsmanager get-secret-value --secret-id your_secret_name
```

La sortie contient une ligne avec une valeur codée en JSON semblable à la suivante :

```
...
"SecretString": "{\"username\":\"your_username\",\"password\":\"your_password\"}",
...
```

# Configuration de l’authentification IAM pour RDS Proxy
<a name="rds-proxy-iam-setup"></a>

Pour configurer l'authentification Gestion des identités et des accès AWS (IAM) pour le proxy RDS dans Amazon RDS, créez et configurez une politique IAM qui accorde les autorisations nécessaires. 

Cette rubrique décrit les étapes de configuration de l’authentification IAM pour RDS Proxy, notamment la création de la politique IAM requise et son association à un rôle IAM. 

**Astuce**  
Cette procédure n’est nécessaire que si vous souhaitez créer votre propre rôle IAM. Dans le cas contraire, RDS peut créer automatiquement le rôle requis lorsque vous configurez le proxy. Vous pouvez donc ignorer ces étapes.

## Conditions préalables
<a name="rds-proxy-iam-setup-prereqs"></a>

Avant de configurer l’authentification IAM pour RDS Proxy, assurez-vous de disposer des éléments suivants :
+ **AWS Secrets Manager** : au moins un secret stocké contenant les informations d’identification de la base de données. Pour obtenir des instructions sur la création des secrets, consultez [Configuration des informations d'identification de base de données pour le proxy RDS](rds-proxy-secrets-arns.md).

  Cela n'est pas obligatoire si vous utilisez l'authentification end-to-end IAM.
+ **Autorisations IAM** : rôle ou utilisateur IAM autorisé à créer et à gérer des politiques, des rôles et des secrets IAM dans AWS Secrets Manager.

## Création d'une politique IAM pour l'authentification end-to-end IAM
<a name="rds-proxy-iam-setup-e2e-steps"></a>

Lorsque vous utilisez l'authentification end-to-end IAM, le proxy RDS se connecte à votre base de données à l'aide de l'authentification IAM au lieu de récupérer les informations d'identification auprès de Secrets Manager. Cela nécessite de configurer votre rôle IAM avec des `rds-db:connect` autorisations pour les comptes de base de données que vous souhaitez utiliser avec le proxy.

Pour authentifier votre proxy RDS auprès de la base de données à l'aide d'IAM, créez un rôle IAM avec une politique qui accorde les autorisations de connexion à la base de données nécessaires.

### Console
<a name="rds-proxy-iam-e2e-console"></a>

**Pour créer un rôle pour l'authentification end-to-end IAM avec votre proxy**

1. Connectez-vous à la console IAM AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)l'adresse.

1. Créez une stratégie d’autorisation pour le rôle. Pour connaître les étapes générales, consultez [Créer des politiques IAM (console).](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)

   Collez cette politique dans l’éditeur JSON et effectuez les modifications suivantes :
   + Indiquez votre propre ID de compte.
   + Remplacez `us-east-2` par le lieu où le mandataire doit résider.
   + Remplacez les noms d'utilisateur IDs et de ressource de base de données par ceux que vous souhaitez utiliser. Le format de l'ID de ressource diffère entre les instances RDS etAurora clusters.

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "rds-db:connect",
               "Resource": [
                   "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_1",
                   "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_2"
               ]
           }
       ]
   }
   ```

1. Créez le rôle et associez-le à une stratégie d’autorisations. Pour les étapes générales, voir [Créer un rôle pour déléguer des autorisations à un AWS service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html). 

   Choisissez **Service AWS ** pour **Type d’entité de confiance**. Sous **Cas d’utilisation**, sélectionnez **RDS** et choisissez **RDS : ajouter un rôle à la base de données** pour le cas d’utilisation.

1. Sous **Stratégies d’autorisation**, choisissez la stratégie que vous avez créée.

1. Pour **Sélectionner les entités de confiance**, entrez la stratégie d’approbation suivante pour le rôle :

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "",
         "Effect": "Allow",
         "Principal": {
           "Service": "rds.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

### AWS CLI
<a name="rds-proxy-iam-e2e-cli"></a>

Pour créer le rôle à l'aide du AWS CLI, envoyez la demande suivante :

```
aws iam create-role \
  --role-name my_e2e_iam_role_name \

  --assume-role-policy-document '{"Version":"2012-10-17",		 	 	 "Statement":[{"Effect":"Allow","Principal":{"Service":["rds.amazonaws.com"]},"Action":"sts:AssumeRole"}]}'
```

Associez ensuite cette stratégie au rôle :

```
aws iam put-role-policy \
  --role-name my_e2e_iam_role_name \
  --policy-name e2e_iam_db_connect_policy \
  --policy-document '{

    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "rds-db:connect",
            "Resource": [
                "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_1",
                "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_2"
            ]
        }
    ]
}'
```

Le rôle et les autorisations IAM étant configurés pour l'authentification end-to-end IAM, vous pouvez désormais créer un proxy `DefaultAuthScheme` défini sur. `IAM_AUTH` Ce proxy s'authentifie directement auprès de la base de données à l'aide d'IAM sans avoir besoin des secrets de Secrets Manager. Pour obtenir des instructions, veuillez consulter [Création d’un proxy pour Amazon RDS](rds-proxy-creating.md).

Lorsque vous utilisez l'authentification end-to-end IAM, assurez-vous que les utilisateurs de votre base de données sont configurés pour l'authentification IAM, comme décrit dans. [Création d’un compte de base de données à l’aide de l’authentification IAM](UsingWithRDS.IAMDBAuth.DBAccounts.md)

## Création d’une Politique IAM pour accéder à Secrets Manager
<a name="rds-proxy-iam-setup-steps"></a>

Pour permettre à RDS Proxy de récupérer les informations d’identification de la base de données de Secrets Manager, créez un rôle IAM avec une politique qui accorde les autorisations nécessaires.

## Console
<a name="rds-proxy-iam-console"></a>

**Pour créer un rôle permettant d’accéder aux secrets qui seront utilisés avec votre proxy**

1. Connectez-vous à la console IAM AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)l'adresse.

1. Créez une stratégie d’autorisation pour le rôle. Pour connaître les étapes générales, consultez [Créer des politiques IAM (console).](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)

   Collez cette politique dans l’éditeur JSON et effectuez les modifications suivantes :
   + Indiquez votre propre ID de compte.
   + Remplacez `us-east-2` par la région où résidera le proxy.
   + Remplacez les noms secrets par ceux que vous avez créés. Pour plus d’informations, consultez [Spécification de clés KMS dans les instructions de politique IAM](https://docs.aws.amazon.com/kms/latest/developerguide/cmks-in-iam-policies.html).
   + Remplacez l’ID de clé KMS par celui que vous avez utilisé pour chiffrer les secrets de Secrets Manager, qu’il s’agisse de la clé par défaut ou de votre propre clé.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "secretsmanager:GetSecretValue",
               "Resource": [
                   "arn:aws:secretsmanager:us-east-2:111122223333:secret:secret_name_1",
                   "arn:aws:secretsmanager:us-east-2:111122223333:secret:secret_name_2"
               ]
           },
           {
               "Effect": "Allow",
               "Action": "kms:Decrypt",
               "Resource": "arn:aws:kms:us-east-2:111122223333:key/key_id",
               "Condition": {
                   "StringEquals": {
                       "kms:ViaService": "secretsmanager.us-east-2.amazonaws.com"
                   }
               }
           }
       ]
   }
   ```

------

1. Créez le rôle et associez-le à une stratégie d’autorisations. Pour les étapes générales, voir [Créer un rôle pour déléguer des autorisations à un AWS service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html). 

   Choisissez **Service AWS ** pour **Type d’entité de confiance**. Sous **Cas d’utilisation**, sélectionnez **RDS** et choisissez **RDS : ajouter un rôle à la base de données** pour le cas d’utilisation.

1. Sous **Stratégies d’autorisation**, choisissez la stratégie que vous avez créée.

1. Pour **Sélectionner les entités de confiance**, entrez la stratégie d’approbation suivante pour le rôle :

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "",
         "Effect": "Allow",
         "Principal": {
           "Service": "rds.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

## AWS CLI
<a name="rds-proxy-iam-cli"></a>

Pour créer le rôle à l'aide du AWS CLI, envoyez la demande suivante :

```
aws iam create-role \
  --role-name my_role_name \
  --assume-role-policy-document '{"Version": "2012-10-17",		 	 	 "Statement":[{"Effect":"Allow","Principal":{"Service":["rds.amazonaws.com"]},"Action":"sts:AssumeRole"}]}'
```

Associez ensuite cette stratégie au rôle :

```
aws iam put-role-policy \
  --role-name my_role_name \
  --policy-name secret_reader_policy \
  --policy-document '{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "secretsmanager:GetSecretValue",
            "Resource": [
                "arn:aws:secretsmanager:us-east-2:account_id:secret:secret_name_1",
                "arn:aws:secretsmanager:us-east-2:account_id:secret:secret_name_2"
            ]
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "kms:Decrypt",
            "Resource": "arn:aws:kms:us-east-2:account_id:key/key_id",
            "Condition": {
                "StringEquals": {
                    "kms:ViaService": "secretsmanager.us-east-2.amazonaws.com"
                }
            }
        }
    ]
}'
```

Une fois le rôle et les autorisations IAM configurés, vous pouvez créer un proxy et l’associer à ce rôle. Cela permet au proxy de récupérer les informations d'identification de la base de données en toute sécurité AWS Secrets Manager et d'activer l'authentification IAM pour vos applications. Pour obtenir des instructions, veuillez consulter [Création d’un proxy pour Amazon RDS](rds-proxy-creating.md).

# Création d’un proxy pour Amazon RDS
<a name="rds-proxy-creating"></a>

Vous pouvez employer un proxy avec une instance de base de données RDS for MariaDB, RDS for Microsoft SQL Server, RDS for MySQL ou RDS pour PostgreSQL. 

## Console
<a name="rds-proxy-creating.console"></a>

**Pour créer un proxy**

1. Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)l'adresse.

1. Dans le panneau de navigation, sélectionnez **Proxies**. 

1. Choisissez **Création d’un proxy**. 

1. Configurez les paramètres suivants pour votre proxy.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/rds-proxy-creating.html)

1.  Choisissez **Création d’un proxy**. 

## AWS CLI
<a name="rds-proxy-creating.CLI"></a>

 Pour créer un proxy à l'aide de AWS CLI, appelez la [create-db-proxy](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-proxy.html)commande avec les paramètres obligatoires suivants : 
+ `--db-proxy-name`
+ `--engine-family`
+ `--role-arn`
+ `--vpc-subnet-ids`

La valeur `--engine-family` est sensible à la casse.

**Example**  
Pour Linux, macOS ou Unix :  

```
aws rds create-db-proxy \
    --db-proxy-name proxy_name \
    --engine-family { MYSQL | POSTGRESQL | SQLSERVER } \
    --role-arn iam_role \
    --vpc-subnet-ids space_separated_list \
    [--default-auth-scheme { NONE | IAM_AUTH }] \
    [--auth ProxyAuthenticationConfig_JSON_string] \
    [--vpc-security-group-ids space_separated_list] \
    [--require-tls | --no-require-tls] \
    [--idle-client-timeout value] \
    [--debug-logging | --no-debug-logging] \
    [--endpoint-network-type { IPV4 | IPV6 | DUAL }] \
    [--target-connection-network-type { IPV4 | IPV6 }] \
    [--tags comma_separated_list]
```
Pour Windows :  

```
aws rds create-db-proxy ^
    --db-proxy-name proxy_name ^
    --engine-family { MYSQL | POSTGRESQL | SQLSERVER } ^
    --role-arn iam_role ^
    --vpc-subnet-ids space_separated_list ^
    [--default-auth-scheme { NONE | IAM_AUTH }] ^
    [--auth ProxyAuthenticationConfig_JSON_string] ^
    [--vpc-security-group-ids space_separated_list] ^
    [--require-tls | --no-require-tls] ^
    [--idle-client-timeout value] ^
    [--debug-logging | --no-debug-logging] ^
    [--endpoint-network-type { IPV4 | IPV6 | DUAL }] ^
    [--target-connection-network-type { IPV4 | IPV6 }] ^
    [--tags comma_separated_list]
```

Voici un exemple de valeur JSON pour l’option `--auth`. Cet exemple applique un type d’authentification client différent à chaque secret.

```
[
  {
    "Description": "proxy description 1",
    "AuthScheme": "SECRETS",
    "SecretArn": "arn:aws:secretsmanager:us-west-2:123456789123:secret/1234abcd-12ab-34cd-56ef-1234567890ab",
    "IAMAuth": "DISABLED",
    "ClientPasswordAuthType": "POSTGRES_SCRAM_SHA_256"
  },
  
  {
    "Description": "proxy description 2",
    "AuthScheme": "SECRETS",
    "SecretArn": "arn:aws:secretsmanager:us-west-2:111122223333:secret/1234abcd-12ab-34cd-56ef-1234567890cd",
    "IAMAuth": "DISABLED",
    "ClientPasswordAuthType": "POSTGRES_MD5"
    
  },
  
  {
    "Description": "proxy description 3",
    "AuthScheme": "SECRETS",
    "SecretArn": "arn:aws:secretsmanager:us-west-2:111122221111:secret/1234abcd-12ab-34cd-56ef-1234567890ef",
    "IAMAuth": "REQUIRED"
  }
  
]
```

Le paramètre `--endpoint-network-type` indique la version IP du point de terminaison de proxy que les clients utilisent pour se connecter au proxy. Les valeurs valides sont :
+ `IPV4`— Le point de terminaison du proxy utilise uniquement IPv4 des adresses (par défaut).
+ `IPV6`— Le point de terminaison du proxy utilise uniquement IPv6 des adresses.
+ `DUAL`— Le point de terminaison du proxy prend en charge IPv4 les deux IPv6 adresses.

Le paramètre `--target-connection-network-type` indique la version IP utilisée par le proxy pour se connecter à la base de données cible. Les valeurs valides sont :
+ `IPV4`— Le proxy se connecte à la base de données à l'aide d' IPv4 adresses (par défaut).
+ `IPV6`— Le proxy se connecte à la base de données à l'aide d' IPv6 adresses.

Pour utiliser IPv6 ou doubler les types de réseaux de points de terminaison, votre VPC et vos sous-réseaux doivent être configurés pour prendre en charge le type de réseau sélectionné. Pour utiliser le type de réseau de connexion IPv6 cible, votre base de données doit prendre en charge le mode double pile.

**Astuce**  
 Si vous ne connaissez pas encore le sous-réseau IDs à utiliser pour le `--vpc-subnet-ids` paramètre, consultez des exemples [Configuration des prérequis réseau pour un proxy RDS](rds-proxy-network-prereqs.md) pour les trouver. 

**Note**  
Le groupe de sécurité doit autoriser l’accès à la base de données à laquelle le proxy se connecte. Le même groupe de sécurité est utilisé pour l’entrée de vos applications vers le proxy, et pour la sortie du proxy vers la base de données. Par exemple, supposons que vous utilisiez le même groupe de sécurité pour votre base de données et votre proxy. Dans ce cas, assurez-vous de spécifier que les ressources de ce groupe de sécurité peuvent communiquer avec d’autres ressources du même groupe de sécurité.  
Lorsque vous utilisez un VPC partagé, vous ne pouvez pas utiliser le groupe de sécurité par défaut pour le VPC ni un groupe appartenant à un autre compte. Choisissez un groupe de sécurité qui appartient à votre compte. S’il n’en existe aucun, créez-en un. Pour plus d'informations sur cette limitation, voir [Travailler avec le partage VPCs](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-sharing.html#vpc-share-limitations). 

 Pour créer les associations appropriées pour le proxy, vous devez également utiliser la [register-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/register-db-proxy-targets.html)commande. Spécifiez le nom du groupe cible `default`. RDS Proxy crée automatiquement un groupe cible portant ce nom au moment de la création de chaque proxy. 

```
aws rds register-db-proxy-targets
    --db-proxy-name value
    [--target-group-name target_group_name]
    [--db-instance-identifiers space_separated_list]  # rds db instances, or
    [--db-cluster-identifiers cluster_id]        # rds db cluster (all instances)
```

## API RDS
<a name="rds-proxy-creating.API"></a>

 [Pour créer un proxy RDS, appelez l'opération Create de l'API Amazon RDS. DBProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBProxy.html) Vous transmettez un paramètre avec la structure [AuthConfig](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_AuthConfig.html)de données. 

 RDS Proxy crée automatiquement un groupe cible nommé `default` au moment de la création de chaque proxy. Vous associez un de données RDS au groupe cible en appelant la fonction [Register DBProxy Targets](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RegisterDBProxyTargets.html). 

**Important**  
Lorsque vous sélectionnez l'**authentification IAM comme** schéma d'authentification par défaut :  
Vous devez activer l'authentification de base de données IAM sur vos instances ou clusters de base de données cibles pour que le proxy puisse se connecter correctement.
Si vous choisissez **Créer un rôle IAM**, le champ **Comptes de base de données pour l'authentification IAM** est obligatoire.
Si vous sélectionnez un rôle IAM existant, la console ne met pas automatiquement à jour le rôle avec les autorisations de connexion à la base de données. Vérifiez que le rôle dispose des `rds-db:connect` autorisations nécessaires.

# Affichage d’un proxy
<a name="rds-proxy-viewing"></a>

 Après avoir créé un ou plusieurs proxys RDS, vous pouvez les afficher et les gérer dans la AWS Management Console, l’AWS CLI ou l’API RDS. Vous pouvez consulter les détails de leur configuration, surveiller les performances et déterminer les proxys à modifier ou à supprimer selon les besoins.

Pour permettre aux applications de base de données d’acheminer le trafic via un proxy, vous devez spécifier le point de terminaison du proxy dans la chaîne de connexion.

## Console
<a name="rds-proxy-viewing.console"></a>

**Pour afficher un proxy dans la console**

1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon RDS à l’adresse [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Dans le panneau de navigation, sélectionnez **Proxies**. 

1. Sélectionnez le nom du proxy pour en afficher les détails. 

1. Sur la page de détails, la section **Groupes cibles** montre comment le proxy est lié à une instance de base de données RDS spécifique. Vous pouvez accéder à la page du groupe cible par défaut pour obtenir une vue plus approfondie de cette association, notamment des paramètres de configuration définis lors de la création du proxy. Cela inclut le pourcentage maximal de connexion, le délai d’emprunt de connexion, la famille de moteurs et les filtres d’épinglage de session.

## Interface de ligne de commande (CLI)
<a name="rds-proxy-viewing.cli"></a>

 Pour afficher votre proxy à l'aide de l'interface de ligne de commande, utilisez la commande [describe-db-proxies](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxies.html). Par défaut, la demande renvoie tous les proxy appartenant à votre compte AWS. Pour afficher les détails d'un proxy, spécifiez son nom avec le paramètre `--db-proxy-name`. 

```
aws rds describe-db-proxies [--db-proxy-name proxy_name]
```

 Pour afficher les autres informations associées au proxy, utilisez les commandes suivantes. 

```
aws rds describe-db-proxy-target-groups  --db-proxy-name proxy_name

aws rds describe-db-proxy-targets --db-proxy-name proxy_name
```

 Utilisez la séquence de commandes suivante pour afficher plus de détails sur les éléments associés au proxy : 

1.  Pour obtenir une liste des proxies, exécutez [describe-db-proxies](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxies.html). 

1.  Pour afficher les paramètres de connexion tels que le pourcentage maximal de connexions que le proxy peut utiliser, exécutez [describe-db-proxy-target-groups](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxy-target-groups.html) `--db-proxy-name`. Utilisez le nom du proxy comme valeur de paramètre. 

1.  Pour afficher les détails de l’instance de base de données RDS associée au groupe cible renvoyé, exécutez [describe-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxy-targets.html). 

## API RDS
<a name="rds-proxy-viewing.api"></a>

 Pour afficher vos proxies à l'aide de l'API RDS, utilisez l'opération [DescribeDBProxies](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBProxies.html). Elle renvoie les valeurs du type de données [DBProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DBProxy.html). 

 Pour afficher les détails des paramètres de connexion du proxy, utilisez les identifiants de proxy à partir de la valeur renvoyée à l'aide de l'opération [DescribeDBProxyTargetGroups](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBProxyTargetGroups.html). Elle renvoie les valeurs du type de données [DBProxyTargetGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DBProxyTargetGroup.html). 

 Pour voir l'instance RDS ou le cluster de base de données Aurora associé au proxy, utilisez l'opération [DescribeDBProxyTargets](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBProxyTargets.html). Elle renvoie les valeurs du type de données [DBProxyTarget](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DBProxyTarget.html). 

# Connexion à une base de données via RDS Proxy
<a name="rds-proxy-connecting"></a>

La méthode pour se connecter à une instance RDS, que ce soit par un proxy ou en se connectant directement à la base de données, est globalement identique. Pour plus d’informations, consultez [Présentation des points de terminaison proxy](rds-proxy-endpoints.md#rds-proxy-endpoints-overview). 

**Topics**
+ [Connexion à une base de données à l'aide des informations d'identification](#rds-proxy-connecting-native)
+ [Connexion à une base de données à l'aide de l'authentification IAM](#rds-proxy-connecting-iam)
+ [Considérations relatives à la connexion à Microsoft SQL Server](#rds-proxy-connecting-sqlserver)
+ [Considérations relatives à la connexion à PostgreSQL](#rds-proxy-connecting-postgresql)

## Connexion à une base de données à l'aide des informations d'identification
<a name="rds-proxy-connecting-native"></a>

 Procédez comme suit pour vous connecter à un proxy à l'aide des informations d'identification de base de données : 

1.  Recherchez le point de terminaison du proxy. Dans le AWS Management Console, vous pouvez trouver le point de terminaison sur la page de détails du proxy correspondant. Avec le AWS CLI, vous pouvez utiliser la [describe-db-proxies](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxies.html)commande. L’exemple suivant montre comment procéder. 

   ```
   # Add --output text to get output as a simple tab-separated list.
   $ aws rds describe-db-proxies --query '*[*].{DBProxyName:DBProxyName,Endpoint:Endpoint}'
   [
       [
           {
               "Endpoint": "the-proxy.proxy-demo.us-east-1.rds.amazonaws.com",
               "DBProxyName": "the-proxy"
           },
           {
               "Endpoint": "the-proxy-other-secret.proxy-demo.us-east-1.rds.amazonaws.com",
               "DBProxyName": "the-proxy-other-secret"
           },
           {
               "Endpoint": "the-proxy-rds-secret.proxy-demo.us-east-1.rds.amazonaws.com",
               "DBProxyName": "the-proxy-rds-secret"
           },
           {
               "Endpoint": "the-proxy-t3.proxy-demo.us-east-1.rds.amazonaws.com",
               "DBProxyName": "the-proxy-t3"
           }
       ]
   ]
   ```

1.  Spécifier le point de terminaison comme paramètre hôte dans la chaîne de connexion de votre application cliente. Par exemple, spécifiez le point de terminaison du proxy comme valeur pour l’option `mysql -h` ou `psql -h`. 

1.  Fournissez le nom d’utilisateur et le mot de passe de base de données que vous utilisez habituellement. 

## Connexion à une base de données à l'aide de l'authentification IAM
<a name="rds-proxy-connecting-iam"></a>

 Lorsque vous utilisez l'authentification IAM avec RDS Proxy, vous disposez de deux options d'authentification entre votre client et votre proxy :
+ Configurez les utilisateurs de votre base de données pour qu'ils s'authentifient à l'aide de noms d'utilisateur et de mots de passe habituels. RDS Proxy récupère le nom d'utilisateur et les informations d'identification du mot de passe auprès de Secrets Manager. La connexion depuis RDS Proxy à la base de données sous-jacente ne passe pas par IAM.
+ Vous pouvez également utiliser l'authentification end-to-end IAM, qui se connecte à votre base de données via le proxy à l'aide d'IAM sans avoir besoin d'informations d'identification de base de données.

 Pour vous connecter à RDS Proxy à l’aide de l’authentification IAM, suivez la même procédure de connexion générale que pour vous connecter avec une authentification IAM à une instance de base de données RDS. Pour obtenir des informations générales sur l’utilisation d’IAM, consultez [Sécurité dans Amazon RDS ( Aurora)](UsingWithRDS.md). Si vous utilisez l'authentification end-to-end IAM, fournissez le plug-in d'authentification IAM à votre utilisateur de base de données. Consultez [Création d’un compte de base de données à l’aide de l’authentification IAM](UsingWithRDS.IAMDBAuth.DBAccounts.md).

 Les principales différences dans l’utilisation d’IAM pour RDS Proxy sont les suivantes : 
+ Avec l'authentification IAM standard, les utilisateurs de la base de données disposent d'informations d'identification régulières dans la base de données. Vous configurez des secrets Secrets Manager contenant ces noms et mots de passe d’utilisateur, et autorisez RDS Proxy à récupérer les informations d’identification à partir d’Secrets Manager. L’authentification IAM s’applique à la connexion entre votre programme client et le proxy. Le proxy s’authentifie ensuite à la base de données à l’aide des informations d’identification (nom d’utilisateur et mot de passe) extraites via Secrets Manager.
+ Avec l'authentification end-to-end IAM, vous n'avez pas besoin de configurer les secrets de Secrets Manager pour les informations d'identification de base de données. L'authentification IAM s'applique à la connexion entre le client et le proxy et la base de données.
+ Spécifiez le point de terminaison du proxy plutôt que celui de l’instance, du cluster ou du lecteur. Pour plus d’informations sur le point de terminaison du proxy, consultez [Connexion à votre instance de base de données à l'aide de l'authentification IAM.](UsingWithRDS.IAMDBAuth.Connecting.md).
+ Veillez à utiliser le protocole TLS (Transport Layer Security)/SSL (Secure Sockets Layer) lorsque vous vous connectez à un proxy avec l’authentification IAM.

Vous pouvez accorder l’accès au proxy à un utilisateur spécifique en modifiant la politique IAM. Un exemple suit.

```
"Resource": "arn:aws:rds-db:us-east-2:1234567890:dbuser:prx-ABCDEFGHIJKL01234/db_user"
```

**Astuce**  
Lorsque vous configurez l'authentification IAM pour les connexions au proxy RDS, suivez ces directives importantes pour éviter les problèmes de connexion :  
N'accordez pas le `rds_iam` rôle tout en conservant l'authentification générale par mot de passe pour le même utilisateur ou le même rôle de base de données.
N'oubliez pas que lorsque les clients se connectent au proxy RDS à l'aide de l'authentification IAM, le proxy RDS se connecte toujours à la base de données à l'aide de l'authentification par mot de passe via Secrets Manager.
Si vous rencontrez fréquemment des interruptions et des reconnexions de connexion, supprimez toutes les autorisations existantes `rds_iam` accordées à l'utilisateur ou au rôle et utilisez uniquement l'authentification par mot de passe.
Assurez-vous que votre politique de mot de passe répond aux exigences du protocole SCRAM-SHA-256 en matière de caractères sûrs.
La combinaison de méthodes d'authentification IAM et par mot de passe pour le même utilisateur de base de données peut entraîner une instabilité de connexion.

## Considérations relatives à la connexion à Microsoft SQL Server
<a name="rds-proxy-connecting-sqlserver"></a>

Pour vous connecter à un proxy à l’aide de l’authentification IAM, vous n’utilisez pas le champ du mot de passe. Vous devez plutôt fournir la propriété de jeton appropriée pour chaque type de pilote de base de données dans le champ du jeton. Par exemple, utilisez la propriété `accessToken` pour JDBC ou la propriété `sql_copt_ss_access_token` pour ODBC. Vous pouvez également utiliser la `AccessToken` propriété du SqlClient pilote .NET. Vous ne pouvez pas utiliser l’authentification IAM avec des clients qui ne prennent pas en charge les propriétés des jetons.

Dans certaines conditions, un proxy ne peut pas partager une connexion à une base de données et épingle la connexion entre votre application cliente et le proxy vers une connexion de base de données dédiée. Pour plus d’informations sur ces conditions, consultez [Contournement de l’épinglage d’un proxy RDS](rds-proxy-pinning.md).

## Considérations relatives à la connexion à PostgreSQL
<a name="rds-proxy-connecting-postgresql"></a>

Si vous créez un nouvel utilisateur de base de données PostgreSQL pour vous connecter au proxy RDS, veillez à lui accorder `CONNECT` sur la base de données. À défaut de ce privilège, l’utilisateur ne sera pas en mesure de se connecter. Pour plus d’informations, consultez [Ajout d’un nouvel utilisateur de base de données à une base de données PostgreSQL lors de l’utilisation du proxy RDS](rds-proxy-new-db-user.md#rds-proxy-new-db-user-pg).

Lorsqu’un client démarre une connexion à une base de données PostgreSQL, il envoie un message de démarrage. Ce message inclut des paires de chaînes de noms de paramètres et de valeurs. Pour plus de détails, consultez `StartupMessage` dans la section relative aux [formats de message PostgreSQL](https://www.postgresql.org/docs/current/protocol-message-formats.html) de la documentation PostgreSQL. 

Lors de la connexion via un proxy RDS, le message de démarrage peut inclure les paramètres actuellement reconnus suivants : 
+  `user` 
+  `database`

 Le message de démarrage peut également inclure les paramètres d’exécution supplémentaires suivants : 
+ `[application\$1name](https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-APPLICATION-NAME) `
+ `[client\$1encoding](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-CLIENT-ENCODING) `
+ `[DateStyle](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-DATESTYLE) `
+ `[TimeZone](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-TIMEZONE) `
+  `[extra\$1float\$1digits](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-EXTRA-FLOAT-DIGITS) `
+  `[ search\$1path ](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-SEARCH-PATH)` 

 Pour plus d’informations sur la messagerie PostgreSQL, consultez [protocole frontend/backend](https://www.postgresql.org/docs/current/protocol.html) dans la documentation PostgreSQL.

 Pour PostgreSQL, si vous utilisez JDBC, nous vous recommandons ce qui suit pour éviter l’épinglage :
+ Définissez le paramètre de connexion JDBC `assumeMinServerVersion` sur `9.0` au minimum afin d’éviter l’épinglage. Cela empêche le pilote JDBC d’effectuer un aller-retour supplémentaire au démarrage de la connexion lorsqu’il exécute `SET extra_float_digits = 3`. 
+ Définissez le paramètre de connexion JDBC `ApplicationName` sur `any/your-application-name` afin d’éviter l’épinglage. Cela empêche le pilote JDBC d’effectuer un aller-retour supplémentaire au démarrage de la connexion lorsqu’il exécute `SET application_name = "PostgreSQL JDBC Driver"`. Notez que le paramètre JDBC est `ApplicationName`, mais que le paramètre PostgreSQL `StartupMessage` est `application_name`.

Pour plus d’informations, consultez [Contournement de l’épinglage d’un proxy RDS](rds-proxy-pinning.md). Pour plus d’informations sur la connexion à l’aide de JDBC, consultez [Connexion à la base de données](https://jdbc.postgresql.org/documentation/setup/) dans la documentation PostgreSQL.

# Gestion d’un RDS Proxy
<a name="rds-proxy-managing"></a>

 Cette section fournit des informations sur la gestion du fonctionnement et de la configuration de RDS Proxy. Ces procédures aident votre application à utiliser de manière optimale les connexions de base de données et à obtenir une réutilisation maximale des connexions. Plus vous tirez profit de la réutilisation des connexions, plus vous évitez une surcharge de l’UC et de la mémoire. Cela réduit la latence de votre application et permet à la base de données de dédier une plus grande partie de ses ressources au traitement des requêtes d’application. 

**Topics**
+ [Modification d’un RDS Proxy](rds-proxy-modifying-proxy.md)
+ [Ajout d’un nouvel utilisateur de base de données lors de l’utilisation du proxy RDS](rds-proxy-new-db-user.md)
+ [Passage de l'authentification IAM standard à l'authentification end-to-end IAM pour le proxy RDS](rds-proxy-iam-migration.md)
+ [Considérations relatives à la connexion RDS Proxy](rds-proxy-connections.md)
+ [Contournement de l’épinglage d’un proxy RDS](rds-proxy-pinning.md)
+ [Suppression d'un RDS Proxy](rds-proxy-deleting.md)

# Modification d’un RDS Proxy
<a name="rds-proxy-modifying-proxy"></a>

 Vous pouvez modifier des paramètres spécifiques associés à un proxy après sa création. Pour ce faire, modifiez le proxy lui-même, son groupe cible associé, ou les deux. Chaque proxy dispose d’un groupe cible associé. 

## AWS Management Console
<a name="rds-proxy-modifying-proxy.console"></a>

**Important**  
Les valeurs des champs **Client authentication type** (Type d’authentification client) et **IAM authentication** (Authentification IAM) s’appliquent à tous les secrets de Secrets Manager associés à ce proxy. Pour spécifier des valeurs différentes pour chaque secret, modifiez votre proxy en utilisant plutôt l'API AWS CLI ou l'API.

**Modifications des paramètres d’un proxy**

1. Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)l'adresse.

1.  Dans le panneau de navigation, sélectionnez **Proxies**. 

1.  Dans la liste de proxy, choisissez celui dont vous souhaitez modifier les paramètres ou accédez à sa page de détails. 

1.  Pour **Actions**, choisissez **Modifier**. 

1.  Saisissez ou sélectionnez les propriétés à modifier. Vous pouvez modifier les valeurs suivantes : 
   +  **Identifiant du proxy** : renommez le proxy en saisissant un nouvel identifiant. 
   +  **Délai d’inactivité de la connexion client** – Saisissez une période pour le délai d’inactivité de la connexion client. 
   +  **Rôle IAM** – Modifiez le rôle IAM utilisé pour récupérer les secrets de Secrets Manager. 
**Note**  
Vous ne pouvez pas créer de nouveau rôle IAM si vous définissez le **schéma d'authentification par défaut** sur Authentification **IAM**.
   +  **Secrets de Secrets Manager** – Ajoutez ou supprimez des secrets Secrets Manager. Ces secrets correspondent aux noms d’utilisateur et mots de passe de la base de données. 
   +  **Type d'authentification client** : modifiez le type d'authentification pour les connexions client au proxy. 
   +  **IAM authentication** (Authentification IAM) : exigez ou désactivez l’authentification IAM pour les connexions au proxy. 
   +  **Schéma d'authentification par** défaut : modifiez le schéma d'authentification par défaut utilisé par le proxy pour les connexions client au proxy et les connexions entre le proxy et la base de données sous-jacente. 
   +  **Exiger la Sécurité de la couche transport** – Activez ou désactivez l’exigence du protocole TLS (Transport Layer Security). 
   +  **Groupe de sécurité de VPC** – Ajoutez ou supprimez des groupes de sécurité de VPC que le proxy doit utiliser. 
   +  **Activation de la journalisation améliorée** – Activez ou désactivez la journalisation améliorée. 

1.  Sélectionnez **Modify**. 

Si vous n’avez pas trouvé les paramètres répertoriés que vous souhaitez modifier, procédez comme suit pour mettre à jour le groupe cible du proxy. Le *groupe cible* associé à un proxy contrôle les paramètres liés aux connexions à la base de données physique. Chaque proxy dispose d’un groupe cible associé, nommé `default`, qui est créé automatiquement avec le proxy. Vous ne pouvez pas renommer le groupe cible par défaut.

 Vous pouvez uniquement modifier le groupe cible à partir de la page de détails du proxy, et non depuis la liste de la page **Proxies**. 

**Modification des paramètres d’un groupe cible proxy**

1.  À partir de la page **Proxies**, accédez à la page des détails d’un proxy. 

1.  Pour les **Groupes cibles**, choisissez le lien `default`. Actuellement, tous les proxy ont un groupe cible unique nommé `default`. 

1.  Sur la page de détails du groupe cible **par défaut**, sélectionnez **Modifier**. 

1.  Définissez de nouveaux paramètres pour les propriétés que vous pouvez modifier : 
   +  **Base de données** : choisissez une autre instance ou un autre cluster de base de données RDS. 
   +  **Nombre maximal de connexions dans le groupe de connexions** – Ajustez le pourcentage du nombre de connexions maximum disponibles que le proxy peut utiliser. 
   +  **Filtre d’épinglage de session** – (Facultatif) Choisissez un filtre d’épinglage de session. Cela permet de contourner les mesures de sécurité par défaut pour le multiplexage des connexions de base de données entre les connexions client. Actuellement, le paramètre n’est pas pris en charge pour PostgreSQL. Le seul choix est `EXCLUDE_VARIABLE_SETS`. 

     Avec l’activation de ce paramètre, les variables de session d’une connexion peuvent avoir un impact sur d’autres connexions. Cela peut entraîner des erreurs ou des problèmes d’exactitude si vos requêtes dépendent de valeurs de variables de session définies en dehors de la transaction en cours. Vous pouvez utiliser cette option après avoir vérifié que vos applications peuvent partager des connexions de base de données en toute sécurité entre les connexions client.

     Les modèles suivants peuvent être considérés comme sûrs :
     + Instructions `SET` dans lesquelles aucune modification n’est apportée à la valeur effective de la variable de session, c’est-à-dire qu’aucune modification n’est apportée à la variable de session.
     + Vous modifiez la valeur de la variable de session et exécutez une instruction dans la même transaction.

     Pour plus d’informations, consultez [Contournement de l’épinglage d’un proxy RDS](rds-proxy-pinning.md). 
   +  **Délai d’expiration d’emprunt de connexion** – Ajustez l’intervalle du délai d’attente d’emprunt de connexion. Ce paramètre s’applique lorsque le nombre maximal de connexions est déjà utilisé pour le proxy. Ce paramètre permet de définir combien de temps le proxy doit attendre la disponibilité d’une connexion avant de renvoyer une erreur de dépassement de délai d’attente. 
   + **Requête d’initialisation**. (Facultatif) Ajoutez une requête d’initialisation ou modifiez la requête actuelle. Vous pouvez spécifier une ou plusieurs instructions SQL que le proxy doit exécuter lors de l’ouverture de chaque nouvelle connexion à la base de données. Ce paramètre est généralement utilisé avec des instructions `SET` pour s’assurer que chaque connexion a des paramètres identiques. Assurez-vous que la requête que vous ajoutez est valide. Pour inclure plusieurs variables dans une seule instruction `SET`, utilisez des virgules comme séparateurs. Par exemple :

     ```
     SET variable1=value1, variable2=value2
     ```

     Pour plusieurs instructions, utilisez des points-virgules comme séparateur.

    Certaines propriétés, telles que l’identifiant du groupe cible et le moteur de base de données, sont corrigées. 

1.  Sélectionnez **Modification du groupe cible**. 

## AWS CLI
<a name="rds-proxy-modifying-proxy.cli"></a>

 Pour modifier un proxy à l'aide de AWS CLI, utilisez les commandes [modify-db-proxymodify-db-proxy-target](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy.html)[-group [deregister-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/deregister-db-proxy-targets.html)](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy-target-group.html)et [register-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/register-db-proxy-targets.html). 

 Avec la commande `modify-db-proxy`, vous pouvez modifier des propriétés, par exemple : 
+  Ensemble des secrets Secrets Manager utilisés par le proxy. 
+  TLS requis ou non. 
+  Délai d’expiration de la connexion client inactive. 
+  Nécessité ou non de consigner des informations supplémentaires des instructions SQL pour le débogage. 
+  Rôle IAM utilisé pour récupérer les secrets Secrets Manager. 
+  Groupes de sécurité utilisés par le proxy. 
+ Schéma d'authentification par défaut associé au proxy.

 L’exemple suivant montre comment renommer un proxy existant. 

```
aws rds modify-db-proxy --db-proxy-name the-proxy --new-db-proxy-name the_new_name
```

Pour modifier les paramètres liés à la connexion ou renommer le groupe cible, utilisez la commande `modify-db-proxy-target-group`. Actuellement, tous les proxy ont un groupe cible unique nommé `default`. Lorsque vous travaillez avec ce groupe cible, vous indiquez le nom du proxy et `default` pour le nom du groupe cible. Vous ne pouvez pas renommer le groupe cible par défaut.

 L’exemple suivant montre comment vérifier le paramètre `MaxIdleConnectionsPercent` d’un proxy, puis le modifier à l’aide du groupe cible. 

```
aws rds describe-db-proxy-target-groups --db-proxy-name the-proxy

{
    "TargetGroups": [
        {
            "Status": "available",
            "UpdatedDate": "2019-11-30T16:49:30.342Z",
            "ConnectionPoolConfig": {
                "MaxIdleConnectionsPercent": 50,
                "ConnectionBorrowTimeout": 120,
                "MaxConnectionsPercent": 100,
                "SessionPinningFilters": []
            },
            "TargetGroupName": "default",
            "CreatedDate": "2019-11-30T16:49:27.940Z",
            "DBProxyName": "the-proxy",
            "IsDefault": true
        }
    ]
}

aws rds modify-db-proxy-target-group --db-proxy-name the-proxy --target-group-name default --connection-pool-config '
{ "MaxIdleConnectionsPercent": 75 }'

{
    "DBProxyTargetGroup": {
        "Status": "available",
        "UpdatedDate": "2019-12-02T04:09:50.420Z",
        "ConnectionPoolConfig": {
            "MaxIdleConnectionsPercent": 75,
            "ConnectionBorrowTimeout": 120,
            "MaxConnectionsPercent": 100,
            "SessionPinningFilters": []
        },
        "TargetGroupName": "default",
        "CreatedDate": "2019-11-30T16:49:27.940Z",
        "DBProxyName": "the-proxy",
        "IsDefault": true
    }
}
```

 Grâce aux commandes `deregister-db-proxy-targets` et `register-db-proxy-targets`, vous modifiez les instances de base de données RDS auxquelles le proxy est associé via son groupe cible. Actuellement, chaque proxy peut se connecter à une instance de base de données RDS. Le groupe cible suit les détails de connexion de toutes les instances de base de données RDS dans une configuration multi-AZ.

 L’exemple suivant commence par un proxy associé à un cluster Aurora MySQL nommé `cluster-56-2020-02-25-1399`. L’exemple vous explique comment modifier le proxy afin qu’il puisse se connecter à un autre cluster nommé `provisioned-cluster`. 

 Lorsque vous travaillez avec une instance de base de données RDS, sélectionnez l’option `--db-instance-identifier`. 

 L’exemple suivant modifie un proxy Aurora MySQL. Un proxy PostgreSQL Aurora dispose du port 5432. 

```
aws rds describe-db-proxy-targets --db-proxy-name the-proxy

{
    "Targets": [
        {
            "Endpoint": "instance-9814.demo.us-east-1.rds.amazonaws.com",
            "Type": "RDS_INSTANCE",
            "Port": 3306,
            "RdsResourceId": "instance-9814"
        },
        {
            "Endpoint": "instance-8898.demo.us-east-1.rds.amazonaws.com",
            "Type": "RDS_INSTANCE",
            "Port": 3306,
            "RdsResourceId": "instance-8898"
        },
        {
            "Endpoint": "instance-1018.demo.us-east-1.rds.amazonaws.com",
            "Type": "RDS_INSTANCE",
            "Port": 3306,
            "RdsResourceId": "instance-1018"
        },
        {
            "Type": "TRACKED_CLUSTER",
            "Port": 0,
            "RdsResourceId": "cluster-56-2020-02-25-1399"
        },
        {
            "Endpoint": "instance-4330.demo.us-east-1.rds.amazonaws.com",
            "Type": "RDS_INSTANCE",
            "Port": 3306,
            "RdsResourceId": "instance-4330"
        }
    ]
}

aws rds deregister-db-proxy-targets --db-proxy-name the-proxy --db-cluster-identifier cluster-56-2020-02-25-1399

aws rds describe-db-proxy-targets --db-proxy-name the-proxy

{
    "Targets": []
}

aws rds register-db-proxy-targets --db-proxy-name the-proxy --db-cluster-identifier provisioned-cluster

{
    "DBProxyTargets": [
        {
            "Type": "TRACKED_CLUSTER",
            "Port": 0,
            "RdsResourceId": "provisioned-cluster"
        },
        {
            "Endpoint": "gkldje.demo.us-east-1.rds.amazonaws.com",
            "Type": "RDS_INSTANCE",
            "Port": 3306,
            "RdsResourceId": "gkldje"
        },
        {
            "Endpoint": "provisioned-1.demo.us-east-1.rds.amazonaws.com",
            "Type": "RDS_INSTANCE",
            "Port": 3306,
            "RdsResourceId": "provisioned-1"
        }
    ]
}
```

## API RDS
<a name="rds-proxy-modifying-proxy.api"></a>

 Pour modifier un proxy à l'aide de l'API RDS, vous devez utiliser les opérations [ModifierDBProxy, Modifier DBProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxy.html) [TargetGroup, Désenregistrer DBProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxyTargetGroup.html) [les cibles](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeregisterDBProxyTargets.html) et [Enregistrer DBProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RegisterDBProxyTargets.html) les cibles. 

 Avec `ModifyDBProxy`, vous pouvez modifier des propriétés, par exemple : 
+  Ensemble des secrets Secrets Manager utilisés par le proxy. 
+  TLS requis ou non. 
+  Délai d’expiration de la connexion client inactive. 
+  Nécessité ou non de consigner des informations supplémentaires des instructions SQL pour le débogage. 
+  Rôle IAM utilisé pour récupérer les secrets Secrets Manager. 
+  Groupes de sécurité utilisés par le proxy. 

Avec `ModifyDBProxyTargetGroup`, vous pouvez modifier les paramètres liés à la connexion. Actuellement, tous les proxy ont un groupe cible unique nommé `default`. Lorsque vous travaillez avec ce groupe cible, vous indiquez le nom du proxy et `default` pour le nom du groupe cible. Vous ne pouvez pas renommer le groupe cible par défaut.

 Avec `DeregisterDBProxyTargets` et `RegisterDBProxyTargets`, vous pouvez modifier l’instance de base de données RDS à laquelle/auquel le proxy est associé via son groupe cible. Actuellement, chaque proxy peut se connecter à une instance de base de données RDS . Le groupe cible suit les détails de connexion des instances de base de données RDS dans une configuration multi-AZ . 

# Ajout d’un nouvel utilisateur de base de données lors de l’utilisation du proxy RDS
<a name="rds-proxy-new-db-user"></a>

Dans certains cas, vous pouvez ajouter un nouvel utilisateur de base de données à une instance ou un cluster de bases de données RDS qui est associé à un proxy. Procédez selon que vous utilisez l'authentification standard avec les secrets de Secrets Manager ou l'authentification end-to-end IAM.

Si vous utilisez l'authentification IAM standard, suivez ces instructions :

1. Créez un nouveau secret Secrets Manager en suivant les instructions décrites dans la section [Configuration des informations d'identification de base de données pour le proxy RDS](rds-proxy-secrets-arns.md). 

1. Mettez à jour le rôle IAM pour permettre au proxy RDS d’accéder au nouveau secret Secrets Manager. Pour ce faire, mettez à jour la section des ressources de la politique de rôle IAM. 

1. Modifiez le proxy RDS pour ajouter le nouveau secret de Secrets Manager sous **Secrets de Secrets Manager**.

1.  Si le nouvel utilisateur remplace un utilisateur existant, mettez à jour les informations d’identification stockées dans le secret Secrets Manager du proxy pour l’utilisateur existant. 

Si vous utilisez l'authentification end-to-end IAM, vous devez créer l'utilisateur de base de données et configurer les autorisations IAM. Pour ce faire, suivez les étapes suivantes.

1. Créez un nouvel utilisateur de base de données dans votre base de données qui correspond au nom d'utilisateur ou de rôle IAM que vous souhaitez utiliser pour l'authentification.

1. Assurez-vous que l'utilisateur de la base de données est configuré avec le plug-in d'authentification IAM dans la base de données. Consultez [Création d’un compte de base de données à l’aide de l’authentification IAM](UsingWithRDS.IAMDBAuth.DBAccounts.md).

1. Mettez à jour la politique IAM pour accorder l'`rds-db:connect`autorisation à l'utilisateur ou au rôle IAM, comme décrit dans. [Création d'une politique IAM pour l'authentification end-to-end IAM](rds-proxy-iam-setup.md#rds-proxy-iam-setup-e2e-steps)

1. Assurez-vous que votre proxy est configuré pour utiliser l'authentification IAM comme schéma d'authentification par défaut.

Avec l'authentification end-to-end IAM, vous n'avez pas besoin de gérer les informations d'identification de la base de données dans les secrets de Secrets Manager, car les informations d'identification IAM sont utilisées pour l'authentification du client vers le proxy et du proxy vers la base de données. 

## Ajout d’un nouvel utilisateur de base de données à une base de données PostgreSQL lors de l’utilisation du proxy RDS
<a name="rds-proxy-new-db-user-pg"></a>

Lorsque vous ajoutez un nouvel utilisateur à votre base de données PostgreSQL, si vous avez exécuté la commande suivante :

```
REVOKE CONNECT ON DATABASE postgres FROM PUBLIC;
```

Accordez à l’utilisateur `rdsproxyadmin` le privilège `CONNECT` afin qu’il puisse surveiller les connexions sur la base de données cible. 

```
GRANT CONNECT ON DATABASE postgres TO rdsproxyadmin;
```

Vous pouvez également autoriser d’autres utilisateurs de la base de données cible à effectuer des surveillances de l’état en modifiant `rdsproxyadmin` pour l’utilisateur de la base de données dans la commande ci-dessus.

## Modification du mot de passe d’un utilisateur de base de données lors de l’utilisation du proxy RDS
<a name="rds-proxy-changing-db-user-password"></a>

Dans certains cas, vous pouvez modifier le mot de passe d’un utilisateur de base de données d’une instance de base de données RDS associée à un proxy. Le cas échéant, mettez à jour le secret Secrets Manager correspondant avec le nouveau mot de passe.

Si vous utilisez l'authentification end-to-end IAM, vous n'avez pas besoin de mettre à jour les mots de passe dans les secrets de Secrets Manager.

# Passage de l'authentification IAM standard à l'authentification end-to-end IAM pour le proxy RDS
<a name="rds-proxy-iam-migration"></a>

 Si vous utilisez actuellement l'authentification IAM standard pour le proxy RDS, dans laquelle les clients s'authentifient auprès du proxy via IAM mais le proxy se connecte à la base de données à l'aide de secrets, vous pouvez passer à l'authentification IAM dans laquelle les connexions client-to-proxy et proxy-to-database les connexions utilisent l'authentification end-to-end IAM. 

**Pour passer à l' end-to-endauthentification IAM**

1. **Mettre à jour les autorisations du rôle IAM du proxy RDS**

   Créez une politique d'autorisation de proxy mise à jour qui inclut à la fois Secrets Manager et `rds:db-connect` les autorisations :

   ```
   # Create updated proxy permission policy
   cat > updated-proxy-policy.json ≪ EOF
   ```

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "GetSecretsValue",
         "Action": [
           "secretsmanager:GetSecretValue"
         ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:secretsmanager:us-east-1:123456789012:secret:secretName-1234f"
         ]
       },
       {
         "Sid": "RdsDBConnect",
         "Action": [
           "rds-db:connect"
         ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:rds-db:us-east-1:123456789012:dbuser:cluster-ABCDEFGHIJKL01234/jane_doe"
         ]
       }
     ]
   }
   ```

   Mettez à jour votre politique de rôle en tant que proxy :

   ```
   aws iam put-role-policy \
               --role-name RDSProxyRole \
               --policy-name UpdatedProxyPermissions \
               --policy-document file://updated-proxy-policy.json
   ```

1. Modifiez votre proxy RDS pour activer l'authentification end-to-end IAM

   ```
   aws rds modify-db-proxy \
     --db-proxy-name my-database-proxy \
     --default-auth-scheme IAM_AUTH \
     --region us-east-1
   ```

   Vérifiez que l'état du proxy RDS est **disponible** et qu'il l'`DefaultAuthScheme`est `IAM_AUTH` avant de poursuivre afin de garantir l'absence de temps d'arrêt pendant la migration.

   ```
   aws rds describe-db-proxies --db-proxy-name my-database-proxy --region us-east-1
   ```

   Sortie attendue :

   ```
   {
     "DBProxies": [
       {
         "DBProxyName": "my-database-proxy",
         "DBProxyArn": "arn:aws:rds:us-east-1:123456789012:db-proxy:prx-0123456789abcdef",
         "Status": "available",
         ...
         "DefaultAuthScheme": "IAM_AUTH"
       }
     ]
   }
   ```

1. Activer l'authentification IAM sur la base de données

   ```
   aws rds modify-db-cluster \
     --db-cluster-identifier my-database-cluster \
     --enable-iam-database-authentication \
     --region us-east-1
   ```

1. Configuration de l'utilisateur de base de données pour l'authentification IAM

   Pour RDS pour PostgreSQL :

   ```
   GRANT rds_iam TO jane_doe;
   ```

   Pour RDS pour MySQL et RDS pour MariaDB :

   ```
   ALTER USER 'jane_doe' IDENTIFIED WITH AWSAuthenticationPlugin AS 'RDS';
   ALTER USER 'jane_doe'@'%' REQUIRE SSL;
   ```

1. Le code de votre application client n'a pas besoin de changer. Le processus de connexion reste le même :

   Pour RDS pour PostgreSQL :

   ```
   # Generate authentication token
   export PGPASSWORD=$(aws rds generate-db-auth-token \
     --hostname my-database-proxy.proxy-ABCDEFGHIJKL01234.us-east-1.rds.amazonaws.com \
     --port 5432 \
     --username jane_doe \
     --region us-east-1)
   
   # Connect to database through proxy
   psql "host=my-database-proxy.proxy-ABCDEFGHIJKL01234.us-east-1.rds.amazonaws.com port=5432 user=jane_doe dbname=postgres password=$PGPASSWORD sslmode=require sslrootcert=us-east-1-bundle.pem"
   ```

   Pour RDS pour MySQL et RDS pour MariaDB :

   ```
   # Generate authentication token
   export MYSQL_PWD=$(aws rds generate-db-auth-token \
     --hostname my-database-proxy.proxy-ABCDEFGHIJKL01234.us-east-1.rds.amazonaws.com \
     --port 3306 \
     --username jane_doe \
     --region us-east-1)
   
   # Connect to database through proxy
   mysql -h my-database-proxy.proxy-ABCDEFGHIJKL01234.us-east-1.rds.amazonaws.com \
     -P 3306 \
     -u jane_doe \
     --ssl-ca=us-east-1-bundle.pem \
     --enable-cleartext-plugin
   ```

# Considérations relatives à la connexion RDS Proxy
<a name="rds-proxy-connections"></a>

## Configuration des paramètres de connexion
<a name="rds-proxy-connection-pooling-tuning"></a>

Pour ajuster le regroupement de connexion RDS Proxy, vous pouvez modifier les paramètres suivants :
+ [IdleClientTimeout](#rds-proxy-connection-pooling-tuning.idleclienttimeout)
+ [MaxConnectionsPercent](#rds-proxy-connection-pooling-tuning.maxconnectionspercent)
+ [MaxIdleConnectionsPercent](#rds-proxy-connection-pooling-tuning.maxidleconnectionspercent)
+ [ConnectionBorrowTimeout](#rds-proxy-connection-pooling-tuning.connectionborrowtimeout)

### IdleClientTimeout
<a name="rds-proxy-connection-pooling-tuning.idleclienttimeout"></a>

Vous pouvez spécifier la durée d’inactivité d’une connexion client avant que le proxy puisse la fermer. 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. Réduisez le délai d’expiration de la connexion client inactive si vous souhaitez que le proxy supprime proactivement les connexions obsolètes. Si votre charge de travail se connecte régulièrement au proxy, augmentez le délai d’expiration de la connexion client inactive pour économiser le coût d’établissement de connexions.

Ce paramètre est représenté par le champ **Idle client connection timeout** (Délai d'inactivité de la connexion client) dans la console RDS et le paramètre `IdleClientTimeout` dans l'AWS CLI et l'API. Pour savoir comment modifier la valeur du champ **Idle client connection timeout** (Délai d’inactivité de la connexion client) dans la console RDS, consultez [AWS Management Console](rds-proxy-modifying-proxy.md#rds-proxy-modifying-proxy.console). Pour apprendre à modifier la valeur du paramètre `IdleClientTimeout`, utilisez la commande de la CLI [modify-db-proxy](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy.html) ou l'opération d'API [ModifyDBProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxy.html).

### MaxConnectionsPercent
<a name="rds-proxy-connection-pooling-tuning.maxconnectionspercent"></a>

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 **Connection pool maximum connections** (Connexions maximales du groupe de connexion) dans la console RDS et le paramètre `MaxConnectionsPercent` dans l'AWS CLI et l'API. 

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, car la charge de travail en a besoin.

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, consultez [AWS Management Console](rds-proxy-modifying-proxy.md#rds-proxy-modifying-proxy.console). Pour apprendre à modifier la valeur du paramètre `MaxConnectionsPercent`, utilisez la commande de la CLI [modify-db-proxy-target-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy-target-group.html) ou l'opération d'API [ModifyDBProxyTargetGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxyTargetGroup.html).

 Pour en savoir plus sur les limites de connexion aux bases de données, consultez [Nombre maximal de connexions aux bases de données](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.MaxConnections). 

### MaxIdleConnectionsPercent
<a name="rds-proxy-connection-pooling-tuning.maxidleconnectionspercent"></a>

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, RDS Proxy considère qu’une connexion à une base de données dans son groupe est *inactive* lorsqu’il n’y a pas eu d’activité sur la connexion pendant cinq minutes. 

La valeur `MaxIdleConnectionsPercent` est exprimée en pourcentage du paramètre `max_connections` du groupe de cibles de l’instance 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, si `MaxConnectionsPercent` est défini sur 80, la valeur par défaut de `MaxIdleConnectionsPercent` est 40. Si la valeur de `MaxConnectionsPercent` n’est pas spécifiée, alors pour RDS for SQL Server, `MaxIdleConnectionsPercent` est défini sur 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 paramètre `MaxIdleConnectionsPercent` du `DBProxyTargetGroup` dans l'AWS CLI et l'API. Pour apprendre à modifier la valeur du paramètre `MaxIdleConnectionsPercent`, utilisez la commande de la CLI [modify-db-proxy-target-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy-target-group.html) ou l'opération d'API [ModifyDBProxyTargetGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxyTargetGroup.html).

 Pour en savoir plus sur les limites de connexion aux bases de données, consultez [Nombre maximal de connexions aux bases de données](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.MaxConnections). 

### ConnectionBorrowTimeout
<a name="rds-proxy-connection-pooling-tuning.connectionborrowtimeout"></a>

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. Il s’applique également si aucune instance de base de données appropriée n’est disponible pour traiter la requête en raison, par exemple, d’une opération de basculement en cours. À l’aide de ce paramètre, vous pouvez définir la meilleure période d’attente pour votre application sans avoir à modifier le délai d’attente de requête dans votre code d’application.

Ce paramètre est représenté par le champ **Connection borrow timeout** (Délai d'expiration d'emprunt de connexion) dans la console RDS ou le paramètre `ConnectionBorrowTimeout` du `DBProxyTargetGroup` dans l'AWS CLI ou l'API. Pour savoir comment modifier la valeur du champ **Connection borrow timeout** (Délai d’expiration d’emprunt de connexion) dans la console RDS, consultez [AWS Management Console](rds-proxy-modifying-proxy.md#rds-proxy-modifying-proxy.console). Pour apprendre à modifier la valeur du paramètre `ConnectionBorrowTimeout`, utilisez la commande de la CLI [modify-db-proxy-target-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy-target-group.html) ou l'opération d'API [ModifyDBProxyTargetGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxyTargetGroup.html).

## Connexions client et connexions aux bases de données
<a name="rds-proxy-connection-life"></a>

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 RDS Proxy.

Tenez compte des aspects de configuration suivants avant d’implémenter un regroupement de connexions côté application :
+ Durée de vie maximale d’une connexion client : RDS Proxy impose une durée de vie maximale de 24 heures aux connexions client. Cette valeur n'est pas configurable. Configurez votre regroupement avec une durée de vie maximale inférieure à 24 heures afin d’éviter des interruptions inattendues de la connexion client. 
+ Délai d’inactivité de la connexion client : RDS Proxy 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 maximal de connexions client configurées dans votre regroupement de connexions côté application ne doit pas nécessairement être limité au paramètre **max\$1connections** pour RDS Proxy.

Le regroupement des connexions client prolonge leur durée de vie. Si vos connexions sont épinglées, le regroupement des connexions client peut réduire l'efficacité du multiplexage. Les connexions client épinglées mais inactives dans le regroupement de connexions côté application continuent de conserver une connexion à la base de données et empêchent la réutilisation de cette connexion 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.

# Contournement de l’épinglage d’un proxy RDS
<a name="rds-proxy-pinning"></a>

 Le multiplexage est plus efficace lorsque les demandes de base de données ne dépendent pas des informations d’état issues de demandes précédentes. Dans ce cas, le proxy RDS peut réutiliser une connexion à la fin de chaque transaction. Ces informations d’état incluent la plupart des variables et des paramètres de configuration que vous pouvez modifier à l’aide des instructions `SET` ou `SELECT`. Les transactions SQL sur une connexion client peuvent se multiplexer entre les connexions de base de données sous-jacentes par défaut. 

 Vos connexions au proxy peuvent entrer dans un état appelé *épinglage*. Lorsqu’une connexion est épinglée, chaque transaction ultérieure utilise la même connexion de base de données sous-jacente jusqu’à la fin de la session. De même, les autres connexions client ne peuvent pas réutiliser cette connexion à la base de données tant que la session n’est pas terminée. La session se termine lorsque la connexion client est supprimée. 

 Le proxy RDS épingle automatiquement une connexion client à une connexion de base de données spécifique lorsqu’il détecte un changement d’état de session qui n’est pas approprié pour d’autres sessions. L’épinglage réduit l’efficacité de la réutilisation des connexions. Si la totalité, ou presque, de vos connexions font l’objet d’un épinglage, pensez à modifier le code de votre application ou votre charge de travail afin de réduire les conditions à l’origine de l’épinglage. 

Par exemple, votre application modifie une variable de session ou un paramètre de configuration. Dans ce cas, les instructions ultérieures peuvent reposer sur la nouvelle variable ou le nouveau paramètre pour entrer en vigueur. Ainsi, lorsque le proxy RDS traite des demandes de modification des variables ou des paramètres de configuration de session, il épingle cette session à la connexion de base de données. De cette manière, l’état de session reste en vigueur pour toutes les transactions ultérieures de la même session. 

 Pour les moteurs de bases de données, cette règle ne s’applique pas à tous les paramètres que vous pouvez définir. Le proxy RDS suit certaines instructions et variables. Ainsi, le proxy RDS n’épingle pas la session lorsque vous les modifiez. Dans ce cas, le proxy RDS réutilise la connexion uniquement pour les autres sessions dont les valeurs de ces paramètres sont identiques. Pour plus de détails sur ce que le proxy RDS suit pour un moteur de base de données, consultez ce qui suit : 
+ [Ce que le proxy RDS suit pour les bases de données RDS for SQL Server](#rds-proxy-pinning.sql-server-tracked-vars)
+ [Ce que le proxy RDS suit pour les bases de données RDS for MariaDB et RDS for MySQL](#rds-proxy-pinning.mysql-tracked-vars)

## Ce que le proxy RDS suit pour les bases de données RDS for SQL Server
<a name="rds-proxy-pinning.sql-server-tracked-vars"></a>

Le proxy RDS suit les instructions SQL Server suivantes :
+ `USE`
+ `SET ANSI_NULLS`
+ `SET ANSI_PADDING`
+ `SET ANSI_WARNINGS`
+ `SET ARITHABORT`
+ `SET CONCAT_NULL_YIELDS_NULL`
+ `SET CURSOR_CLOSE_ON_COMMIT`
+ `SET DATEFIRST`
+ `SET DATEFORMAT`
+ `SET LANGUAGE`
+ `SET LOCK_TIMEOUT`
+ `SET NUMERIC_ROUNDABORT`
+ `SET QUOTED_IDENTIFIER`
+ `SET TEXTSIZE`
+ `SET TRANSACTION ISOLATION LEVEL`

## Ce que le proxy RDS suit pour les bases de données RDS for MariaDB et RDS for MySQL
<a name="rds-proxy-pinning.mysql-tracked-vars"></a>

Le proxy RDS suite les instructions MySQL et MariaDB suivantes :
+ DROP DATABASE
+ DROP SCHEMA
+ USE

Le proxy RDS suit les variables MySQL et MariaDB suivantes :
+ `AUTOCOMMIT`
+ `AUTO_INCREMENT_INCREMENT`
+ `CHARACTER SET (or CHAR SET)`
+ `CHARACTER_SET_CLIENT`
+ `CHARACTER_SET_DATABASE`
+ `CHARACTER_SET_FILESYSTEM`
+ `CHARACTER_SET_CONNECTION`
+ `CHARACTER_SET_RESULTS`
+ `CHARACTER_SET_SERVER`
+ `COLLATION_CONNECTION`
+ `COLLATION_DATABASE`
+ `COLLATION_SERVER`
+ `INTERACTIVE_TIMEOUT`
+ `NAMES`
+ `NET_WRITE_TIMEOUT`
+ `QUERY_CACHE_TYPE`
+ `SESSION_TRACK_SCHEMA`
+ `SQL_MODE`
+ `TIME_ZONE`
+ `TRANSACTION_ISOLATION (or TX_ISOLATION)`
+ `TRANSACTION_READ_ONLY (or TX_READ_ONLY)`
+ `WAIT_TIMEOUT`

**Note**  
Le proxy RDS suit les modifications apportées aux variables `TRANSACTION_ISOLATION` et `TRANSACTION_READ_ONLY` lorsque vous les définissez au cours dans le champ de la session. Toutefois, si vous les définissez lors du prochain champ de transaction, le proxy RDS épingle les connexions. Ce comportement s’applique que vous utilisiez une instruction `SET` ou `SET TRANSACTION` pour configurer ces valeurs.

## Minimiser l’épinglage
<a name="rds-proxy-pinning.minimizing"></a>

 Le réglage des performances du proxy RDS entraîne une tentative d’optimisation de la réutilisation des connexions au niveau de la transaction (multiplexage) en réduisant l’épinglage. 

Vous pouvez minimiser l’épinglage en procédant comme suit : 
+  Évitez les requêtes de base de données inutiles qui pourraient provoquer l’épinglage. 
+  Définissez les variables et les paramètres de configuration de manière cohérente sur toutes les connexions. De cette façon, les sessions ultérieures sont plus susceptibles de réutiliser les connexions qui ont ces paramètres particuliers. 

   En revanche, pour PostgreSQL, la définition d’une variable entraîne l’épinglage de la session. 
+  Pour une base de données de la famille de moteur MySQL, appliquez un filtre d’épinglage de session au proxy. Vous pouvez configurer certains types d’opérations pour qu’elles n’épinglent pas la session si vous savez que cela n’affecte pas le bon fonctionnement de votre application. 
+  Découvrez la fréquence de l'épinglage en surveillant la CloudWatch métrique `DatabaseConnectionsCurrentlySessionPinned` Amazon. Pour en savoir plus sur ce sujet et sur d'autres métriques CloudWatch, consultez la section [Surveillance des métriques RDS Proxy avec Amazon CloudWatchSurveillance de RDS Proxy avec CloudWatch](rds-proxy.monitoring.md). 
+  Si vous utilisez des instructions `SET` pour exécuter une initialisation identique pour chaque connexion client, vous pouvez conserver le multiplexage au niveau de la transaction. Dans ce cas, vous déplacez les instructions qui définissent l’état initial de la session vers la requête d’initialisation utilisée par un proxy. Cette propriété est une chaîne contenant une ou plusieurs instructions SQL, séparées par des points-virgules. 

   Par exemple, vous pouvez définir une requête d’initialisation pour un proxy qui établit certains paramètres de configuration. Le proxy RDS applique ensuite ces paramètres dès qu’il configure une nouvelle connexion pour ce proxy. Vous pouvez supprimer les instructions `SET` correspondantes de votre code d’application, afin qu’elles n’interfèrent pas avec le multiplexage au niveau de la transaction. 

   Pour les métriques relatives à la fréquence d’épinglage d’un proxy, consultez [Surveillance des métriques RDS Proxy avec Amazon CloudWatchSurveillance de RDS Proxy avec CloudWatch](rds-proxy.monitoring.md). 

## Conditions qui entraînent l’épinglage pour toutes les familles de moteurs
<a name="rds-proxy-pinning.all"></a>

 Le proxy épingle la session à la connexion en cours dans les situations suivantes où le multiplexage peut entraîner un comportement inattendu : 
+ Le proxy épingle la session si la taille de texte de l’instruction est supérieure à 16 Ko.

## Conditions qui entraînent l’épinglage pour RDS for Microsoft SQL Server
<a name="rds-proxy-pinning.sqlserver"></a>

 Pour RDS for SQL Server, les interactions suivantes entraînent également l’épinglage : 
+ Utilisation de plusieurs ensembles de résultats actifs (MARS). Pour plus d’informations sur MARS, consultez la documentation [Microsoft SQL Server](https://docs.microsoft.com/en-us/sql/relational-databases/native-client/features/using-multiple-active-result-sets-mars?view=sql-server-ver16).
+ Utilisation de la communication DTC (Distributed Transaction Coordinator).
+ Création de tables temporaires, de transactions, de curseurs ou d’instructions préparées.
+ À l’aide des instructions `SET` suivantes :
  + `SET ANSI_DEFAULTS`
  + `SET ANSI_NULL_DFLT`
  + `SET ARITHIGNORE`
  + `SET DEADLOCK_PRIORITY`
  + `SET FIPS_FLAGGER`
  + `SET FMTONLY`
  + `SET FORCEPLAN`
  + `SET IDENTITY_INSERT`
  + `SET NOCOUNT`
  + `SET NOEXEC`
  + `SET OFFSETS`
  + `SET PARSEONLY`
  + `SET QUERY_GOVERNOR_COST_LIMIT`
  + `SET REMOTE_PROC_TRANSACTIONS`
  + `SET ROWCOUNT`
  + `SET SHOWPLAN_ALL`, `SHOWPLAN_TEXT` et `SHOWPLAN_XML`
  + `SET STATISTICS`
  + `SET XACT_ABORT`

## Conditions qui entraînent l’épinglage pour RDS for MariaDB et RDS for MySQL
<a name="rds-proxy-pinning.mysql"></a>

 Pour MariaDB et MySQL, les interactions suivantes entraînent également l’épinglage : 
+ Le proxy épingle la session en cas d’instructions de verrouillage de table `LOCK TABLE`, `LOCK TABLES` ou `FLUSH TABLES WITH READ LOCK` explicites. 
+ La création de verrous nommés à l’aide de `GET_LOCK` entraîne le proxy à épingler la session. 
+ La définition d’une variable utilisateur ou système (sauf exceptions) épingle la session au proxy. Si cela limite considérablement la réutilisation des connexions, vous pouvez configurer des opérations `SET` pour éviter l’épinglage. Pour ce faire, ajustez la propriété des filtres d’épinglage de session. Pour plus d’informations, consultez [Création d’un proxy pour Amazon RDS](rds-proxy-creating.md) et [Modification d’un RDS Proxy](rds-proxy-modifying-proxy.md).
+ Le proxy épingle la session lors de la création d’une table temporaire. De cette façon, le contenu de la table temporaire est conservé tout au long de la session, sans tenir compte des limites de transaction. 
+ L’appel des fonctions `ROW_COUNT` et `FOUND_ROWS` entraîne parfois un épinglage. 
+ Le proxy épingle la session en cas d’instructions préparées. Cette règle s’applique si l’instruction préparée utilise du texte SQL ou le protocole binaire. 
+ Le proxy RDS n’épingle pas les connexions lorsque vous utilisez SET LOCAL.
+ L’appel de procédures et de fonctions stockées ne provoque pas d’épinglage. Le proxy RDS ne détecte aucun changement d’état de session résultant de tels appels. Assurez-vous que votre application ne modifie pas l’état de session dans les routines stockées si vous reposez sur cet état de session pour persister entre les transactions. Par exemple, le proxy RDS n’est actuellement pas compatible avec une procédure stockée qui crée une table temporaire qui est conservée dans toutes les transactions. 
+ Requêtes avec commentaires exécutables pour MySQL (syntaxe /\$1 \$1 ... \$1/) ou MariaDB (syntaxe /\$1M \$1 ... \$1/) provoquent un épinglage. Le proxy RDS ne peut pas analyser le code SQL intégré à ces commentaires pour suivre les changements d'état de session.

 Si vous avez des connaissances avancées sur le comportement de votre application, vous pouvez ignorer le comportement d’épinglage de certaines instructions d’application. Pour ce faire, sélectionnez l’option **Filtres d’épinglage de session** lors de la création du proxy. Actuellement, vous pouvez désactiver l’épinglage de session pour définir des variables de session et des paramètres de configuration. 

## Conditions qui entraînent l’épinglage pour RDS pour PostgreSQL
<a name="rds-proxy-pinning.postgres"></a>

 Pour PostgreSQL, les interactions suivantes provoquent également l’épinglage : 
+  Utilisation des commandes `SET`.
+  Utilisation des commandes `PREPARE`, `DISCARD`, `DEALLOCATE` ou `EXECUTE` pour gérer les instructions préparées.
+  Création de séquences, de tables ou de vues temporaires.
+  Déclaration de curseurs.
+  Suppression de l’état de la session.
+  Écoute d’un canal de notification.
+  Chargement d’un module de bibliothèque comme `auto_explain`.
+  Manipulation de séquences à l’aide de fonctions comme `nextval` et `setval`.
+  Interaction avec des verrous à l’aide de fonctions comme `pg_advisory_lock` et `pg_try_advisory_lock`. 
**Note**  
Le proxy RDS ne s’épingle pas aux verrous consultatifs au niveau des transactions, en particulier `pg_advisory_xact_lock`, `pg_advisory_xact_lock_shared`, `pg_try_advisory_xact_lock` et `pg_try_advisory_xact_lock_shared`.
+ Définition d’un paramètre ou rétablissement de sa valeur par défaut. Plus précisément, l’utilisation des commandes `SET` et `set_config` pour attribuer des valeurs par défaut aux variables de session.
+ L’appel de procédures et de fonctions stockées ne provoque pas d’épinglage. Le proxy RDS ne détecte aucun changement d’état de session résultant de tels appels. Assurez-vous que votre application ne modifie pas l’état de session dans les routines stockées si vous reposez sur cet état de session pour persister entre les transactions. Par exemple, le proxy RDS n’est actuellement pas compatible avec une procédure stockée qui crée une table temporaire qui est conservée dans toutes les transactions. 
+ Suppression de l’état de la session. Si vous utilisez des bibliothèques de regroupement de connexions avec une requête `DISCARD ALL` configurée comme une requête de réinitialisation, le proxy RDS épingle votre connexion client lors de la publication. Cela réduit l’efficacité du multiplexage du proxy et peut entraîner des résultats inattendus, car la commande `DISCARD ALL` peut interférer avec la gestion de l’état de session.

# Suppression d'un RDS Proxy
<a name="rds-proxy-deleting"></a>

 Vous pouvez supprimer un proxy si vous n’en avez plus besoin. Vous pouvez également supprimer un proxy si vous mettez hors service l’instance ou le cluster de bases de données qui lui est associé. 

## AWS Management Console
<a name="rds-proxy-deleting.console"></a>

**Suppression d'un proxy**

1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon RDS à l’adresse [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1.  Dans le panneau de navigation, sélectionnez **Proxies**. 

1.  Choisissez le proxy à supprimer de la liste. 

1.  Sélectionnez **Suppression du proxy**. 

## AWS CLI
<a name="rds-proxy-deleting.CLI"></a>

 Pour supprimer un proxy de base de données, utilisez la commande de l'AWS CLI [delete-db-proxy](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-db-proxy.html). Pour supprimer les associations connexes, utilisez également la commande [deregister-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/deregister-db-proxy-targets.html). 

```
aws rds delete-db-proxy --name proxy_name
```

```
aws rds deregister-db-proxy-targets
    --db-proxy-name proxy_name
    [--target-group-name target_group_name]
    [--target-ids comma_separated_list]       # or
    [--db-instance-identifiers instance_id]       # or
    [--db-cluster-identifiers cluster_id]
```

## API RDS
<a name="rds-proxy-deleting.API"></a>

 Pour supprimer un proxy de base de données, appelez la fonction d'API Amazon RDS [DeleteDBProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBProxy.html). Pour supprimer les éléments et associations connexes, vous appelez également les fonctions [DeleteDBProxyTargetGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBProxyTargetGroup.html) et [DeregisterDBProxyTargets](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeregisterDBProxyTargets.html). 

# Utilisation des points de terminaison du proxy Amazon RDS
<a name="rds-proxy-endpoints"></a>

Les points de terminaison RDS Proxy permettent une gestion flexible et performante des connexions aux bases de données, ce qui améliore la capacité de mise à l’échelle, la disponibilité et la sécurité. Avec les points de terminaison proxy, vous pouvez :
+ **Simplifier la surveillance et la résolution de problèmes** : utilisez plusieurs points de terminaison pour suivre et gérer de façon indépendante les connexions provenant de différentes applications.

**Topics**
+ [Présentation des points de terminaison proxy](#rds-proxy-endpoints-overview)
+ [Limites pour les points de terminaison proxy](#rds-proxy-endpoints-limits)
+ [Points de terminaison proxy de clusters de bases de données multi-AZ](#rds-proxy-endpoints-overview-maz)
+ [Accès aux bases de données RDS via VPCs](#rds-proxy-cross-vpc)
+ [Création d’un point de terminaison proxy](rds-proxy-endpoints.CreatingEndpoint.md)
+ [Affichage des points de terminaison proxy](rds-proxy-endpoints.DescribingEndpoint.md)
+ [Modification d'un point de terminaison proxy](rds-proxy-endpoints.ModifyingEndpoint.md)
+ [Suppression d'un point de terminaison proxy](rds-proxy-endpoints.DeletingEndpoint.md)

## Présentation des points de terminaison proxy
<a name="rds-proxy-endpoints-overview"></a>

Travailler avec des points de terminaison RDS Proxy implique les mêmes types de procédures qu’avec les points de terminaison d’instances RDS. Pour vous familiariser avec les points de terminaison RDS, consultez les informations dans [Connexion à une instance de base de données exécutant le moteur de base de données MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToInstance.html) et [Connexion à une instance de base de données exécutant le moteur de base de données PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToPostgreSQLInstance.html). 

Lorsque vous créez un point de terminaison proxy, vous pouvez l’associer à un cloud privé virtuel (VPC) différent de celui utilisé par le VPC du proxy. Cela vous permet de vous connecter au proxy à partir d’un autre VPC, par exemple celui d’une autre application au sein de votre organisation. 

Pour plus d’informations sur les limites associées aux points de terminaison proxy, consultez [Limites pour les points de terminaison proxy](#rds-proxy-endpoints-limits). 

Les journaux RDS Proxy préfixent chaque entrée avec le nom du point de terminaison proxy associé. Il peut s'agir du nom que vous avez spécifié pour un point de terminaison défini par l'utilisateur ou du nom spécial du point `default` de read/write terminaison par défaut du proxy.

Chaque point de terminaison du proxy possède son propre ensemble de CloudWatch mesures. Surveillez les métriques de tous les points de terminaison du proxy, d'un point de terminaison spécifique ou de tous les points de terminaison d'un proxy read/write ou de tous les points de terminaison en lecture seule d'un proxy. Pour de plus amples informations, veuillez consulter [Surveillance des métriques RDS Proxy avec Amazon CloudWatchSurveillance de RDS Proxy avec CloudWatch](rds-proxy.monitoring.md). 

Un point de terminaison de proxy utilise le même mécanisme d’authentification que le proxy auquel il est associé. RDS Proxy configure automatiquement des permissions et des autorisations pour le point de terminaison défini par l’utilisateur, conformément aux propriétés du proxy associé. 

## Limites pour les points de terminaison proxy
<a name="rds-proxy-endpoints-limits"></a>

Les points de terminaison RDS Proxy présentent les limites suivantes :
+  Le point de terminaison par défaut du proxy RDS ne peut pas être modifié. 
+  Le nombre maximal de points de terminaison définis par l’utilisateur pour un proxy est de 20. Un proxy peut ainsi avoir jusqu’à 21 points de terminaison : le point de terminaison par défaut, plus 20 que vous créez. 
+  Lorsque vous associez des points de terminaison supplémentaires à un proxy, RDS Proxy détermine automatiquement les instances de base de données à utiliser dans votre cluster pour chaque point de terminaison. 
+  Pour les IPv6 types de réseaux de points de terminaison à double pile, votre VPC et vos sous-réseaux doivent être configurés pour prendre en charge le type de réseau sélectionné. 

Lorsque vous créez un proxy, RDS crée automatiquement un point de terminaison d’un VPC pour garantir une communication sécurisée entre les applications et la base de données. Le point de terminaison d’un VPC est visible et est accessible à partir de la console Amazon VPC.

L'ajout d'un nouveau point de terminaison proxy provisionne un point de terminaison d' AWS PrivateLink interface. Si vous ajoutez un ou plusieurs points de terminaison à votre proxy, des frais supplémentaires vous seront facturés. Pour plus d’informations, consultez [Tarification de RDS Proxy](https://aws.amazon.com/rds/proxy/pricing/).

## Points de terminaison proxy de clusters de bases de données multi-AZ
<a name="rds-proxy-endpoints-overview-maz"></a>

Par défaut, le point de terminaison auquel vous vous connectez lorsque vous utilisez le proxy RDS avec un cluster de base de données multi-AZ est read/write fonctionnel. Par conséquent, ce point de terminaison envoie toutes les demandes à l’instance d’enregistreur du cluster. Toutes ces connexions sont prises en compte dans la valeur `max_connections` de l’instance d’enregistreur. Si votre proxy est associé à un cluster de base de données multi-AZ, vous pouvez créer des points de terminaison supplémentaires read/write ou en lecture seule pour ce proxy.

Vous pouvez utiliser un point de terminaison en lecture seule avec votre proxy pour les requêtes en lecture seule. Vous le faites de la même façon que vous utilisez le point de terminaison de lecteur pour un cluster de base de données multi-AZ. Cela vous permet de tirer avantage de l’évolutivité de lecture d’un cluster de bases de données multi-AZ avec une ou plusieurs instances de base de données de lecteur. Vous pouvez exécuter plus de requêtes et créer plus de connexions simultanément à l’aide d’un point de terminaison en lecture seule et en ajoutant d’autres instances de base de données de lecteur à votre cluster de bases de données multi-AZ selon vos besoins. Ces points de terminaison du lecteur peuvent améliorer la capacité de mise à l’échelle de lecture de vos applications exigeantes en requêtes. Les points de terminaison du lecteur peuvent également améliorer la disponibilité de vos connexions si une instance de base de données de lecteur dans votre cluster devient indisponible. 

### Points de terminaison de lecteur pour les clusters de base de données multi-AZ
<a name="rds-proxy-endpoints-reader-stub"></a>

 Avec RDS Proxy, vous pouvez créer et utiliser des points de terminaison de lecteur. Cependant, ces points de terminaison ne fonctionnent que pour des proxies associés à des clusters de base de données multi-AZ. Si vous utilisez l’interface de ligne de commande (CLI) ou l’API RDS, vous pouvez voir l’attribut `TargetRole` avec une valeur de `READ_ONLY`. Vous pouvez tirer avantage de ces proxies en changeant la cible d’un proxy et en remplaçant l’instance de base de données RDS par un cluster de bases de données multi-AZ.

 Vous pouvez créer des points de terminaison en lecture seule appelés *points de terminaison de lecteur* et y accéder lorsque vous utilisez RDS Proxy avec des clusters de base de données multi-AZ.

#### Amélioration de la disponibilité des applications par les points de terminaison du lecteur
<a name="rds-proxy-endpoints-reader-hapa"></a>

 Il peut arriver qu’une instance de lecteur de votre cluster devienne indisponible. Dans ce cas, les connexions qui utilisent un point de terminaison de lecteur d’un proxy de base de données peuvent récupérer plus rapidement que celles qui utilisent le point de terminaison de lecteur d’un cluster de bases de données multi-AZ. RDS Proxy achemine les connexions uniquement vers l’instance de lecteur disponible du cluster. La mise en cache DNS ne provoque pas de retard lorsqu’une instance devient indisponible. 

 Si la connexion est multiplexée, RDS Proxy dirige les requêtes suivantes vers une autre instance de lecteur sans aucune interruption de votre application. Si une instance de lecteur est indisponible, toutes les connexions client au point de terminaison de cette instance sont fermées. 

 Si la connexion est épinglée, la requête suivante sur la connexion retourne une erreur. Toutefois, votre application peut se reconnecter immédiatement au même point de terminaison proxy. RDS Proxy achemine la connexion vers une autre instance de base de données du lecteur qui se trouve dans l’état `available`. Lorsque vous vous reconnectez manuellement, RDS Proxy ne vérifie pas le décalage de réplication entre l’ancienne instance de lecteur et la nouvelle. 

 Si votre cluster de bases de données multi-AZ n’a pas d’instances de lecteur disponibles, RDS Proxy tente de se connecter à un point de terminaison de lecteur disponible. Si aucune instance de lecteur n’est disponible pendant la période de délai d’expiration de l’emprunt de connexion, la tentative de connexion échoue. Si une instance de lecteur devient disponible, la tentative de connexion aboutit. 

#### Amélioration de la capacité de mise à l’échelle des requêtes par les points de terminaison du lecteur
<a name="rds-proxy-endpoints-reader-scalability"></a>

 Les points de terminaison de lecteur d’un proxy peuvent améliorer l’évolutivité des requêtes du cluster de bases de données multi-AZ de la manière suivante : 
+  Dans la mesure du possible, RDS Proxy utilise la même instance de base de données de lecteur pour tous les problèmes de requêtes utilisant une connexion de point de terminaison de lecteur particulière. De cette façon, un ensemble de requêtes associées sur les mêmes tables peut tirer avantage de la mise en cache, de l’optimisation du plan, etc., sur une instance de base de données particulière. 
+  Si une instance de base de données de lecteur devient indisponible, l’effet sur votre application sera différent selon que la séance est multiplexée ou épinglée. Si la séance est multiplexée, RDS Proxy achemine toutes les requêtes ultérieures vers une autre instance de base de données de lecteur sans que vous ayez à intervenir. Si la séance est épinglée, votre application obtient une erreur et doit se reconnecter. Vous pouvez vous reconnecter au point de terminaison du lecteur immédiatement et RDS Proxy achemine la connexion vers une instance de base de données de lecteur disponible. Pour plus d’informations sur le multiplexage et l’épinglage des séances proxy, consultez [Présentation des concepts RDS Proxy](rds-proxy.howitworks.md#rds-proxy-overview). 

## Accès aux bases de données RDS via VPCs
<a name="rds-proxy-cross-vpc"></a>

 Par défaut, les composants de votre pile technologique RDS sont tous dans le même VPC Amazon. Par exemple, supposons qu’une application s’exécutant sur une instance Amazon EC2 se connecte à une instance de base de données Amazon RDS. Dans ce cas, le serveur d’applications et la base de données doivent se trouver tous les deux dans le même VPC. 

 Avec RDS Proxy, vous pouvez configurer l’accès à une instance de base de données Amazon RDS dans un VPC à l’aide de ressources d’un autre VPC, telles que des instances EC2. Par exemple, votre organisation peut avoir plusieurs applications qui accèdent aux mêmes ressources de base de données. Chaque application peut se trouver dans son propre VPC. 

 Pour activer l’accès entre VPC, vous créez un nouveau point de terminaison pour le proxy. Le proxy lui-même réside dans le même VPC que l’instance de base de données Amazon RDS. Toutefois, le point de terminaison entre VPC réside dans l’autre VPC, de même que les autres ressources telles que les instances EC2. Le point de terminaison entre VPC est associé à des sous-réseaux et des groupes de sécurité du même VPC que les instances EC2 et les autres ressources. Ces associations vous permettent de vous connecter au point de terminaison à partir des applications qui, autrement, ne peuvent pas accéder à la base de données en raison des restrictions de VPC. 

 Les étapes suivantes vous expliquent comment créer et accéder à un point de terminaison entre VPC via RDS Proxy : 

1.  Créez-en deux VPCs ou choisissez-en deux VPCs que vous utilisez déjà pour le travail avec RDS. Chaque VPC doit disposer de ses propres ressources réseau associées, par exemple une passerelle Internet, des tables de routage, des sous-réseaux et des groupes de sécurité. Si vous n’avez qu’un seul VPC, vous pouvez consulter [Mise en route avec Amazon RDS](CHAP_GettingStarted.md) à propos des étapes de configuration d’un autre VPC à suivre pour utiliser RDS avec succès. Vous pouvez également examiner votre VPC existant dans la console Amazon EC2 pour voir quels types de ressources peuvent être connectés entre eux. 

1.  Créez un proxy de base de données associé à l’instance de base de données Amazon RDS à laquelle vous voulez vous connecter. Suivez la procédure décrite dans [Création d’un proxy pour Amazon RDS](rds-proxy-creating.md). 

1.  Sur la page **Details (Détails)** de votre proxy dans la console RDS, dans la section **Proxy endpoints (Points de terminaison proxy)**, cliquez sur **Create endpoint (Créer un point de terminaison)**. Suivez la procédure décrite dans [Création d’un point de terminaison proxy](rds-proxy-endpoints.CreatingEndpoint.md). 

1.  Choisissez de rendre le point de terminaison inter-VPC read/write ou de le rendre en lecture seule. 

1.  Au lieu d’accepter la valeur par défaut du même VPC que l’instance de base de données RDS, sélectionnez un autre VPC. Ce VPC doit se trouver dans la même AWS région que le VPC où réside le proxy. 

1.  Maintenant, au lieu d’accepter les valeurs par défaut pour les sous-réseaux et les groupes de sécurité du même VPC que l’instance de base de données RDS, effectuez de nouvelles sélections. Basez vos sélections sur les sous-réseaux et des groupes de sécurité du VPC que vous avez sélectionné. 

1. Vous n’avez pas besoin de modifier les paramètres des secrets Secrets Manager. Les mêmes informations d’identification fonctionnent pour tous les points de terminaison de votre proxy, indépendamment du VPC dans lequel réside chaque point de terminaison. De même, lorsque vous utilisez l'authentification IAM, votre configuration et vos autorisations IAM fonctionnent de manière cohérente sur tous les points de terminaison du proxy, même lorsque les points de terminaison sont différents. VPCs Aucune configuration IAM supplémentaire n'est requise par point de terminaison.

1.  Attendez que le nouveau point de terminaison atteigne l’état **Available (Disponible)**. 

1.  Notez le nom complet du point de terminaison. Il s’agit de la valeur se terminant par `Region_name.rds.amazonaws.com` que vous fournissez dans le cadre de la chaîne de connexions pour votre application de base de données. 

1.  Accédez au nouveau point de terminaison à partir d’une ressource située dans le même VPC que le point de terminaison. Un moyen simple de tester ce processus consiste à créer une instance EC2 dans ce VPC. Connectez vous ensuite à l’instance EC2 et exécutez les commandes `mysql` ou `psql` pour vous connecter en utilisant la valeur du point de terminaison dans votre chaîne de connexions. 

# Création d’un point de terminaison proxy
<a name="rds-proxy-endpoints.CreatingEndpoint"></a>

Suivez ces instructions pour créer un point de terminaison de proxy :

## Console
<a name="rds-proxy-endpoints.CreatingEndpoint.CON"></a>

**Pour créer un point de terminaison proxy**

1. Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)l'adresse.

1.  Dans le panneau de navigation, sélectionnez **Proxies**. 

1.  Cliquez sur le nom du proxy pour lequel vous voulez créer un nouveau point de terminaison. 

    La page de détails concernant ce proxy apparaît. 

1.  Dans la section **Proxy endpoints (Points de terminaison proxy)**, cliquez sur **Create proxy endpoint (Créer un point de terminaison proxy)**. 

    La fenêtre **Create proxy endpoint (Créer un point de terminaison proxy)** apparaît. 

1.  Pour **Proxy endpoint name (Nom du point de terminaison proxy)**, saisissez le nom descriptif de votre choix. 

1.  Pour le **rôle cible**, choisissez de définir le point de terminaison read/write ou de le rendre en lecture seule. 

    Les connexions qui utilisent des read/write points de terminaison peuvent effectuer toutes sortes d'opérations, telles que des instructions en langage de définition des données (DDL), des instructions en langage de manipulation des données (DML) et des requêtes. Ces points de terminaison se connectent toujours à l’instance principale du cluster de bases de données RDS. Vous pouvez utiliser des read/write points de terminaison pour les opérations générales de base de données lorsque vous n'utilisez qu'un seul point de terminaison dans votre application. Vous pouvez également utiliser des read/write points de terminaison pour les opérations administratives, les applications de traitement des transactions en ligne (OLTP) et les tâches extract-transform-load (ETL). 

    Les connexions qui utilisent un point de terminaison en lecture seule ne peuvent effectuer que des requêtes. RDS Proxy peut utiliser l’une des instances de lecteur pour chaque connexion au point de terminaison. De cette façon, une application exigeante en requêtes peut tirer avantage de la capacité de clustering du cluster de base de données multi-AZ. Ces connexions en lecture seule n’imposent aucune surcharge à l’instance principale du cluster. Vos requêtes de reporting et d’analyse ne ralentissent donc pas les opérations d’écriture de vos applications OLTP. 

1.  Pour **Virtual Private Cloud (VPC)**, choisissez la valeur par défaut pour accéder au point de terminaison à partir des mêmes EC2 instances ou d'autres ressources que celles utilisées normalement pour accéder au proxy ou à sa base de données associée. Pour configurer l’accès entre VPC pour ce proxy, choisissez un VPC autre que le VPC par défaut. Pour plus d’informations sur l’accès entre VPC, consultez [Accès aux bases de données RDS via VPCs](rds-proxy-endpoints.md#rds-proxy-cross-vpc). 

1.  Pour le **Type de réseau de point de terminaison**, choisissez la version IP du point de terminaison de proxy. Les options disponibles sont les suivantes :
   + **IPv4**— Le point de terminaison du proxy utilise uniquement IPv4 des adresses (par défaut).
   + **IPv6**— Le point de terminaison du proxy utilise uniquement IPv6 des adresses.
   + **Double pile** : le point de terminaison du proxy prend en charge à la fois les IPv6 adresses IPv4 et les adresses.

   Pour l'utiliser IPv6 ou le double-stack, votre VPC et vos sous-réseaux doivent être configurés pour prendre en charge le type de réseau sélectionné.

1.  Pour **Subnets (Sous-réseaux)**, RDS Proxy renseigne par défaut les mêmes sous-réseaux que le proxy associé. Pour restreindre l’accès au point de terminaison de sorte que seule une partie de la plage d’adresses du VPC puisse s’y connecter, supprimez un ou plusieurs sous-réseaux. 

1.  Pour **Groupes de sécurité VPC**, vous pouvez sélectionner un groupe de sécurité existant ou en créer un. RDS Proxy renseigne par défaut le ou les mêmes groupes de sécurité que le proxy associé. Si les règles entrantes et sortantes du proxy conviennent pour ce point de terminaison, conservez le choix par défaut. 

    Si vous choisissez de créer un nouveau groupe de sécurité, donnez-lui un nom sur cette page. Modifiez ensuite les paramètres du groupe de sécurité depuis la EC2 console. 

1.  Cliquez sur **Create proxy endpoint (Créer un point de terminaison proxy)**. 

## AWS CLI
<a name="rds-proxy-endpoints.CreatingEndpoint.CLI"></a>

 Pour créer un point de terminaison proxy, utilisez la AWS CLI [create-db-proxy-endpoint](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-proxy-endpoint.html)commande. 

 Incluez les paramètres requis suivants : 
+  `--db-proxy-name value` 
+  `--db-proxy-endpoint-name value` 
+  `--vpc-subnet-ids list_of_ids`. Séparez le sous-réseau IDs par des espaces. Vous n’avez pas à spécifier l’ID du VPC lui-même. 

 Vous pouvez également ajouter les paramètres facultatifs suivants : 
+  `--target-role { READ_WRITE | READ_ONLY }`. Ce paramètre a pour valeur par défaut `READ_WRITE`. Lorsque le proxy est associé à un cluster de bases de données multi-AZ contenant une seule instance de base de données d’enregistreur, vous ne pouvez pas spécifier `READ_ONLY`. Pour plus d’informations sur l’utilisation prévue des points de terminaison en lecture seule avec des clusters de bases de données multi-AZ, consultez [Points de terminaison de lecteur pour les clusters de base de données multi-AZ](rds-proxy-endpoints.md#rds-proxy-endpoints-reader-stub). 
+  `--vpc-security-group-ids value`. Séparez le groupe de sécurité IDs par des espaces. Si vous omettez ce paramètre, RDS Proxy utilise le groupe de sécurité par défaut pour le VPC. Le proxy RDS détermine le VPC en fonction du IDs sous-réseau que vous spécifiez pour le paramètre. `--vpc-subnet-ids` 
+  `--endpoint-network-type { IPV4 | IPV6 | DUAL }`. Ce paramètre spécifie la version IP du point de terminaison du proxy. La valeur par défaut est `IPV4`. Pour utiliser `IPV6` ou `DUAL`, votre VPC et vos sous-réseaux doivent être configurés pour prendre en charge le type de réseau sélectionné. 

**Example**  
 L’exemple suivant crée un point de terminaison proxy nommé `my-endpoint`.   
Pour Linux, macOS ou Unix :  

```
aws rds create-db-proxy-endpoint \
  --db-proxy-name my-proxy \
  --db-proxy-endpoint-name my-endpoint \
  --vpc-subnet-ids subnet_id subnet_id subnet_id ... \
  --target-role READ_ONLY \
  --vpc-security-group-ids security_group_id \
  --endpoint-network-type DUAL
```
Pour Windows :  

```
aws rds create-db-proxy-endpoint ^
  --db-proxy-name my-proxy ^
  --db-proxy-endpoint-name my-endpoint ^
  --vpc-subnet-ids subnet_id_1 subnet_id_2 subnet_id_3 ... ^
  --target-role READ_ONLY ^
  --vpc-security-group-ids security_group_id ^
  --endpoint-network-type DUAL
```

## API RDS
<a name="rds-proxy-endpoints.CreatingEndpoint.API"></a>

 Pour créer un point de terminaison proxy, utilisez l'action [Créer un point de DBProxy terminaison](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBProxyEndpoint.html) de l'API RDS. 

# Affichage des points de terminaison proxy
<a name="rds-proxy-endpoints.DescribingEndpoint"></a>

Pour afficher les points de terminaison proxy existants, procédez comme suit :

## Console
<a name="rds-proxy-endpoints.DescribingEndpoint.CON"></a>

**Pour afficher les détails d'un point de terminaison proxy**

1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon RDS à l’adresse [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1.  Dans le panneau de navigation, sélectionnez **Proxies**. 

1.  Dans la liste, sélectionnez le proxy dont vous souhaitez afficher le point de terminaison. Cliquez sur le nom du proxy pour afficher la page contenant ses détails. 

1.  Dans la section **Proxy endpoints (Points de terminaison proxy)**, sélectionnez le point de terminaison que vous voulez afficher. Cliquez sur son nom pour afficher la page contenant ses détails. 

1.  Examinez les paramètres dont les valeurs vous intéressent. Vous pouvez vérifier les propriétés suivantes : 
   +  Indique si le point de terminaison est en lecture/écriture ou en lecture seule.
   +  Adresse de point de terminaison que vous utilisez dans une chaîne de connexions à la base de données.
   +  Le VPC, les sous-réseaux et les groupes de sécurité associés au point de terminaison.

## AWS CLI
<a name="rds-proxy-endpoints.DescribingEndpoint.CLI"></a>

 Pour afficher un ou plusieurs points de terminaison proxy, utilisez la commande AWS CLI[describe-db-proxy-endpoints](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxy-endpoints.html).

 Vous pouvez ajouter les paramètres facultatifs suivants : 
+  `--db-proxy-endpoint-name` 
+  `--db-proxy-name` 

 L'exemple suivant décrit le point de terminaison proxy `my-endpoint`. 

**Example**  
Pour Linux, macOS ou Unix :  

```
aws rds describe-db-proxy-endpoints \
  --db-proxy-endpoint-name my-endpoint
```
Pour Windows :  

```
aws rds describe-db-proxy-endpoints ^
  --db-proxy-endpoint-name my-endpoint
```

## API RDS
<a name="rds-proxy-endpoints.DescribingEndpoint.API"></a>

 Pour décrire un ou plusieurs points de terminaison proxy, exécutez l'opération de l'API RDS [DescribeDBProxyEndpoints](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBProxyEndpoints.html). 

# Modification d'un point de terminaison proxy
<a name="rds-proxy-endpoints.ModifyingEndpoint"></a>

Pour modifier les points de terminaison de votre proxy, procédez comme suit :

## Console
<a name="rds-proxy-endpoints.ModifyingEndpoint.CON"></a>

**Pour modifier un ou plusieurs points de terminaison proxy**

1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon RDS à l’adresse [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1.  Dans le panneau de navigation, sélectionnez **Proxies**. 

1. Dans la liste, sélectionnez le proxy dont vous voulez modifier le point de terminaison. Cliquez sur le nom du proxy pour afficher la page contenant ses détails.

1.  Dans la section **Proxy endpoints (Points de terminaison proxy)**, sélectionnez le point de terminaison que vous voulez modifier. Vous pouvez le sélectionner dans la liste ou cliquer sur son nom pour afficher la page contenant ses détails. 

1.  Sur la page de détails du proxy, dans la section **Proxy endpoints (Points de terminaison proxy)**, cliquez sur **Edit (Modifier)**. Ou bien, sur la page de détails du point de terminaison de proxy, choisissez **Supprimer** dans **Actions**.

1.  Modifiez les valeurs des paramètres que vous souhaitez remplacer.

1.  Sélectionnez **Enregistrer les modifications**. 

## AWS CLI
<a name="rds-proxy-endpoints.ModifyingEndpoint.CLI"></a>

 Pour modifier un point de terminaison proxy, utilisez la commande AWS CLI [modify-db-proxy-endpoint](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy-endpoint.html) avec les paramètres requis suivants : 
+  `--db-proxy-endpoint-name` 

 Précisez les modifications apportées aux propriétés du point de terminaison à l'aide d'un ou plusieurs des paramètres suivants : 
+  `--new-db-proxy-endpoint-name` 
+  `--vpc-security-group-ids`. Séparez les ID de groupe de sécurité par des espaces. 

 L'exemple suivant renomme le point de terminaison proxy `my-endpoint` à `new-endpoint-name`. 

**Example**  
Pour Linux, macOS ou Unix :  

```
aws rds modify-db-proxy-endpoint \
  --db-proxy-endpoint-name my-endpoint \
  --new-db-proxy-endpoint-name new-endpoint-name
```
Pour Windows :  

```
aws rds modify-db-proxy-endpoint ^
  --db-proxy-endpoint-name my-endpoint ^
  --new-db-proxy-endpoint-name new-endpoint-name
```

## API RDS
<a name="rds-proxy-endpoints.ModifyingEndpoint.API"></a>

 Pour modifier un point de terminaison proxy, exécutez l'opération de l'API RDS [ModifyDBProxyEndPoint](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxyEndpoint.html). 

# Suppression d'un point de terminaison proxy
<a name="rds-proxy-endpoints.DeletingEndpoint"></a>

 Pour supprimer un point de terminaison de votre proxy, procédez comme suit : 

**Note**  
 Vous ne pouvez pas supprimer le point de terminaison de proxy par défaut que RDS Proxy crée automatiquement pour chaque proxy.   
 Lorsque vous supprimez un proxy, RDS Proxy supprime automatiquement tous les points de terminaison qui lui sont associés. 

## Console
<a name="rds-proxy-endpoints.DeleteEndpoint.console"></a>

**Pour supprimer un point de terminaison proxy en utilisant AWS Management Console**

1.  Dans le panneau de navigation, sélectionnez **Proxies**. 

1.  Dans la liste, sélectionnez le proxy dont vous voulez supprimer un point de terminaison. Cliquez sur le nom du proxy pour afficher la page contenant ses détails. 

1.  Dans la section **Proxy endpoints (Points de terminaison proxy)**, sélectionnez le point de terminaison que vous voulez supprimer. Vous pouvez sélectionner un ou plusieurs points de terminaison dans la liste ou cliquer sur le nom d'un seul point de terminaison pour afficher sa page de détails. 

1.  Sur la page de détails du proxy, dans la section **Proxy endpoints (Points de terminaison proxy)**, cliquez sur **Delete (Supprimer)**. Ou bien, sur la page de détails du point de terminaison de proxy, choisissez **Supprimer** dans **Actions**. 

## AWS CLI
<a name="rds-proxy-endpoints.DeleteEndpoint.cli"></a>

 Pour supprimer un point de terminaison proxy, exécutez la commande [delete-db-proxy-endpoint](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-db-proxy-endpoint.html) avec les paramètres requis suivants : 
+  `--db-proxy-endpoint-name` 

 La commande suivante supprime le point de terminaison proxy nommé `my-endpoint`. 

Pour Linux, macOS ou Unix :

```
aws rds delete-db-proxy-endpoint \
  --db-proxy-endpoint-name my-endpoint
```

Pour Windows :

```
aws rds delete-db-proxy-endpoint ^
  --db-proxy-endpoint-name my-endpoint
```

## API RDS
<a name="rds-proxy-endpoints.DeleteEndpoint.api"></a>

 Pour supprimer un point de terminaison proxy avec l'API RDS, exécutez l'opération [DeleteDBProxyEndPoint](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBProxyEndpoint.html). Spécifiez le nom du point de terminaison proxy pour le paramètre `DBProxyEndpointName`. 

# Surveillance des métriques RDS Proxy avec Amazon CloudWatch
<a name="rds-proxy.monitoring"></a>

 Vous pouvez surveiller RDS Proxy à l'aide d'Amazon CloudWatch. CloudWatch collecte et convertit des données brutes de proxys en métriques lisibles en quasi-temps réel. Pour trouver ces mesures dans la console CloudWatch, sélectionnez **Métriques**, puis **RDS** et enfin **Métriques par proxy**. Pour plus d’informations, consultez [Utilisation des métriques Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html) dans la section Guide de l’utilisateur Amazon CloudWatch. 

**Note**  
 RDS publie ces métriques pour chaque instance Amazon EC2 sous-jacente associée au proxy. Un proxy unique peut être servi par plusieurs instances EC2. Utilisez les statistiques CloudWatch pour agréger les valeurs d'un proxy sur l'ensemble des instances associées.   
 Certaines de ces métriques peuvent ne pas être visibles avant la première connexion réussie par un proxy. 

 Dans les journaux RDS Proxy, chaque entrée est préfixée avec le nom du point de terminaison proxy associé. Ce nom peut être celui que vous avez spécifié pour un point de terminaison défini par l’utilisateur, ou le nom spécial `default` pour le point de terminaison par défaut d’un proxy qui effectue des demandes de lecture/écriture. 

 Toutes les métriques RDS Proxy sont dans le groupe `proxy`. 

 Chaque point de terminaison proxy possède ses propres métriques CloudWatch. Vous pouvez surveiller l'utilisation de chaque point de terminaison proxy individuellement. Pour plus d’informations sur les points de terminaison proxy, consultez [Utilisation des points de terminaison du proxy Amazon RDS](rds-proxy-endpoints.md). 

 Vous pouvez agréger les valeurs de chaque métrique à l'aide de l'un des jeux de dimensions suivants. Par exemple, en utilisant le jeu de dimensions `ProxyName`, vous pouvez analyser l'ensemble du trafic d'un proxy particulier. En utilisant les autres jeux de dimensions, vous pouvez fractionner les métriques de différentes manières. Vous pouvez fractionner les métriques en fonction des différents points de terminaison ou bases de données cibles de chaque proxy, ou du trafic en lecture/écriture et en lecture seule vers chaque base de données. 
+  Ensemble de dimensions 1 : `ProxyName` 
+  Ensemble de dimensions 2 : `ProxyName`, `EndpointName` 
+  Ensemble de dimensions 3 : `ProxyName`, `TargetGroup`, `Target` 
+  Ensemble de dimensions 4 : `ProxyName`, `TargetGroup`, `TargetRole` 


|  Métrique  |  Description  |  Période de validité  |  Jeu de dimensions CloudWatch  | 
| --- | --- | --- | --- | 
|  `AvailabilityPercentage`   |   Pourcentage de temps pendant lequel le groupe cible était disponible dans le rôle indiqué par la dimension. Cette métrique est donnée toutes les minutes. est la statistique la plus utile pour cette métriqu `Sum`.   |  1 minute  |  [Dimension set 4](#proxy-dimension-set-4)  | 
| ClientConnections  |   Le nombre actuel de connexions client. Cette métrique est donnée toutes les minutes. est la statistique la plus utile pour cette métrique `Sum`.   |   1 minute   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| ClientConnectionsClosed  |   Le nombre de connexions client fermées. est la statistique la plus utile pour cette métriqu `Sum`.   |   1 minute et plus   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| ClientConnectionsInSetup |  Nombre actuel de connexions client ouvertes, mais qui n’ont pas terminé la configuration. Cette métrique est donnée toutes les minutes. Sum est la statistique la plus utile pour cette métrique.  |  1 minute  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
|  `ClientConnectionsNoTLS`   |  Nombre actuel de connexions client sans TLS (Transport Layer Security). Cette métrique est donnée toutes les minutes. est la statistique la plus utile pour cette métriqu Sum.  |  1 minute |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
|  `ClientConnectionsReceived`   |   Le nombre de demandes de connexion client reçues. est la statistique la plus utile pour cette métriqu `Sum`.   |   1 minute et plus   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| ClientConnectionsSetupFailedAuth  |   Nombre de tentatives de connexion client ayant échoué en raison d'une mauvaise configuration de l'authentification ou du protocole TLS. est la statistique la plus utile pour cette métriqu `Sum`.   |   1 minute et plus   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| ClientConnectionsSetupSucceeded  |   Le nombre de connexions client établies avec succès via n'importe quel mécanisme d'authentification avec ou sans protocole TLS. est la statistique la plus utile pour cette métriqu `Sum`.   |   1 minute et plus   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| ClientConnectionsTLS  |  Nombre actuel de connexions client avec TLS. Cette métrique est donnée toutes les minutes. est la statistique la plus utile pour cette métriqu Sum.  | 1 minute |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| DatabaseConnectionRequests  |   Le nombre de demandes de création d'une connexion à une base de données. est la statistique la plus utile pour cette métriqu `Sum`.   |   1 minute et plus   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
|  `DatabaseConnectionRequestsWithTLS`   |  Nombre de demandes de création d'une connexion à une base de données avec TLS. est la statistique la plus utile pour cette métriqu Sum.  |  1 minute et plus  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
| DatabaseConnections  |   Le nombre actuel de connexions à une base de données. Cette métrique est donnée toutes les minutes. est la statistique la plus utile pour cette métriqu `Sum`.   |   1 minute   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
|  `DatabaseConnectionsBorrowLatency`   |  Temps, en microsecondes, nécessaire au proxy surveillé pour obtenir une connexion à la base de données. est la statistique la plus utile pour cette métriqu Sum.  |  1 minute et plus  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| DatabaseConnectionsCurrentlyBorrowed  |   Le nombre actuel de connexions à une base de données en état d'emprunt. Cette métrique est donnée toutes les minutes. est la statistique la plus utile pour cette métriqu `Sum`.   |   1 minute   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
| DatabaseConnectionsCurrentlyInTransaction  |   Nombre actuel de connexions à la base de données dans une transaction. Cette métrique est donnée toutes les minutes. est la statistique la plus utile pour cette métriqu `Sum`.   |   1 minute   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
| DatabaseConnectionsCurrentlySessionPinned  |   Nombre de connexions à la base de données actuellement épinglées en raison d'opérations dans les demandes client qui modifient l'état de session. Cette métrique est donnée toutes les minutes. est la statistique la plus utile pour cette métriqu `Sum`.   |   1 minute   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
| DatabaseConnectionsSetupFailed  |   Le nombre de demandes de connexion à une base de données qui ont échoué. est la statistique la plus utile pour cette métriqu `Sum`.   |   1 minute et plus   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
| DatabaseConnectionsSetupSucceeded  |   Le nombre de connexions à une base de données correctement établies avec ou sans protocole TLS. est la statistique la plus utile pour cette métriqu `Sum`.   |   1 minute et plus   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
|  `DatabaseConnectionsWithTLS`   |  Nombre actuel de connexions à une base de données avec TLS. Cette métrique est donnée toutes les minutes. est la statistique la plus utile pour cette métriqu Sum.  |  1 minute  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
| MaxDatabaseConnectionsAllowed  |   Le nombre maximal de connexions à une base de données autorisées. Cette métrique est donnée toutes les minutes. est la statistique la plus utile pour cette métriqu `Sum`.   |   1 minute   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
|  `QueryDatabaseResponseLatency`   |  Temps, en microsecondes, pris par la base de données pour répondre à la requête. est la statistique la plus utile pour cette métriqu Average.  |  1 minute et plus  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
| QueryRequests  |   Le nombre de requêtes reçues. Une requête comprenant plusieurs instructions est comptée comme étant une seule et même requête. est la statistique la plus utile pour cette métriqu `Sum`.   |   1 minute et plus   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| QueryRequestsNoTLS  |  Nombre de requêtes reçues de connexions non TLS. Une requête comprenant plusieurs instructions est comptée comme étant une seule et même requête. est la statistique la plus utile pour cette métriqu Sum.  |  1 minute et plus  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
|  `QueryRequestsTLS`   |  Nombre de requêtes reçues des connexions TLS. Une requête comprenant plusieurs instructions est comptée comme étant une seule et même requête. est la statistique la plus utile pour cette métriqu Sum.  |  1 minute et plus  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| QueryResponseLatency  |  Temps, en microsecondes, entre l'obtention d'une demande de requête et le proxy qui y répond. est la statistique la plus utile pour cette métriqu Average.  |  1 minute et plus  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 

 Vous pouvez trouver les journaux d'activité de RDS Proxy sous CloudWatch dans l'AWS Management Console. Chaque proxy dispose d'une entrée dans la page **Groupes de journaux**. 

**Important**  
 Ces journaux sont destinés à la consommation humaine à des fins de dépannage et non à un accès par programmation. Le format et le contenu des journaux sont susceptibles d'être modifiés.   
 En particulier, les journaux plus anciens ne contiennent pas de préfixes indiquant le point de terminaison pour chaque requête. Dans les journaux plus récents, chaque entrée est préfixée avec le nom du point de terminaison proxy associé. Ce nom peut être celui que vous avez spécifié pour un point de terminaison défini par l'utilisateur, ou le nom spécial `default` pour les demandes utilisant le point de terminaison par défaut d'un proxy. 

# Utilisation des des événements RDS Proxy
<a name="rds-proxy.events"></a>

Un *événement* indique un changement dans un environment, comme un environnement AWS, un service ou une application d’un partenaire SaaS. Il peut s’agir aussi de l’un de vos propres applications ou services personnalisés. Par exemple, Amazon RDS génère un événement lorsque vous créez ou modifiez un proxy RDS. Amazon RDS fournit des événements à Amazon EventBridge en temps quasi-réel. Vous trouverez ci-dessous une liste des événements RDS Proxy auxquels vous pouvez vous abonner et un exemple d'événement RDS Proxy. 

Pour plus d’informations sur l’utilisation des événements, consultez les éléments suivants :
+ Pour obtenir des instructions sur l’affichage des événements à l’aide de la AWS Management Console, de l’AWS CLI ou de l’API RDS, consultez [Affichage d’événements Amazon RDS](USER_ListEvents.md).
+ Pour savoir comment configurer Amazon RDS pour l’envoi d’événements à EventBridge, consultez [Création d’une règle qui se déclenche sur un événement Amazon RDS](rds-cloud-watch-events.md).

## Événements RDS Proxy
<a name="rds-proxy.events.list"></a>

Le tableau suivant recense la catégorie d'événement et la liste des événements lorsqu'un proxy RDS Proxy est le type source.


|  Catégorie  | ID d’événement RDS |  Message  |  Remarques  | 
| --- | --- | --- | --- | 
| modification de configuration | RDS-EVENT-0204 |  RDS a modifié le proxy de base de données *nom*.  | Aucun | 
| modification de configuration | RDS-EVENT-0207 |  RDS a modifié le point de terminaison du proxy de base de données *nom*.  | Aucun | 
| modification de configuration | RDS-EVENT-0213 |  RDS a détecté l'ajout de l'instance de base de données et l'a automatiquement ajoutée au groupe cible du proxy de base de données *nom*.  | Aucun | 
|  modification de configuration  | RDS-EVENT-0214 |  RDS a détecté la suppression de l'instance de base de données *nom* et l'a automatiquement supprimée du groupe cible *nom* du proxy de base de données *nom*.  | Aucun | 
|  modification de configuration  | RDS-EVENT-0215 |  RDS a détecté la suppression du cluster de base de données *nom* et l'a automatiquement supprimée du groupe cible *nom* du proxy de base de données *nom*.  | Aucun | 
|  création  | RDS-EVENT-0203 |  RDS a créé le proxy de base de données *nom*.  | Aucun | 
|  création  | RDS-EVENT-0206 |  RDS a créé le point de terminaison *nom* pour le proxy de base de données *nom*.  | Aucun | 
| suppression | RDS-EVENT-0205 |  RDS a supprimé le proxy de base de données *nom*.  | Aucun | 
|  suppression  | RDS-EVENT-0208 |  RDS a supprimé le point de terminaison *nom* pour le proxy de base de données *nom*.  | Aucun | 
|  échec  | RDS-EVENT-0243 |  RDS n'a pas pu allouer la capacité pour le proxy *nom* car il n'y a pas suffisamment d'adresses IP disponibles dans vos sous-réseaux : *nom*. Pour résoudre ce problème, veillez à ce que vos sous-réseaux aient le nombre minimum d'adresses IP inutilisées, comme recommandé dans la documentation Proxy RDS.  |  Pour déterminer le nombre recommandé pour votre classe d’instances, consultez [Planification de la capacité des adresses IP](rds-proxy-network-prereqs.md#rds-proxy-network-prereqs.plan-ip-address).  | 
|  échec | RDS-EVENT-0275 |  RDS a limité certaines connexions au proxy de base de données *nom*. Le nombre de demandes de connexion simultanée du client au proxy a dépassé la limite.  | Aucun | 

Voici un exemple d'événement RDS Proxy au format JSON. L'événement montre que RDS a modifié le point de terminaison nommé `my-endpoint` du proxy RDS nommé `my-rds-proxy`. L’ID de l’événement est RDS-EVENT-0207.

```
{
  "version": "0",
  "id": "68f6e973-1a0c-d37b-f2f2-94a7f62ffd4e",
  "detail-type": "RDS DB Proxy Event",
  "source": "aws.rds",
  "account": "123456789012",
  "time": "2018-09-27T22:36:43Z",
  "region": "us-east-1",
  "resources": [
     "arn:aws:rds:us-east-1:123456789012:db-proxy:my-rds-proxy"
  ],
  "detail": {
    "EventCategories": [
      "configuration change"
    ],
    "SourceType": "DB_PROXY",
    "SourceArn": "arn:aws:rds:us-east-1:123456789012:db-proxy:my-rds-proxy",
    "Date": "2018-09-27T22:36:43.292Z",
    "Message": "RDS modified endpoint my-endpoint of DB Proxy my-rds-proxy.",
    "SourceIdentifier": "my-endpoint",
    "EventID": "RDS-EVENT-0207"
  }
}
```

# Résolution des problèmes liés au proxy RDS
<a name="rds-proxy.troubleshooting"></a>

 Vous trouverez ci-dessous des idées pour résoudre certains problèmes courants liés au proxy RDS et des informations sur les CloudWatch journaux du proxy RDS. 

 Dans les journaux RDS Proxy, chaque entrée est préfixée avec le nom du point de terminaison proxy associé. Ce nom peut être celui que vous avez spécifié pour un point de terminaison défini par l’utilisateur. Il peut également s'agir du nom `default` spécial du point de terminaison par défaut d'un proxy qui exécute les read/write demandes. Pour plus d’informations sur les points de terminaison proxy, consultez [Utilisation des points de terminaison du proxy Amazon RDS](rds-proxy-endpoints.md). 

**Topics**
+ [Vérification de la connectivité pour un proxy](#rds-proxy-verifying)
+ [Problèmes courants et solutions correspondantes](#rds-proxy-diagnosis)
+ [Dépannage des problèmes liés au proxy RDS avec RDS for MySQL](#rds-proxy-MySQL-troubleshooting)
+ [Dépannage des problèmes liés au proxy RDS pour PostgreSQL](#rds-proxy-PostgreSQL-troubleshooting)

## Vérification de la connectivité pour un proxy
<a name="rds-proxy-verifying"></a>

 Vous pouvez utiliser les commandes suivantes pour vérifier que tous les composants tels que le proxy, la base de données et les instances de calcul de la connexion peuvent communiquer entre eux. 

 Examinez le proxy lui-même à l'aide de la [describe-db-proxies](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxies.html)commande. Examinez également le groupe cible associé à l'aide de la commande [describe-db-proxy-target-groups](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxy-target-groups.html). Vérifiez que les détails des cibles correspondent à l’instance de base de données RDS que vous prévoyez d’associer au proxy. Utilisez des commandes telles que les suivantes. 

```
aws rds describe-db-proxies --db-proxy-name $DB_PROXY_NAME
aws rds describe-db-proxy-target-groups --db-proxy-name $DB_PROXY_NAME
```

 Pour vérifier que le proxy peut se connecter à la base de données sous-jacente, examinez les cibles spécifiées dans les groupes cibles à l'aide de la [describe-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxy-targets.html)commande. Utilisez une commande telle que la suivante. 

```
aws rds describe-db-proxy-targets --db-proxy-name $DB_PROXY_NAME
```

 La sortie de la [describe-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxy-targets.html)commande inclut un `TargetHealth` champ. Vous pouvez examiner les champs `State`, `Reason` et `Description` dans `TargetHealth` pour vérifier si le proxy peut communiquer avec l’instance de base de données sous-jacente. 
+  Si la valeur `State` est `AVAILABLE`, cela indique que le proxy peut se connecter à l’instance de base de données. 
+  Si la valeur `State` est `UNAVAILABLE`, cela signale un problème de connexion temporaire ou permanent. Dans ce cas, examinez les champs `Reason` et `Description`. Par exemple, si `Reason` a une valeur `PENDING_PROXY_CAPACITY`, essayez de vous connecter à nouveau une fois que le proxy a terminé son opération de mise à l’échelle. Si `Reason` a une valeur `UNREACHABLE`, `CONNECTION_FAILED` ou `AUTH_FAILURE`, utilisez l’explication du champ `Description` pour vous aider à diagnostiquer le problème. 
+  Le champ `State` peut avoir une valeur `REGISTERING` pendant une courte période avant de passer à `AVAILABLE` ou `UNAVAILABLE`. 

 Si la commande Netcat (`nc`) suivante aboutit, vous pouvez accéder au point de terminaison du proxy depuis l' EC2 instance ou un autre système sur lequel vous êtes connecté. Cette commande signale un échec si vous n’êtes pas dans le même VPC que le proxy et la base de données associée. Vous pouvez peut-être vous connecter directement à la base de données sans vous trouver dans le même VPC. Cependant, vous ne pouvez pas vous connecter au proxy sauf si vous êtes dans le même VPC. 

```
nc -zx MySQL_proxy_endpoint 3306

nc -zx PostgreSQL_proxy_endpoint 5432
```

 Vous pouvez utiliser les commandes suivantes pour vous assurer que votre EC2 instance possède les propriétés requises. En particulier, le VPC de l' EC2 instance doit être le même que le VPC du cluster de l' auquel le proxy se connecte. 

```
aws ec2 describe-instances --instance-ids your_ec2_instance_id
```

 Examinez les secrets Secrets Manager utilisés pour le proxy. 

```
aws secretsmanager list-secrets
aws secretsmanager get-secret-value --secret-id your_secret_id
```

 Assurez-vous que le champ `SecretString` affiché par `get-secret-value` est codé au format d’une chaîne JSON qui inclut les champs `username` et `password`. L’exemple suivant illustre le format du champ `SecretString`. 

```
{
  "ARN": "some_arn",
  "Name": "some_name",
  "VersionId": "some_version_id",
  "SecretString": '{"username":"some_username","password":"some_password"}',
  "VersionStages": [ "some_stage" ],
  "CreatedDate": some_timestamp
}
```

Lorsque vous résolvez des problèmes d'authentification IAM, vérifiez les points suivants :
+ L'authentification IAM est activée dans la base de données.
+ Le proxy est configuré avec le schéma d'authentification approprié.
+ Les politiques IAM du rôle IAM fourni au proxy accordent les `rds-db:connect` autorisations nécessaires à la base de données appropriée et à son nom d'utilisateur.
+ Pour l'authentification end-to-end IAM, il existe des utilisateurs de base de données qui correspondent aux noms d'utilisateur ou de rôle IAM.
+ Le protocole SSL/TLS est activé pour la connexion.

## Problèmes courants et solutions correspondantes
<a name="rds-proxy-diagnosis"></a>

Cette section décrit certains problèmes courants et les solutions potentielles lors de l’utilisation du proxy RDS.

Après avoir exécuté la commande CLI`aws rds describe-db-proxy-targets`, si la description `TargetHealth` indique `Proxy does not have any registered credentials`, vérifiez les points suivants :
+ Des informations d’identification sont enregistrées pour permettre à l’utilisateur d’accéder au proxy.
+ Le rôle IAM permettant d’accéder au secret Secrets Manager utilisé par le proxy est valide.

Vous pouvez rencontrer les événements RDS suivants lors de la connexion à un proxy de base de données ou de sa création.


| Catégorie | ID d’événement RDS | Description | 
| --- | --- | --- | 
|  échec  | RDS-EVENT-0243 | RDS n’a pas pu allouer la capacité pour le proxy, car il n’y a pas suffisamment d’adresses IP disponibles dans vos sous-réseaux. Pour résoudre ce problème, veillez à ce que vos sous-réseaux aient le nombre minimum d’adresses IP inutilisées. Pour déterminer le nombre recommandé pour votre classe d’instances, consultez [Planification de la capacité des adresses IP](rds-proxy-network-prereqs.md#rds-proxy-network-prereqs.plan-ip-address). | 
|  échec  | RDS-EVENT-0275 |  RDS a limité certaines connexions au proxy de base de données. *name* Le nombre de demandes de connexion simultanée du client au proxy a dépassé la limite.  | 

 Vous pouvez rencontrer les problèmes suivants lors de la création d’un proxy ou de la connexion à un proxy. 


|  Erreur  |  Causes ou solutions de contournement  | 
| --- | --- | 
|   `403: The security token included in the request is invalid`   |  Sélectionnez un rôle IAM existant au lieu d’en créer un nouveau.  | 

## Dépannage des problèmes liés au proxy RDS avec RDS for MySQL
<a name="rds-proxy-MySQL-troubleshooting"></a>

 Vous pouvez rencontrer les problèmes suivants lors de la connexion à un proxy MySQL. 


|  Erreur  |  Causes ou solutions de contournement  | 
| --- | --- | 
|  ERROR 1040 (HY000): Connections rate limit exceeded (limit\$1value)  |  Le taux de demandes de connexion du client au proxy a dépassé la limite.  | 
|  ERROR 1040 (HY000): IAM authentication rate limit exceeded  |  Le nombre de demandes de connexion simultanée avec authentification IAM du client au proxy a dépassé la limite.  | 
|  ERROR 1040 (HY000): Number simultaneous connections exceeded (limit\$1value)  |  Le nombre de demandes de connexion simultanée du client au proxy a dépassé la limite.  | 
|   `ERROR 1045 (28000): Access denied for user 'DB_USER'@'%' (using password: YES)`   |  Le secret Secrets Manager utilisé par le proxy ne correspond pas au nom d’utilisateur et au mot de passe d’un utilisateur de base de données existant. Mettez à jour les informations d’identification dans le secret Secrets Manager ou assurez-vous que l’utilisateur de base de données existe et possède le même mot de passe que celui du secret.  | 
|  ERROR 1105 (HY000): Unknown error  |  Une erreur inconnue s’est produite.  | 
|  ERROR 1231 (42000): Variable ''character\$1set\$1client'' can't be set to the value of value  |   La valeur définie pour le paramètre `character_set_client` n’est pas valide. Par exemple, la valeur `ucs2` n’est pas valide, car elle peut bloquer le serveur MySQL.   | 
|  ERROR 3159 (HY000): This RDS Proxy requires TLS connections.  |   Vous avez activé le paramètre **Exiger la sécurité de la couche de transport** dans le proxy, mais votre connexion a inclus le paramètre `ssl-mode=DISABLED` dans le client MySQL. Effectuez l’une des actions suivantes :  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  | 
|  ERROR 2026 (HY000): SSL connection error: Internal Server Error  |   La négociation TLS avec le proxy a échoué. Les causes possibles sont notamment les suivantes :  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  | 
|  ERROR 9501 (HY000): Timed-out waiting to acquire database connection  |   Le proxy a expiré en attendant l’obtention d’une connexion à la base de données. Les causes possibles sont notamment les suivantes :  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  | 

## Dépannage des problèmes liés au proxy RDS pour PostgreSQL
<a name="rds-proxy-PostgreSQL-troubleshooting"></a>

 Vous pouvez rencontrer les problèmes suivants lors de la connexion à un proxy PostgreSQL. 


|  Erreur  |  Cause  |  Solution  | 
| --- | --- | --- | 
|   `ERROR 28000: IAM authentication is allowed only with SSL connections.`   |   L’utilisateur a essayé de se connecter à la base de données à l’aide de l’authentification IAM en utilisant le paramètre `sslmode=disable` du client PostgreSQL.   |   L’utilisateur doit se connecter à la base de données en utilisant le paramètre minimal `sslmode=require` du client PostgreSQL. Pour plus d’informations, consultez la documentation [PostgreSQL SSL Support](https://www.postgresql.org/docs/current/libpq-ssl.html).   | 
|  `ERROR 28000: This RDS proxy has no credentials for the role role_name. Check the credentials for this role and try again.`   |   Il n’y a pas de secret Secrets Manager pour ce rôle.   |   Ajoutez un secret Secrets Manager pour ce rôle. Pour plus d’informations, consultez [Configuration de l’authentification IAM pour RDS Proxy](rds-proxy-iam-setup.md).  | 
|  `ERROR 28000: RDS supports only IAM, MD5, or SCRAM authentication.`   |   Le client de base de données utilisé pour se connecter au proxy utilise un mécanisme d’authentification qui n’est actuellement pas pris en charge par le proxy.   |   Si vous n'utilisez pas l'authentification IAM, utilisez l'authentification par mot de passe MD5 ou SCRAM.   | 
|  `ERROR 28000: A user name is missing from the connection startup packet. Provide a user name for this connection.`   |   Le client de base de données utilisé pour la connexion au proxy n’envoie pas de nom d’utilisateur lorsqu’il tente d’établir une connexion.   |   Veillez à définir un nom d’utilisateur lors de la configuration d’une connexion au proxy à l’aide du client PostgreSQL de votre choix.   | 
|  `ERROR 28000: IAM is allowed only with SSL connections.`   |   Un client a essayé de se connecter à l’aide de l’authentification IAM, mais le protocole SSL n’était pas activé.   |   Activez SSL sur le client PostgreSQL.   | 
|  `ERROR 28000: This RDS Proxy requires TLS connections.`   |   L’utilisateur a activé l’option **Exiger la sécurité de la couche de transport** mais a essayé de se connecter en utilisant `sslmode=disable` dans le client PostgreSQL.   |   Pour corriger cette erreur, effectuez l’une des opérations suivantes :  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  | 
|  `ERROR 28P01: IAM authentication failed for user user_name. Check the IAM token for this user and try again.`   |   Cette erreur peut être due aux raisons suivantes :  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  |   Pour corriger cette erreur, procédez comme suit :  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  | 
|  `ERROR 28P01: The password that was provided for the role role_name is wrong.`   |   Le mot de passe de ce rôle ne correspond pas au secret Secrets Manager.   |   Vérifiez le secret de ce rôle dans Secrets Manager pour voir si le mot de passe est le même que celui utilisé sur votre client PostgreSQL.   | 
|  `ERROR 28P01: The IAM authentication failed for the role role_name. Check the IAM token for this role and try again.`   |   Il y a un problème avec le jeton IAM utilisé pour l’authentification IAM.   |   Générez un nouveau jeton d’authentification et utilisez-le dans une nouvelle connexion.   | 
|  `ERROR 0A000: Feature not supported: RDS Proxy supports only version 3.0 of the PostgreSQL messaging protocol.`   |   Le client PostgreSQL utilisé pour la connexion au proxy utilise un protocole antérieur à la version 3.0.   |   Utilisez un client PostgreSQL plus récent qui prend en charge le protocole de messagerie 3.0. Si vous utilisez l’interface de ligne de commande `psql` de PostgreSQL, utilisez une version supérieure ou égale à 7.4.   | 
|  `ERROR 0A000: Feature not supported: RDS Proxy currently doesn't support streaming replication mode.`   |   Le client PostgreSQL utilisé pour la connexion au proxy essaie d’utiliser le mode de réplication de streaming, lequel n’est actuellement pas pris en charge par le proxy RDS.   |   Désactivez le mode de réplication de streaming sur le client PostgreSQL utilisé pour la connexion.   | 
|  `ERROR 0A000: Feature not supported: RDS Proxy currently doesn't support the option option_name.`   |   Par le biais du message de démarrage, le client PostgreSQL utilisé pour la connexion au proxy demande une option qui n’est pas actuellement prise en charge par le proxy RDS.   |   Désactivez l’option indiquée comme non prise en charge dans le message ci-dessus sur le client PostgreSQL utilisé pour la connexion.   | 
|  `ERROR 53300: The IAM authentication failed because of too many competing requests.`   |   Le nombre de demandes de connexion simultanée avec authentification IAM du client au proxy a dépassé la limite.   |   Réduisez le taux d’établissement de connexions à l’aide de l’authentification IAM à partir d’un client PostgreSQL.   | 
|  `ERROR 53300: The maximum number of client connections to the proxy exceeded number_value.`   |   Le nombre de demandes de connexion simultanée du client au proxy a dépassé la limite.   |   Réduisez le nombre de connexions actives des clients PostgreSQL à ce proxy RDS.   | 
|  `ERROR 53300: Rate of connection to proxy exceeded number_value.`   |   Le taux de demandes de connexion du client au proxy a dépassé la limite.   |   Réduisez le taux d’établissement de connexions à partir d’un client PostgreSQL.   | 
|  `ERROR XX000: Unknown error.`   |   Une erreur inconnue s’est produite.   |   Contactez le AWS Support pour étudier le problème.   | 
|  `ERROR 08000: Timed-out waiting to acquire database connection.`   |   Le proxy a expiré en attendant l’obtention d’une connexion à la base de données pendant la durée spécifiée par le paramètre `ConnectionBorrowTimeout`. Les causes possibles sont notamment les suivantes :  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  |   Les solutions possibles sont les suivantes :  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/rds-proxy.troubleshooting.html)  | 
|  `ERROR XX000: Request returned an error: database_error.`   |   La connexion à la base de données établie à partir du proxy a renvoyé une erreur.   |   La solution dépend de l’erreur de base de données spécifique. Par exemple : `Request returned an error: database "your-database-name" does not exist`. Cela signifie que le nom de base de données spécifié n’existe pas sur le serveur de base de données. Ou cela signifie que le nom d’utilisateur utilisé comme nom de base de données (si un nom de base de données n’est pas spécifié) n’existe pas sur le serveur.   | 
|  `ERROR 53300: The IAM authentication failed because of too many competing requests.`  |  Le nombre de demandes de connexion simultanée avec authentification IAM du client au proxy a dépassé la limite.  |  Réduisez le taux d’établissement de connexions à l’aide de l’authentification IAM à partir d’un client PostgreSQL.  | 
|  `ERROR 28000: Enable IAM authentication for the client connection to the proxy and try again.`  |  Le proxy RDS ne peut pas se connecter à la base de données car l'authentification IAM n'est pas activée pour la connexion du client au proxy. Cela se produit lorsque le `DefaultAuthScheme` paramètre du proxy est défini sur un utilisateur enregistré, mais que le client utilise l'authentification par mot de passe au lieu de l'authentification IAM. `IAM_AUTH`  |  Activez l'authentification IAM pour la connexion du client au proxy et réessayez.  | 
|  `ERROR 28000: Configure IAM authentication as the DefaultAuthScheme in your proxy and try again.`  |  Le proxy RDS ne peut pas se connecter à la base de données car elle `DefaultAuthScheme` n'est pas définie sur. `IAM_AUTH` Le `DefaultAuthScheme` paramètre du proxy est défini sur`NONE`, mais le client tente d'utiliser l'authentification IAM.  |  Définissez `DefaultAuthScheme` ce `IAM_AUTH` paramètre pour votre proxy et réessayez.  | 

### Dépannage des problèmes liés à la base de données `postgres`
<a name="rds-proxy-PostgreSQL-troubleshooting.postgresDBDelete"></a>

Si vous supprimez par erreur la base de données `postgres` de votre instance, vous devez la restaurer pour rétablir la connectivité à votre instance. Exécutez les commandes suivantes dans votre instance de base de données :

```
CREATE DATABASE postgres;
GRANT CONNECT ON DATABASE postgres TO rdsproxyadmin;
```

# Utilisation de RDS Proxy avec AWS CloudFormation
<a name="rds-proxy-cfn"></a>

 Vous pouvez utiliser RDS Proxy avec AWS CloudFormation. Vous pouvez ainsi créer des groupes de ressources connexes. Un tel groupe peut inclure un proxy qui peut se connecter à une instance de base de données Amazon RDS que vous venez de créer. La prise en charge de RDS Proxy dans CloudFormation implique deux nouveaux types de registres : `DBProxy` et `DBProxyTargetGroup`. 

 La liste suivante présente un exemple de modèle CloudFormation pour RDS Proxy. 

```
Resources:
 DBProxy:
   Type: AWS::RDS::DBProxy
   Properties:
     DBProxyName: CanaryProxy
     EngineFamily: MYSQL
     RoleArn:
      Fn::ImportValue: SecretReaderRoleArn
     Auth:
       - {AuthScheme: SECRETS, SecretArn: !ImportValue ProxySecret, IAMAuth: DISABLED}
     VpcSubnetIds:
       Fn::Split: [",", "Fn::ImportValue": SubnetIds]

 ProxyTargetGroup: 
   Type: AWS::RDS::DBProxyTargetGroup
   Properties:
     DBProxyName: CanaryProxy
     TargetGroupName: default
     DBInstanceIdentifiers: 
       - Fn::ImportValue: DBInstanceName
   DependsOn: DBProxy
```

 Pour plus d'informations sur les ressources de cet exemple, consultez [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html) et [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxytargetgroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxytargetgroup.html). 

 Pour de plus amples informations sur les ressources que vous pouvez créer avec CloudFormation, consultez [Référence de type de ressource RDS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_RDS.html). 