3

インスタンスとデータベースを同時に vPC に起動する CLoudFormation スクリプトを構築しようとしています。問題は、データベースが 2 つの AZ を必要とするため、2 番目のサブネットを作成し、「MyDBSubnetGroup」変数で 2 つのサブネットの物理 ID を参照するだけでよいことです。作成したサブネットの論理 ID を取得できますが、それらの物理 ID を参照する方法がわかりません。誰か知っていますか?ありがとう!!

私のコードは次のとおりです。

"MyDBSubnetGroup" : {
      "Type" : "AWS::RDS::DBSubnetGroup",
      "Properties" : {
        "DBSubnetGroupDescription" : "Subnets available for the RDS DB Instance",
        "SubnetIds" : { "Fn::Join" : [ " ", [{"Ref" : "PublicSubnetAZ1"}, ", ", {"Ref" : "PublicSubnetAZ2"}, " " ]]}
      }
    },
4

2 に答える 2

4

私は同じ問題に遭遇しました。AWS サポートと協力した後、文字列のリストが最初に考えていたものではないことを理解しました。AWS::RDS::DBSecurityGroupまた、DB を VPC 内に配置する場合は、オブジェクトを使用しないでください。

これが完全なサンプルです。動作させるのに時間がかかりました:

"dbSubnetGroup" : {
        "Type" : "AWS::RDS::DBSubnetGroup",
        "Properties" : {
            "DBSubnetGroupDescription" : "Availability Zones for RDS DB",
            "SubnetIds" : [ { "Ref" : "subnetPrivate1" },
                            { "Ref" : "subnetPrivate2" } ]
        }
},
"dbInstance" : {
        "Type" : "AWS::RDS::DBInstance",
        "Properties" : {
            "DBInstanceIdentifier" : { "Fn::Join" : [ "",
                                                    [ { "Ref" : "AWS::StackName" },
                                                      "DB" ] ] },
            "DBName" : "dbname",
            "DBSubnetGroupName" : { "Ref" : "dbSubnetGroup" },
            "MultiAZ" : "true",
            "AllocatedStorage" : "8",
            "BackupRetentionPeriod" : "0",
            "DBInstanceClass" : "db.m1.medium",
            "Engine" : "postgres",
            "MasterUserPassword" : "masteruserpassword",
            "MasterUsername" : "masterusername",
            "VPCSecurityGroups" : [ { "Ref" : "sgVpc" }, { "Ref" : "sgDB" } ]
     }
},
于 2013-12-27T15:43:24.150 に答える