2017-04-12 50 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定義