postgresql - 创建 CloudFormation 后引导数据库

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

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

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

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

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

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

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

那么,对于在 AWS VPC 内运行一次性脚本来引导数据库用户,是否有人有任何建议?

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

谢谢, 亚历克斯

PS。我们使用 ECS,因此最好尽量避免使用 EC2 UserData 功能(这似乎是目前所有 AWS 文档中推荐的解决方案:/)

最佳答案

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

关于postgresql - 创建 CloudFormation 后引导数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43264522/

相关文章:

postgresql - mysql FIND_IN_SET 相当于 postgresql

postgresql - pyodbc 帮助查找入门教程

amazon-web-services - AWS : Find IP address of all connections to RDS instances

mysql - 您可以使用 Amazon 的 RDS 复制特定的数据库或表吗

mysql - 我无法用小写执行 Sql UpperCase

amazon-web-services - AWS CloudFormation 示例 - AMI ID 从哪里来?

postgresql - 如何根据其他列在postgresql中添加一列

aws-cloudformation - 取消VPC配置,如果账号是XXXXXX

aws-cloudformation - 如何为多个现有资源编写CloudFormation模板文件以进行一键部署

sql - 如何使用SQL对postgresql中最后一条记录中的数据求和