在 Cloudformation 模板中创建 Postgres RDS 的问题[英] Issue with creating a Postgres RDS in Cloudformation Template

本文是小编为大家收集整理的关于在 Cloudformation 模板中创建 Postgres RDS 的问题的处理方法,想解了在 Cloudformation 模板中创建 Postgres RDS 的问题的问题怎么解决?在 Cloudformation 模板中创建 Postgres RDS 的问题问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我的云形成模板中有以下 YML:

MyDB:
  Type: "AWS::RDS::DBInstance"
  Properties:
    DBInstanceIdentifier: !Ref DBInstanceName
    DBName: !Ref DBName
    AllocatedStorage: "100"
    DBInstanceClass: !Ref DBInstanceType
    Engine: "postgres"
    EngineVersion: "9.6.2"
    MasterUsername: !Ref DBUsername
    MasterUserPassword: !Ref DBPassword
    PubliclyAccessible: false
    StorageType: standard
    VPCSecurityGroups:
      - !Ref PrivateAccess
    MultiAZ: true
  DeletionPolicy: "Snapshot"

失败是因为"数据库实例和 EC2 安全组在不同的 VPC 中.数据库实例在 vpc-7c99881b 中,EC2 安全组在 vpc-34ef9c4d 中"

我尝试添加一个 DBSecurityGroup

DbSecurityByEC2SecurityGroup:
  Type: "AWS::RDS::DBSecurityGroup"
  Properties:
  GroupDescription: "Ingress for Amazon EC2 security group"
  DBSecurityGroupIngress:
    - EC2SecurityGroupId: !Ref PrivateAccess

并更改了 MyDB:

      DBSecurityGroups:
    - !Ref DbSecurityByEC2SecurityGroup

但现在显示"EC2 安全组 sg-7debfb0c 在不同的 VPC vpc-34ef9c4d 中.它无法被授权到 RDS DBSecurityGroup dbsecuritybyec2securitygroup-1whvh0xi93cke 以用于 VPC vpc-7c99881b."

vpc-34ef9c4d 是我想要这个 RDS 的 vpc,我如何指定数据库应该位于哪个 VPC?

更新模板:

MyDB:
  Type: "AWS::RDS::DBInstance"
  Properties:
    DBInstanceIdentifier: !Ref DBInstanceName
    DBName: !Ref DBName
    AllocatedStorage: "100"
    DBInstanceClass: !Ref DBInstanceType
    Engine: "postgres"
    EngineVersion: "9.6.2"
    MasterUsername: !Ref DBUsername
    MasterUserPassword: !Ref DBPassword
    PubliclyAccessible: false
    DBSubnetGroupName: !Ref myDBSubnetGroup
    StorageType: standard
    VPCSecurityGroups:
      - !Ref PrivateAccess
    MultiAZ: true
  DeletionPolicy: "Snapshot"

myDBSubnetGroup:
  Type: "AWS::RDS::DBSubnetGroup"
  Properties:
    DBSubnetGroupDescription: "description"
    SubnetIds:
      - !Ref PrivateSubnet

推荐答案

Use DBSubnetGroupName (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbsubnetgroupname).这决定了 VPC.如果没有指定,则在默认的 vpc 中创建 RDS

本文地址:https://www.itbaoku.cn/post/1763846.html