2015-11-15 7 views
14

私はRDSインスタンスを含むセットアップを作成するためにクラウドフォーメーションを使用しています。クラウドフォーメーションとAZの問題を伴うRDS

私は次のエラーのためにRDSインスタンスを作成するいくつかの困難が生じています:

DB Subnet Group doesn't meet availability zone coverage requirement. Please add subnets to cover at least 2 availability zones. Current coverage: 1

問題は全体のセットアップは、単一のAZにあるということです...私は何をすることが出来るのですか? RDSのために何も持たない別のAZに余分なサブネットを作成するだけですか?

AWSが自動的にそのサブネットを作成し、その混乱から私を去ることができる方法があります。私は余分なサブネットを望んでいないので、私はこのために別のAZを選択することでユーザーに負担をかけたくない。

+3

答えはYesで、他の選択肢 – Gleeb

+0

これはまた、DMS(データベース移行サービス)に適用されますがありません。あなたが述べるように、別のサブネットを作成することで問題が解決されます。 – Brian

答えて

5

はい、単一のアベイラビリティゾーン[AZ]内に完全に含まれる展開の場合でも、別のAZに余分なサブネットを作成し、それをDBサブネットグループに含める必要があります。そこに、このためだけに別のAZの選択をユーザーに負担をかけることはないためとして

For Multi-AZ deployments, defining a subnet for two or more Availability Zones in a region allows Amazon RDS to create a new standby in another Availability Zone should the need arise. You need to do this even for Single-AZ deployments, just in case you want to convert them to Multi-AZ deployments at some point.

:RDSユーザーガイドのWorking with a DB Instance in a VPCのセクションで述べたように、この要件の根拠は、高可用性のマルチAZ配備をサポートすることですこれを達成する方法です。たとえば、Fn::GetAZsFn::Selectの組み込み関数を使用して自動的にセカンダリAZを選択できます。ユーザーがプライマリAZを選択できるようにする場合は、セカンダリAZが選択したプライマリAZと等しくないように、Conditionも必要です。

は、ここで例のテンプレートの抜粋です:

Properties: 
    PrimaryAZ: 
    Type: AWS::EC2::AvailabilityZone::Name 
    Description: Primary AZ 
Conditions: 
    IsFirstPrimaryAZ: 
    Fn::Equals: 
    - !Ref PrimaryAZ 
    - Fn::Select [0, {Fn::GetAZs: ""}] 
Resources: 
    Subnet1: 
    Type: "AWS::EC2::Subnet" 
    Properties: 
     AvailabilityZone: !Ref PrimaryAZ 
     # ... 
    Subnet2: 
    Type: "AWS::EC2::Subnet" 
    Properties: 
     AvailabilityZone: 
     Fn::If: 
     - IsFirstPrimaryAZ 
     - Fn::Select [1, {Fn::GetAZs: ""}] 
     - Fn::Select [0, {Fn::GetAZs: ""}] 
     # ... 
+0

あなたの 'Fn :: If'は' FirstAZ'ではなく 'IsFirstPrimaryAZ'でなければなりませんか? – VillasV

+0

はい、訂正のためにタイプミスのように見えます! – wjordan

関連する問題