안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 RDS에서 Multi-AZ 설정 시 Requesting a specific availability zone is not valid for Multi-AZ instances 에러를 해결하는 방법에 대해서 정리해 봤습니다.
에러 발생
Requesting a specific availability zone is not valid for Multi-AZ instances
CloudFormation으로 RDS를 생성했더니 다음과 같은 에러 메시지가 표시되었습니다.
에러 해결
RDS를 생성할 때, AvailabilityZone을 선택하게 되는데, Multi-AZ를 설정할 경우 여기서 에러가 발생하게 됩니다.
AvailabilityZone parameter can't be specified if the DB instance is a Multi-AZ deployment
AWS 문서를 살펴보면, Multi-AZ를 설정할 때 AvailabilityZone 매개 변수를 지정할 수 없다고 나와있습니다.
# ------------------------------------------------------------#
# Create RDS
# ------------------------------------------------------------#
Resources:
RDSDBInstance:
Type: "AWS::RDS::DBInstance"
Properties:
DBInstanceIdentifier: !Sub ${SystemName}-${EnvName}-rds
DBName: "xxxxxxxxx"
DBInstanceClass: !Ref DBInstanceClass
Engine: postgres
MultiAZ: true
EngineVersion: 14.6
Port: 5432
AutoMinorVersionUpgrade: false
PubliclyAccessible: false
DeletionProtection: true
AvailabilityZone:
Fn::Select:
- 0
- Fn::GetAZs: ""
실제 에러가 발생했던 CloudFormation 코드를 확인해 보면, AvailabilityZone를 통해 AZ를 설정하고 있는 것을 확인할 수 있습니다.
※ AvailabilityZone의 경우 Single-AZ 구성의 경우에만 설정할 수 있습니다.
AvailabilityZone:
Fn::Select:
- 0
- Fn::GetAZs: ""
따라서 문제가 되는 AvailabilityZone 항목을 제거한다면 문제 없이 Multi-AZ가 설정된 RDS를 생성할 수 있습니다.
본 블로그 게시글을 보시고 문의 사항이 있으신 분들은 클래스메소드코리아 (info@classmethod.kr)로 연락 주시면 빠른 시일 내 담당자가 회신 드릴 수 있도록 하겠습니다 !