2017-04-12 48 views
2

我想设置我的cloudformation我的数据库:cloudformation安全组不匹配失败

"VPC" : { 
    "Type" : "AWS::EC2::VPC", 
    "Properties" : { 
    "CidrBlock" : "10.0.0.0/16", 
    "EnableDnsSupport" : "false", 
    "EnableDnsHostnames" : "false", 
    "InstanceTenancy" : "default", 
    "Tags" : [ { "Key" : "Name", "Value" : "DomainName" } ] 
    } 
}, 

"Subnet" : { 
    "Type" : "AWS::EC2::Subnet", 
    "Properties" : { 
    "VpcId" : { "Ref" : "VPC" }, 
    "CidrBlock" : "10.0.0.0/16", 
    "AvailabilityZone" : { "Fn::Select": [ "0", { "Fn::GetAZs" : { "Ref" : "AWS::Region" } }]}, 
    "Tags" : [ { "Key" : "Name", "Value" : "DomainName" } ] 
    } 
}, 

"SecurityGroup" : { 
    "Type" : "AWS::EC2::SecurityGroup", 
    "Properties" : { 
    "GroupDescription" : "Allow http to client host", 
    "VpcId" : {"Ref" : "VPC"}, 
    "SecurityGroupIngress" : [{ 
     "IpProtocol" : "tcp", 
     "FromPort" : "3306", 
     "ToPort" : "3306", 
     "CidrIp" : "10.0.0.0/16" 
    }], 
    "Tags" : [ { "Key" : "Name", "Value" : "DomainName" } ] 
    } 
}, 

"Database" : { 
    "Type" : "AWS::RDS::DBInstance", 
    "Properties" : { 
    "DBName" : { "Fn::Join": ["", { "Fn::Split": [".", { "Ref" : "DomainName" }]}]}, 
    "AllocatedStorage" : "5", 
    "DBInstanceClass" : "db.t2.micro", 
    "Engine" : "MySQL", 
    "EngineVersion" : "5.5", 
    "MasterUsername" : { "Ref": "DBUsername" }, 
    "MasterUserPassword" : { "Ref": "DBPassword" }, 
    "VPCSecurityGroups" : [ { "Fn::GetAtt": [ "SecurityGroup", "GroupId" ] } ], 
    "Tags" : [ { "Key" : "Name", "Value" : "DomainName" } ] 
    }, 
    "DeletionPolicy" : "Snapshot" 
}, 

应该为数据库建立一个VPC。但是,当我运行cloudformation模板,我得到了以下错误:

UPDATE_FAILED AWS::RDS::DBInstance Database Database is in vpc-3081245b, but Ec2 Security Group sg-b122ffca is in vpc-f7173290

我如何得到我的VPC数据库是否正常?

回答

2

作为数据库定义的一部分,您可以指定DBSubnetGroupName

A DB Subnet Group提供了允许数据库运行的子网列表。数据库子网组中的每个子网都属于VPC。

因此,你需要做以下到您的Amazon CloudFormation模板:

  • 添加AWS::RDS::DBSubnetGroup,指定在你的模板中已经定义的Subnet
  • 添加DBSubnetGroupName参数,以此来AWS::RDS::DBInstance定义