2015-11-15 2 views
14

Я использую создание облаков для создания установки, содержащей экземпляр RDS.RDS с облачным формированием и выпуском AZ

У меня возникли некоторые трудности, создающие RDS Instance на счет следующей ошибки:

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

Проблема заключается в том, что вся установка находится на одном AZ ... Что я должен делать? просто создайте дополнительную подсеть в другом AZ, который не имеет ничего в нем только для RDS?

Возможно, есть какой-то способ, которым AWS может автоматически создать эту подсеть и оставить меня вне этого беспорядка. Я не хочу эту дополнительную подсеть, и я не хочу обременять своих пользователей выбором другого AZ только для этого.

+3

Ответ: да, нет другого выбора – Gleeb

+0

Это также относится к DMS (Database Migration Service). Как вы заявляете, создание другой подсети решает проблему. – Brian

ответ

5

Да, даже для развертывания, полностью содержащегося в единой зоне доступности [AZ], вы должны создать дополнительную подсеть в другом AZ и включить ее в свою группу подсети DB. Основанием для этого требования заключается в том, чтобы поддерживать высокую доступность Многосайтовые AZ, как отмечено в Working with a DB Instance in a VPC разделе Руководства пользователя RDS:

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.

А не обременять пользователей с помощью выбора другого AZ только для этого, там это способы сделать это. Например, вы можете выбрать вторичный А-Я автоматически, используя встроенные функции Fn::GetAZs и Fn::Select. Если вы разрешаете пользователю выбирать первичный AZ, вам также понадобится Condition, чтобы вторичный AZ не был равен первичному AZ.

Вот пример шаблона фрагмент:

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' быть на' IsFirstPrimaryAZ' вместо 'FirstAZ'? – VillasV

+0

Да, это выглядит как опечатка, спасибо за исправление! – wjordan

Смежные вопросы