创建CloudFormation后引导数据库

时间:2017-04-06 19:48:36

标签: postgresql amazon-rds amazon-cloudformation circleci amazon-ecs

(#1)所以我有一个通过CloudFormation堆栈创建的RDS(postgres)数据库。我创建了根db(“postgres”)和主用户名/密码。现在我需要实际交给应用程序本身。

(#2)应用程序部署过程负责:

  • 确保数据库存在
  • 确保其用户/角色存在(例如“service_user”,“read_only”“read_write”)。

(#3)应用程序本身(实际上是迁移代理)负责:

  • 确保表结构存在
  • 需要任何初始数据等。

现在我已经获得了CloudFormation部分(#1)并使应用程序部分(#3)运行得非常好。我有(#2)的问题,我们使用CircleCI,不幸的是,这使得部署本身在我们的VPC之外运行。

那么有没有人建议在AWS VPC中运行基本上一次性的脚本来引导数据库用户?

我最初想的是一个lambda函数,但看起来有点痛苦。理想情况下,如果有一种方法可以在CloudFormation堆栈的末尾添加它,那就太棒了!我只是不想从应用程序本身运行它,因为它需要具有我想要避免的主用户名/密码的应用程序。

谢谢, 亚历

PS。我们使用ECS非常理想地避免使用EC2 UserData功能(这似乎是目前所有AWS文档中推荐的解决方案:/)

1 个答案:

答案 0 :(得分:0)

您可以从RDS创建快照,然后指定从快照启动RDS。您需要创建快照并在删除RDS实例时将其标记为不删除。