postgresql - 使用 Cloudformation 在 AWS Postgres RDS 中创建多个数据库

标签 postgresql amazon-web-services amazon-rds rds aws-cloudformation

我需要使用 Cloudformation 在 AWS 提供的 Postgres RDS 中创建多个数据库。我能够创建单个数据库。

下面是我的模板的片段:

"pgDB": {
    "Properties": {
        "AllocatedStorage": {
            "Ref": "Storage"
        },
        "DBInstanceClass": {
            "Ref": "DBInstanceClass"
        },
        "DBInstanceIdentifier": {
            "Ref": "DBInstanceName"
        },
        "DBName": {
            "Ref": "DBName"
        },
        "DBParameterGroupName": {
            "Ref": "myDBParamGroup"
        },
        "DBSubnetGroupName": {
            "Ref": "myDBSubnetGroup"
        },
        "Engine": "postgres",
        "MasterUserPassword": {
            "Ref": "DBPassword"
        },
        "MasterUsername": {
            "Ref": "DBUser"
        },
        "VPCSecurityGroups": [{
            "Fn::GetAtt": [
                "myDBEC2SecurityGroup",
                "GroupId"
            ]
        }]
    }
}

最佳答案

您的 CloudFormation 资源 pgDB 类型应为 AWS::RDS::DBInstance ,因此,它指示 CloudFormation 创建一个 RDS 实例。每个 RDS 实例可以包含可变数量的数据库或数据库架构。

CloudFormation 不提供在创建时配置实例的方法。要在 RDS 实例上创建 Postgre 数据库,您必须使用 EC2 实例来使用存储的 SQL 转储或运行普通命令(例如 CREATE DATABASE)来配置数据库。 ,使用psql。已经有question关于 RDS 配置。

您可以通过使用自己的参数定义另一个 AWS::RDS::DBInstance 资源来创建多个 RDS 数据库实例。默认情况下,一个帐户上可以有 40 个 RDS Postgre 实例(请参阅 FAQ 中的限制)。

关于postgresql - 使用 Cloudformation 在 AWS Postgres RDS 中创建多个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42547196/

相关文章:

linux - 如何在没有 Route53 的情况下在 aws 上配置 dns 子级别?

PostgreSQL 没有使用直接索引

aws-cloudformation - 通过 SQL Server 的 cloudformation 创建 RDS OptionGroup 时,RDS OptionGroup 不起作用

amazon-web-services - 尝试将 RDS Aurora 恢复到时间点时需要什么无服务器 v2 扩展配置?

java - IS NULL 条件下的 JDBC 错误

mysql - (Ruby) 如何转储数据库?

regex - Postgres 正则表达式 regexp_split_to_array

python - sqlalchemy:获取值不存在的ID

amazon-web-services - AWS 托管用于机器学习的大型模型文件

laravel - 与环境关联的一个或多个 TargetGroups 处于降低的健康状态