Cours > Module > Chapitre

Lab : Connexion à Amazon RDS Proxy avec AWS Lambda

Objectif

Ce lab montre comment configurer une fonction AWS Lambda pour se connecter à une base de données RDS via un RDS Proxy. L’objectif est de démontrer comment RDS Proxy peut gérer les connexions de manière plus efficace tout en offrant une gestion des connexions sécurisée et optimisée pour les applications serverless.

1. Architecture du Lab

  • Amazon RDS pour héberger la base de données (MySQL, PostgreSQL, etc.).
  • RDS Proxy pour gérer les connexions à la base de données.
  • Une fonction Lambda pour interagir avec la base de données via le RDS Proxy.

2. Étapes du Déploiement

1. Créer une Instance RDS

  1. Accédez à RDS : Aller dans RDS > Databases > Create Database.
  2. Choisir le moteur de base de données : Sélectionnez MySQL ou PostgreSQL (selon vos besoins).
  3. Configurer les paramètres de la base de données :
    • DB Instance Identifier : mydb-instance.
    • Master Username : admin.
    • Master Password : définir un mot de passe sécurisé.
  4. Sélectionner un VPC et un subnet group : Choisissez un VPC où votre base de données sera hébergée.
  5. Sélectionner un groupe de sécurité : Créez un groupe de sécurité qui permet l’accès au port de la base de données (par exemple, 3306 pour MySQL).
  6. Créer la base de données et attendre qu’elle soit prête à l’utilisation.

2. Créer un RDS Proxy

  1. Accédez à RDS Proxy : Aller dans RDS > Proxies > Create Proxy.
  2. Configurer le RDS Proxy :
    • Proxy Name : mydb-proxy.
    • Engine : Choisissez le même moteur que votre base de données (MySQL ou PostgreSQL).
    • RDS Database : Sélectionner l’instance RDS que vous venez de créer.
    • IAM Role : Créez un rôle IAM qui permettra au proxy d’accéder à l’instance RDS.
    • VPC : Sélectionnez le même VPC que celui de votre base de données.
    • Security Groups : Associez un groupe de sécurité permettant l’accès au proxy.
    • Secrets Manager : Si vous souhaitez gérer les identifiants via Secrets Manager, configurez le secret contenant les informations de connexion.
  3. Créer le RDS Proxy et attendez que le statut soit Available.

3. Créer une Fonction Lambda pour Accéder au RDS Proxy

  1. Accédez à Lambda : Aller dans AWS Lambda > Functions > Create function.
  2. Configurer la fonction Lambda :
    • Nom : connect-to-rds-proxy.
    • Runtime : Sélectionnez Python 3.x (ou tout autre langage supporté).
    • VPC : Sélectionnez le même VPC que celui de votre RDS Proxy.
    • Security Group : Associez le même groupe de sécurité utilisé pour l’instance RDS.
    • Role : Assurez-vous que la fonction Lambda dispose d’un rôle IAM avec les permissions nécessaires pour interagir avec le RDS Proxy et Secrets Manager.
  3. Ajouter le code Lambda pour se connecter à la base de données via le RDS Proxy :

Utilisez le endpoint du RDS Proxy et les identifiants stockés dans Secrets Manager pour établir une connexion avec la base de données. Exemple de code en Python :

				
					import pymysql
import boto3
from botocore.exceptions import NoCredentialsError

# Récupérer les informations d'identification depuis Secrets Manager
secret_name = "my-db-credentials"
region_name = "us-west-2"

client = boto3.client('secretsmanager', region_name=region_name)
try:
    get_secret_value_response = client.get_secret_value(SecretId=secret_name)
    secret = get_secret_value_response['SecretString']
except NoCredentialsError:
    print("Impossible de récupérer les informations d'identification.")
    exit(1)

# Connexion à la base de données via le RDS Proxy
proxy_endpoint = "mydb-proxy.cluster-xxxxxxxxxx.us-west-2.rds.amazonaws.com"
db_user = secret['username']
db_password = secret['password']

connection = pymysql.connect(host=proxy_endpoint,
                              user=db_user,
                              password=db_password,
                              database='mydb')

with connection.cursor() as cursor:
    cursor.execute("SELECT * FROM my_table;")
    result = cursor.fetchall()
    print(result)

				
			

Déployer la fonction Lambda : Cliquez sur Deploy pour déployer la fonction Lambda.

4. Tester la Fonction Lambda

  1. Testez la fonction Lambda : Créez un événement de test dans la console Lambda pour exécuter la fonction et vérifier si la connexion à la base de données via le RDS Proxy est réussie.

Vérifiez les Logs : Consultez les logs dans CloudWatch Logs pour vérifier que la fonction Lambda s’exécute correctement et accède aux données de la base de données.

5. Surveiller et Optimiser

  1. Surveillance avec CloudWatch : Utilisez Amazon CloudWatch pour surveiller les métriques liées à votre RDS Proxy et à la fonction Lambda, telles que la latence, le nombre de connexions, et les erreurs.

Ajuster les paramètres de mise à l’échelle : Configurez des alarmes pour vous alerter en cas d’erreurs de connexion ou de pics de latence.

6. Nettoyer les Ressources

  1. Supprimer la fonction Lambda : Après avoir testé la fonction, supprimez la fonction Lambda pour éviter des frais inutiles.
  2. Supprimer le RDS Proxy et l’instance RDS associée.

Supprimer les secrets dans Secrets Manager si utilisés.

×

Panier