Mysql
 sql >> Base de données >  >> RDS >> Mysql

CloudFormation :Modèle RDS Mysql pour créer une base de données, des tables, un utilisateur ou charger un schéma

La réponse courte est :vous ne pouvez pas, pour le moment, exécuter automatiquement des requêtes SQL à la création d'une instance (dans le futur, qui sait...).

J'utiliserais la méthode suivante pour résoudre ce problème classique :

  • Utilisez un EC2 pour exécuter le code MySQL dont vous avez besoin (vous ne savez pas si vous devez mettre une clause "DependsOn" dans l'EC2, car vous devrez vous référer au point de terminaison RDS avec un GetAtt, qui mettra probablement un implicite clause DependsOn). Vous mettez cela dans les données utilisateur ou dans tout script de votre choix, tant que vous passez le point de terminaison RDS d'une manière ou d'une autre. Bien sûr, vous aurez besoin du package client MySQL installé sur votre EC2.

Comme vous l'avez écrit, CloudFormation vous permet de créer des ressources AWS, mais la population de ces ressources dépend de vous. Encore une fois, un client MySQL fera l'affaire (puisqu'un vidage MySQL n'est rien de plus que du code SQL dans un fichier, identique à votre exigence initiale).

L'utilisation de Chef ou de Puppet ne résoudra pas votre problème à lui seul, car les deux ont besoin d'un agent installé sur un EC2, vous ne pouvez pas exécuter votre agent sur le serveur RDS. Vous pouvez donc avoir un EC2 utilisant un agent Chef ou Puppet, qui lancera à son tour le script MySQL, mais cela ne vous apportera pas grand chose de plus que la solution précédente