Cloudformation · 7 min read · Feb 04, 2026
Utiliser Cloudformation pour créer une instance RDS MySql sur AWS

Le Service de Base de Données Relationnelle AWS (RDS AWS) est un service web qui facilite la configuration et l’exploitation d’une base de données relationnelle dans le cloud. Pour en savoir plus sur RDS, recherchez l’article “Comment configurer une instance RDS MySql (Base de Données Relationnelle MySql) sur AWS”.
AWS CloudFormation nous permet d’utiliser des langages de programmation (yaml/json) ou un simple fichier texte pour modéliser et provisionner toutes les ressources nécessaires pour nos applications. Cela nous donne une source unique de vérité pour nos ressources AWS.
Dans cet article, nous allons voir les étapes pour créer une instance RDS MySql en utilisant Cloudformation Stack.
Prérequis
- Compte AWS (Créez-en un si vous n’en avez pas).
- Compréhension de base de Cloudformation Stack.
- Compréhension de base de l’instance RDS MySql (Base de Données Relationnelle MySql) sur AWS.
Que allons-nous faire ?
- Connectez-vous à AWS.
- Créer une instance RDS MySql en utilisant Cloudformation Stack
Connectez-vous à AWS
- Cliquez ici pour aller à la page de connexion AWS.
Lorsque nous cliquons sur le lien ci-dessus, nous verrons une page web comme suit où nous devons nous connecter en utilisant nos identifiants.

Une fois que nous nous sommes connectés avec succès à AWS, nous verrons la console principale avec tous les services répertoriés.

Créer une instance RDS MySql en utilisant Cloudformation.
Avant de créer une instance en utilisant Cloudformation Stack, copiez le code du bloc suivant ou téléchargez le modèle d’ici et enregistrez-le sur votre machine locale.
---
AWSTemplateFormatVersion: '2010-09-09'
Description: Cette pile crée une instance RDS MySql 5.7
Parameters:
Owner:
Description: Entrez le nom du propriétaire de cette pile.
Type: String
Default: Name
VPC:
Description: Sélectionnez VPC parmi les VPC disponibles dans votre compte.
Type: AWS::EC2::VPC::Id
PrivateSubnet1:
Description: Sélectionnez le sous-réseau privé 1.
Type: AWS::EC2::Subnet::Id
PrivateSubnet2:
Description: Sélectionnez le sous-réseau privé 2.
Type: AWS::EC2::Subnet::Id
PrivateSubnet3:
Description: Sélectionnez le sous-réseau privé 3.
Type: AWS::EC2::Subnet::Id
MasterUsername:
Description: Nom de l'administrateur de la base de données.
Type: String
Default: rdsroot
MasterUserPassword:
NoEcho: 'true'
Description: Mot de passe de l'administrateur de la base de données.
Type: String
MinLength: '8'
AllowedPattern: "[a-zA-Z0-9!?]*"
ConstraintDescription: Doit contenir uniquement des lettres majuscules et minuscules et des chiffres
BackupRetentionPeriod:
Description: Entrez la période de rétention des sauvegardes en jours.
Type: Number
Default: '5'
MultiAvailabilityZone:
Description: Voulez-vous activer plusieurs zones de disponibilité ?
Type: String
Default: 'true'
AllowedValues:
- 'true'
- 'false'
TcpPort:
Description: Entrez le numéro de port TCP d'écoute RDS.
Type: Number
Default: '3306'
PreferredBackupWindow:
Description: Entrez l'heure de la fenêtre de sauvegarde préférée.
Type: String
Default: 15:00-17:00
PreferredMaintenanceWindow:
Description: Entrez l'heure de la fenêtre de maintenance préférée.
Type: String
Default: Sun:18:00-Sun:22:00
AllocatedStorage:
Default: '15'
Description: Entrez la taille de la base de données (Go)
Type: Number
MinValue: '5'
MaxValue: '6144'
ConstraintDescription: Doit être entre 5-6144
SnapshotOnDelete:
Description: Voulez-vous créer un instantané lors de la suppression de l'instance ?
Type: String
Default: 'true'
AllowedValues:
- 'true'
- 'false'
AutoMinorVersionUpgrade:
Description: Voulez-vous autoriser la mise à niveau automatique de la version mineure ?
Type: String
Default: 'true'
AllowedValues:
- 'true'
- 'false'
InstanceType:
Description: Sélectionnez le type d'instance.
Type: String
Default: db.t2.micro
ConstraintDescription: Doit être un type d'instance EC2 valide.
Mappings:
Settings:
MySQL:
Engine: MySQL
Version: '5.7'
Conditions:
ConfigureSnapshotOnDelete:
Fn::Equals:
- Ref: SnapshotOnDelete
- 'true'
Metadata:
AWS::CloudFormation::Interface:
ParameterGroups:
- Label:
default: Propriété
Parameters:
- Owner
- Label:
default: Configuration Réseau
Parameters:
- VPC
- PrivateSubnet1
- PrivateSubnet2
- PrivateSubnet3
- Label:
default: Configuration RDS
Parameters:
- InstanceType
- MasterUsername
- MasterUserPassword
- BackupRetentionPeriod
- PreferredBackupWindow
- PreferredMaintenanceWindow
- SnapshotOnDelete
- AllocatedStorage
- AutoMinorVersionUpgrade
- TcpPort
- MultiAvailabilityZone
ParameterLabels:
Owner:
default: Équipe ou Propriétaire Individuel
InstanceType:
default: Type d'Instance
PrivateSubnet1:
default: Sous-réseau Privé 1
PrivateSubnet2:
default: Sous-réseau Privé 2
PrivateSubnet3:
default: Sous-réseau Privé 3
MasterUsername:
default: Nom d'Utilisateur Principal
MasterUserPassword:
default: Mot de Passe de l'Utilisateur Principal
BackupRetentionPeriod:
default: Période de Rétention des Sauvegardes
PreferredBackupWindow:
default: Fenêtre de Sauvegarde Préférée
PreferredMaintenanceWindow:
default: Fenêtre de Maintenance Préférée
AllocatedStorage:
default: Stockage Alloué
AutoMinorVersionUpgrade:
default: Mise à Niveau Automatique de la Version Mineure
TcpPort:
default: Port TCP
MultiAvailabilityZone:
default: Zones de Disponibilité Multiples ?
SnapshotOnDelete:
default: Instantané à la Suppression ?
Resources:
RDSAccessSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: Accès à l'Instance RDS
VpcId:
Ref: VPC
Tags:
- Key: Name
Value:
Fn::Join:
- ''
- - Ref: AWS::StackName
- "-rds"
- Key: Owner
Value:
Ref: Owner
AccessSecurityGroupIngress:
Type: AWS::EC2::SecurityGroupIngress
DependsOn: RDSAccessSecurityGroup
Properties:
GroupId:
Ref: RDSAccessSecurityGroup
IpProtocol: tcp
FromPort:
Ref: TcpPort
ToPort:
Ref: TcpPort
SourceSecurityGroupId:
Ref: RDSAccessSecurityGroup
DbSubnetGroup:
Type: AWS::RDS::DBSubnetGroup
Properties:
DBSubnetGroupDescription:
Fn::Join:
- ''
- - 'Groupe de Sous-réseau RDS pour '
- Ref: AWS::StackName
SubnetIds:
- Ref: PrivateSubnet1
- Ref: PrivateSubnet2
- Ref: PrivateSubnet3
Tags:
- Key: Name
Value:
Ref: AWS::StackName
- Key: Owner
Value:
Ref: Owner
DbInstance:
Type: AWS::RDS::DBInstance
DeletionPolicy: Snapshot
DependsOn:
- DbSubnetGroup
- RDSAccessSecurityGroup
Properties:
AllocatedStorage:
Ref: AllocatedStorage
AllowMajorVersionUpgrade: 'false'
AutoMinorVersionUpgrade:
Ref: AutoMinorVersionUpgrade
BackupRetentionPeriod:
Ref: BackupRetentionPeriod
DBInstanceClass:
Ref: InstanceType
DBInstanceIdentifier:
Ref: AWS::StackName
DBSubnetGroupName:
Ref: DbSubnetGroup
Engine:
Fn::FindInMap:
- Settings
- MySQL
- Engine
EngineVersion:
Fn::FindInMap:
- Settings
- MySQL
- Version
MasterUsername:
Ref: MasterUsername
MasterUserPassword:
Ref: MasterUserPassword
MultiAZ:
Ref: MultiAvailabilityZone
Port:
Ref: TcpPort
PreferredBackupWindow:
Ref: PreferredBackupWindow
PreferredMaintenanceWindow:
Ref: PreferredMaintenanceWindow
PubliclyAccessible: 'false'
StorageEncrypted: 'false'
StorageType: gp2
VPCSecurityGroups:
- Ref: RDSAccessSecurityGroup
Tags:
- Key: Name
Value:
Ref: AWS::StackName
- Key: Owner
Value:
Ref: Owner
Outputs:
Owner:
Description: Équipe ou Individu qui possède cette Formation.
Value:
Ref: Owner
VPC:
Description: VPC Utilisé
Value:
Ref: VPC
RDSHostname:
Description: Nom d'Hôte RDS
Value:
Fn::GetAtt:
- DbInstance
- Endpoint.Address
RDSPort:
Description: Port RDS
Value:
Fn::GetAtt:
- DbInstance
- Endpoint.Port
DbSubnetGroup:
Description: Groupe de Sous-réseau DB Créé.
Value:
Ref: DbSubnetGroup
RDSAccessSecurityGroup:
Description: Groupe de Sécurité d'Accès RDS Créé.
Value:
Ref: RDSAccessSecurityGroup
PrivateSubnet1:
Description: Déploiement du Sous-réseau Privé 1
Value:
Ref: PrivateSubnet1
PrivateSubnet2:
Description: Déploiement du Sous-réseau Privé 2
Value:
Ref: PrivateSubnet2
PrivateSubnet3:
Description: Déploiement du Sous-réseau Privé 3
Value:
Ref: PrivateSubnet3
BackupRetentionPeriod:
Description: Période de Rétention des Sauvegardes en Jours
Value:
Ref: BackupRetentionPeriod
MultiAvailabilityZone:
Description: Activer les Zones de Disponibilité Multiples ?
Value:
Ref: MultiAvailabilityZone
SnapshotOnDelete:
Description: Créer un Instantané à la Suppression ?
Value:
Ref: SnapshotOnDelete
PreferredBackupWindow:
Description: Fenêtre de Sauvegarde Préférée
Value:
Ref: PreferredBackupWindow
PreferredMaintenanceWindow:
Description: Fenêtre de Maintenance Préférée
Value:
Ref: PreferredMaintenanceWindow
AllocatedStorage:
Description: Stockage Alloué en Go
Value:
Ref: AllocatedStorage
Une fois que vous avez le modèle sur votre machine locale, allez à la console AWS et cliquez sur “Services” dans la barre de menu supérieure et recherchez “Cloudformation”.

Vous verrez le tableau de bord principal de cloudformation comme suit. Cliquez sur le bouton “Créer une pile” pour créer une pile pour créer une instance RDS MySql.

Cliquez sur le bouton radio “Télécharger un fichier modèle” et sélectionnez le modèle que vous avez enregistré sur votre machine locale et cliquez sur le bouton “Suivant”.

Spécifiez un nom de votre choix pour la pile et remplissez les détails requis, puis cliquez sur “Suivant” pour continuer.


Vous pouvez fournir des balises à la pile Cloudformation qui peuvent être appliquées à l’instance RDS MySql qui sera créée par la pile. Cliquez sur “Suivant” pour continuer.

Faites défiler vers le bas et cliquez sur “Créer une pile” pour créer la pile.

La création prendra un certain temps. Vous pouvez voir l’action en cours sous événements.

Pour voir l’état de l’instance RDS MySql en cours de création, cliquez sur “Services” et recherchez “RDS”.

Sur le tableau de bord principal, cliquez sur “Instances DB”.

Ici, vous pouvez voir que l’état de l’instance est “Modification”. Cela prendra un certain temps pour être créé et prêt à l’emploi.

Dans les événements de la pile Cloudformation, vous pouvez voir qu’après un certain temps, une fois que l’instance RDS MySql est créée, l’état est “CREATE_COMPLETE”

Dans la console RDS, vous pouvez maintenant voir que l’état est “Disponible”.

Pour voir plus de détails sur l’instance RDS MySql, cliquez sur l’instance RDS MySql –> Connectivité & Sécurité.
Pour vous connecter à l’instance RDS MySql, vous pouvez utiliser l’Endpoint fourni par l’instance.

Une fois que l’instance n’est plus nécessaire, supprimez la pile Cloudformation depuis le tableau de bord principal de Cloudformation pour économiser sur les coûts.
Conclusion
Dans cet article, nous avons vu les étapes pour créer une instance RDS MySql en utilisant Cloudformation Stack.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.