Installer des connexions partagées des bases de données

avec Amazon RDS Proxy

Amazon RDS Proxy, est un proxy de base de données entièrement géré et hautement disponible pour Amazon Relational Database Service (Amazon RDS) qui rend les applications plus évolutives, plus résilientes aux défaillances des bases de données et plus sûres.

De nombreuses applications, dont celles développées à partir d’architectures sans serveur modernes utilisant AWS Lambda, peuvent avoir beaucoup de connexions ouvertes au serveur de bases de données. Elles sont susceptibles d’ouvrir et fermer fréquemment les connexions aux bases de données, ce qui épuise la mémoire et les ressources de calcul. Amazon RDS Proxy permet aux applications de regrouper et de partager des connexions établies avec la base de données, améliorant l'efficacité de cette dernière et l'évolutivité des applications. Avec RDS Proxy, les temps de basculement pour les bases de données RDS et Aurora ont été réduits jusqu’à 66 %. De plus, les informations d’identifications, l’authentification et l’accès peuvent être gérés à travers l’intégration avec AWS Secrets Manager et AWS Identity and Access Management (IAM).

Amazon RDS Proxy peut s’activer sur la plupart des applications sans changer de code. De plus, vous n’avez pas besoin de provisionner ou de gérer une infrastructure supplémentaire. La tarification est simple et prévisible : vous payez par vCPU de l’instance de base de données pour laquelle le proxy est activé. La version Amazon RDS Proxy prend en charge Amazon Aurora compatible MySQL et Amazon RDS for MySQL.

Dans ce tutoriel, vous apprenez à créer un RDS Proxy Amazon et à le connecter à une base de données Amazon RDS MySQL. Vous utilisez le client MySQL sur une instance EC2 Amazon pour établir une connexion à la base de données RDS MySQL à travers le RDS Proxy. Ces concepts peuvent aussi s’appliquer à une architecture sans serveur avec Amazon RDS.

Prérequis

Amazon RDS Proxy exige que vous ayez mis en place des ressources de mise en réseau comme :

  • Amazon Virtual Private Cloud (Amazon VPC),
  • au minimum deux sous-réseaux à travers les différentes zones de disponibilité,
  • une base de données Amazon RDS et des instances EC2 Amazon au sein du même VPC, et
  • une passerelle Internet.

Si vous vous êtes déjà connecté avec succès aux instances d’une base de données RDS MySQL, alors vous avez déjà les ressources de mises en réseau nécessaires. Pour ce tutoriel, votre compte doit être installé avec une instance EC2 et une instance RDS MySQL au sein du même VPC. Si ces instances ne sont pas installées, vous pouvez suivre les instructions RDS et EC2 pour provisionner ces instances dans le VPC par défaut.

À propos de ce tutoriel
Durée 10 minutes      
Coût Moins de 1 USD
Cas d'utilisation Bases de données
Produits Amazon RDS, AWS Secrets Manager
Public ciblé Administrateurs de bases de données, développeurs
Niveau Intermédiaire
Dernière mise à jour 16 mars 2020

Étape 1 : vérifier les groupes de sécurité et le connexion des bases de données

Au cours de cette étape, vous vérifiez les règles entrantes et sortantes de vos groupes de sécurité. Puis, vous vérifiez la connexion depuis une instance EC2 vers une instance de base de données RDS existante.  

1.1. Ouvrez le tableau de bord Amazon VPC et connectez-vous avez les mêmes identifiants que votre compte AWS. Si vous n’avez pas de compte AWS, créez un compte AWS pour commencer

Vous possédez déjà un compte ? Connectez-vous à votre compte

1.2. Choisissez la Région dans la liste déroulante et sélectionnez la région où vos instances RDS et EC2 sont situées. Ce tutoriel utilise la région USA Est (Ohio).

1.3. Dans le volet de navigation, sélectionnezGroupes de sécurité.

Ce tutoriel utilise deux groupes de sécurité VPC :

  • EC2-sg : Ce groupe de sécurité est attaché à l’instance EC2 et autorise uniquement les connexions SSH entrantes à l’instance EC2. Il autorise cependant toutes les connexions sortantes.
  • RDS-sg : Ce groupe de sécurité est attaché à l’instance RDS et autorise uniquement les connexions TCP entrantes sur le port 3306 de l’instance EC2. Il autorise cependant toutes les connexions sortantes.

1.4. Sélectionnez le groupe EC2-sg

  • Choisissez l’onglet Règles entrantes et vérifiez que le type est SSH.
  • Choisissez l’onglet Règles sortantes et vérifiez que le Type est Tout le trafic.

1.5. Sélectionnez le groupe RDS-sg.

  • Choisissez l’onglet Règles entrantes et vérifiez que la Source est EC2-sg.
  • Choisissez l’onglet Règles sortantes et vérifiez que le Type est Tout le trafic.

1.6. Parcourez la Console RDS, sélectionnez Bases de données, puis choisissez votre instance existante RDS MySQL DB. Sur l’onglet Connectivité et sécurité, notez le Point de terminaison de l’instance.

1.7. Parcourez la console EC2, sélectionnez Exécuter les instances, puis choisissez l’instance EC2 à partir de laquelle vous voulez tester la connectivité à l’instance de base de données RDS. Sélectionnez Connecter.

1.8. Dans la boîte de dialogue Se connecter à votre instance, sélectionnez Connecter l’instance EC2 (connexion SSH à partir d’un navigateur). Une fenêtre de navigateur apparaît affichant l’interface de ligne de commande (CLI) de l’instance EC2

1.9. Dans l’interface de ligne de commande de l’instance EC2, testez la connexion à l’instance de base de données RDS en utilisant la commande suivante.

mysql -h <RDS DB endpoint> -P 3306 -u <username> -p

Lorsque vous y êtes invité, saisissez votre mot de passe principal et appuyez sur Entrer.

La CLI renvoie un message pour vous avertir que vous vous êtes connecté avec succès à l’instance de base de données RDS. Si vous ne pouvez pas vous connecter de l’instance EC2 à l’instance RDS, vérifiez que les deux instances sont sur le même VPC et que les groupes de sécurité sont configurés correctement.

Étape 2 : stocker les informations d’identification de votre base de données dans AWS Secrets Manager

Au cours de cette étape, vous stockez les informations d’identification de votre base de données dans AWS Secrets Manager. Chaque compte utilisateur de base de données, auquel le proxy a accès, a un secret correspondant dans AWS Secrets Manager. Amazon RDS Proxy utilise ces secrets pour maintenir un pool de connexions à votre base de données.

2.1. Parcourez la section Secrets Manager d’AWS Management Console et choisissez Stocker un nouveau secret.

Dans le champ Sélectionner un type de secret, choisissez Informations d’identification de la base de données RDS. Ensuite, saisissez le nom d’utilisateur et le mot de passe utilisés lors de la création de votre base de données.

2.3. Sélectionnez DefaultEncryptionKey puis choisissez la base de données RDS correspondante pour le secret de l’accès. Sélectionnez Suivant.  

2.4. Dans la section Nom et description du secret, nommez et décrivez votre secret de manière à faciliter toute recherche ultérieure. Puis, sélectionnez Suivant.

2.5. AWS Secrets Manager vous permet de configurer le renouvellement automatique de vos secrets. Il s’agit donc d’un moyen simple et intelligent de renforcer la sécurité de votre application. Pour plus d’informations, consultez la rubrique Renouvellement de vos secrets AWS Secrets Manager.

Ce tutoriel ne traitant pas de la configuration du renouvellement des secrets, sélectionnez l’option Désactiver le renouvellement automatique, puis Suivant.

2.6. La console Secrets Manager présente la configuration des paramètres pour votre secret, ainsi que quelques exemples de code pour vous montrer comment l’utiliser. Défilez jusqu’au bas de la page et choisissez Stocker pour enregistrer votre secret.

2.7. Une fois que vous avez créé votre secret, la page Secrets Manager affiche les secrets que vous avez créés. Sélectionnez votre tutorial-secret.

Le champ détails du Secret affiche l’ARN de votre secret. Copiez cette valeur, car vous en aurez besoin ultérieurement dans ce tutoriel.

Étape 3 : créer un rôle et une stratégie IAM

Au cours de cette étape, vous créez un rôle et une stratégie AWS Identity and Access Management qui permet à RDS Proxy d’accéder aux secrets que vous avez créés dans AWS Secrets Manager.

3.1. Allez au tableau de bord IAM dans AWS Management Console. Dans le volet de navigation du tableau de bord IAM, choisissez Rôles puis, Créer un rôle.

3.2. Pour Sélectionner le type d'entité de confiance, sélectionnez Service AWS. Pour Choisir un cas d’utilisation, sélectionnez RDS.

3.3. Pour Sélectionner votre cas d'utilisation, choisissez RDS - Ajouter un rôle à la base de données, puis Suivant : autorisations.

3.4. Choisissez Créer une stratégie et sélectionnez l’onglet JSON. Supprimez les déclarations de stratégie existantes.

3.5. Ajoutez les nouvelles déclarations de stratégie en substituant votre valeur d’ARN par les exemples listés ci-dessous. Puis, choisissez Examiner une stratégie.

(Cette déclaration de stratégie est décrite dans Mise en place des stratégies AWS Identity and Access Management (IAM) dans le Guide utilisateur Amazon RDS.)

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetRandomPassword",
                "secretsmanager:CreateSecret",
                "secretsmanager:ListSecrets"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "secretsmanager:*",
            "Resource": [
                     "your_secret_ARN"
            ]
        }
    ]
}

3.6. Dans la section Examiner une stratégie, nommez et décrivez votre stratégie de manière à en faciliter toute recherche ultérieure. Sélectionnez ensuite Créer une stratégie.

3.7. Choisissez les Rôles puis sélectionnez Rafraîchir.

3.8. Dans la zone de recherche, saisissez tutoriel et sélectionnez tutorial-policy. Choisissez Suivant : Balises.

3.9. Passez la section des balises et choisissez Suivant : Examiner.

3.10. Dans la section Examiner, nommez et décrivez votre rôle de manière à en faciliter toute recherche ultérieure. Sélectionnez Créer le rôle.

3.11. Confirmez que le rôle a été créé.

Étape 4 : créer un RDS Proxy

Au cours de cette étape, vous créez un RDS Proxy et vous le configurez pour le groupe de sécurité que vous avez vérifié lors de l’Étape 1, pour le secret que vous avez créé lors de l’Étape 2 et pour le rôle que vous avez créé lors de l’Étape 3.

4.1. Atteignez la console RDS. Dans le volet de navigation, choisissez Proxys, puis Créer un proxy.

4.2. Dans la section configuration du Proxy, suivez ces étapes :

  • Donnez un nom facilement identifiable pour l’identifiant du Proxy.
  • Décochez la case Exiger le Transport Layer Security.
  • Laissez le Délai d’expiration de connexion inactive par défaut à 30 minutes.

4.3. Dans la section Configuration du groupe cible, pour la Base de données, sélectionnez l’instance de base de données RDS MySQL à associer au RDS Proxy. (Cette instance de base de données RDS est la même que l’instance pour laquelle vous avez vérifié la connectivité lors de l’Étape 1.) Pour le Nombre de connexions maximum au groupe de connexions, conservez la valeur par défaut : 100.

4.4. Dans la section Connectivité, suivez ces étapes :

  • Pour le secret Secrets Manager, choisissez le secret que vous avez créé lors de l’Étape 2.
  • Pour le rôle IAM, choisissez le rôle que vous avez créé lors de l’Étape 3.
  • Pour l’Authentification IAM, conservez la valeur par défaut sur Désactivé. (Ce tutoriel utilise les informations d’identification de la base de données pour vous connecter au RDS Proxy ; l’Authentification IAM n’est alors pas utilisée.)
  • Pour les Sous-réseaux, sélectionnez un minimum de deux sous-réseaux dans des zones de disponibilité différentes.
  • Étendez la configuration de connectivité supplémentaire, et pour le groupe de sécurité VPC, choisissez le groupe de sécurité RDS-sg existant.

4.5. Dans la section Configuration avancée, conservez la sélection par défaut pour la Journalisation améliorée. Cochez la case d’accord de service et choisissez Créer un proxy.

4.6. Attendez que le statut du proxy change de « En cours de création » à « Disponible », puis sélectionnez le proxy.

4.7. Dans la section Configurations du Proxy, notez le Point de terminaison du Proxy et confirmez l’exactitude des autres paramètres.

Étape 5 : Se connecter à la base de données via le RDS Proxy

Au cours de cette étape, vous vous connectez à l’instance de base de données RDS à partir de votre instance EC2. Mais, au lieu de se connecter directement, l’instance EC2 se connecte à l’instance de base de données RDS via votre RDS Proxy.

5.1. Accédez à la console EC2. Dans le volet de navigation EC2, choisissez Exécuter les instances, puis sélectionnez l’instance EC2 pour lequel vous avez testé la connectivité depuis l’Étape 1. Choisissez Connecter.

5.2. Dans la boîte de dialogue Se connecter à votre instance sélectionnez Connectez l’instance EC2 (connexion SSH à partir d’un navigateur), et choisissez Connecter.

5.3. Dans la CLI de l’instance EC2, utilisez la commande suivante pour vous connecter à l’instance RDS via le point de terminaison RDS Proxy.

mysql -h <proxy endpoint> -P 3306 -u <username> -p

Lorsque vous y êtes invité, saisissez votre mot de passe et appuyez sur Entrer.

La CLI renvoie un message pour vous avertir que vous vous êtes connecté avec succès à l’instance de base de données RDS via le point de terminaison RDS Proxy.

Étape 6 : Surveiller votre connexion RDS Proxy

Au cours de cette étape, vous utilisez Amazon CloudWatch pour surveiller les métriques du proxy, comme les connexions des bases de données et des clients.

6.1. Accédez à la console CloudWatch. Dans le volet de navigation CloudWatch, sélectionnez Métriques puis, choisissez RDS, Métriques par proxy.  

6.2. Dans la rubrique Rechercher, saisissez le nom de votre proxy.

6.3. Dans la liste des métriques, choisissez ClientConnections et DatabaseConnections. Pour l’option d’affichage, sélectionnez Nombre.

La métrique ClientConnections montre le nombre de connexions des client actuelles au RDS Proxy rapporté toutes les minutes. La métrique DatabaseConnections montre le nombre de connexions aux bases de données actuelles au RDS Proxy rapporté toutes les minutes. Pour plus de détails sur toutes les métriques, consultez Surveillance du RDS Proxy.

Le graphique montre qu’il y a eu une connexion de client (EC2 et RDS Proxy) et une connexion aux bases de données (RDS Proxy à l’instance de base de données RDS Proxy). Ces données confirment la connexion que vous avez établie lors de l’Étape 5.

Étape 7 : nettoyer

Dans les étapes qui suivent, vous allez nettoyer les ressources que vous avez créées dans ce tutoriel.

Supprimer un RDS Proxy

7.1. Allez à la console RDS ; dans le volet de gauche, choisissez Proxys.

7.2. Sélectionnez le proxy du tutoriel.

7.3. Choisissez Actions, puis Supprimer.

7.4. Dans la boîte de dialogue qui s’affiche, saisissez me supprimer, puis choisissez Supprimer.

Le statut du proxy change à Supprimé. Une fois terminé, le proxy est retiré de la liste.

Supprimer le secret

7.5. Allez à la console Secrets Manager.

7.6. Sélectionnez le proxy du tutoriel.

7.7. Choisissez Actions, puis Supprimer le secret.

7.8. Pour des raisons de sécurité, Secrets Manager requiert une certaine période d’attente avant de supprimer définitivement un secret. Utilisez la période d’attente par défaut de 30 jours et choisissez Programmer la suppression.

Supprimer le rôle et la stratégie IAM

7.9. Allez à la console IAM, puis choisissez Rôles dans le volet de navigation.

7.10. Recherchez tutorial-role et sélectionnez la case à côté du rôle.

7.11. En haut de la page, choisissez Supprimer le rôle.

7.12. Dans la boîte de dialogue de confirmation, choisissez Oui, supprimer.  

7.12. Dans le volet de navigation, choisissez Stratégies.

7.13. Recherchez tutorial-role et sélectionnez la case à côté de la stratégie.  

7.14. Choisissez Actions, puis cliquez sur Supprimer.

7.15. Confirmez que vous voulez supprimer la stratégie et choisissez Supprimer.

Supprimer les autres ressources

Si vous avez créé une nouvelle instance EC2, une nouvelle instance RDS et des groupes de sécurité correspondants, supprimez également ces ressources.

Félicitations

Vous avez créé un RDS Proxy Amazon pour regrouper et partager les connexions aux bases de données, surveillé les métriques du proxy et vérifié l’activité de connexion du proxy.

Ce didacticiel vous a-t-il été utile ?

Merci
Merci de nous indiquer ce que vous avez aimé.
Fermer
Nous sommes désolés de vous décevoir.
Quelque chose est-il obsolète, déroutant ou inexact ? Aidez-nous à améliorer ce didacticiel en fournissant des commentaires.
Fermer

En savoir plus sur les fonctionnalités d'Amazon RDS

Obtenez plus d'informations sur les fonctionnalités d'Amazon RDS avec le Guide utilisateur Amazon RDS.

Bonnes pratiques d'Amazon RDS

Découvrez les bonnes pratiques générales et les options pour travailler avec Amazon RDS.

En savoir plus sur Amazon RDS Proxy

Si vous voulez en savoir plus, lisez le post de blog Using Amazon RDS Proxy with AWS Lambda et consultez Gestion des connexions avec Amazon RDS Proxy.