【问题标题】:Bootstrapping databases after CloudFormation creation创建 CloudFormation 后引导数据库
【发布时间】:2017-09-02 00:51:10
【问题描述】:

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

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

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

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

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

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

那么,对于在 AWS VPC 中运行本质上是 1 次脚本来引导数据库用户,有人有什么建议吗?

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

谢谢, 亚历克斯

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 是的,这当然是一个可行的选择,但需要手动设置快照(或自动化该过程)。尝试找出 AWS 对此问题的建议,似乎应该是相当普遍的。
    猜你喜欢
    • 2020-11-02
    • 2019-06-20
    • 2023-02-23
    • 2012-05-09
    • 2017-01-28
    • 1970-01-01
    • 2013-01-31
    • 2020-09-24
    • 2023-03-14
    相关资源
    最近更新 更多