AWS CloudFormation에서 Amazon Relational Database Service(Amazon RDS) 리소스를 생성하거나 업데이트할 때 발생하는 오류를 해결하고 싶습니다.
간략한 설명
Amazon RDS 리소스의 CloudFormation 스택을 생성하거나 업데이트할 때 오류가 발생할 수 있습니다. 이러한 리소스에는 DB 인스턴스, DB 클러스터 또는 DB 파라미터 그룹이 포함될 수 있습니다. 다음 중 하나라도 해당되면 오류가 발생합니다.
- Amazon RDS 리소스가 업데이트를 지원하지 않습니다.
- Amazon RDS 리소스에 유효하지 않은 속성을 지정했습니다.
해결 방법
Amazon RDS DB 리소스 업데이트 중에 발생할 수 있는 일반적인 오류는 다음과 같습니다.
Error: "Cannot upgrade aurora-postgresql (or any RDS version) from 13.XX to 14.YY (Service: Rds, Status Code: 400)"
이 오류는 RDS DB 엔진으로 마이너 또는 메이저 버전을 업그레이드할 때 발생할 수 있습니다.
RDS는 엔진 버전 업그레이드 전에 사전 점검을 수행하여 실행 가능성을 확인합니다. 사전 점검 중에 장애가 발생하면 오류가 발생합니다.
다음 링크를 사용하여 해당 Amazon RDS 유형에 맞는 AWS 지원 버전 업그레이드를 사용하고 있는지 확인하십시오.
Amazon Aurora PostgreSQL 호환 버전: 메이저 버전 업그레이드 수행 방법
Amazon Aurora MySQL 호환 버전: Amazon Aurora MySQL용 데이터베이스 엔진 업데이트
Amazon RDS for Oracle: Oracle DB 엔진용 RDS 업그레이드
Amazon RDS for MySQL: MySQL DB 엔진 업그레이드
Amazon RDS for PostgreSQL: Amazon RDS용 PostgreSQL DB 엔진 업그레이드
Amazon RDS for MariaDB: MariaDB DB 엔진 업그레이드
Error: "The current DB instance parameter group is custom. You must explicitly specify a new DB instance parameter group, either default or custom, for the engine version upgrade."
AWS CloudFormation을 사용하여 RDS DB 데이터베이스 인스턴스의 메이저 버전 업그레이드를 수행할 때 이 오류가 나타날 수 있습니다. 리소스 핸들러는 다음 조건 중 하나에 해당하는 경우 이 오류 메시지를 반환합니다.
아래 단계를 모두 수행하여 오류를 해결하십시오.
- 현재 엔진 버전의 지원되는 기본 DB 파라미터 그룹을 사용하도록 스택 템플릿에서 DB 인스턴스 리소스 정의를 업데이트합니다. 수정된 템플릿으로 스택을 업데이트합니다.
- 업그레이드된 엔진 버전과 해당 버전의 지원되는 기본 DB 파라미터 그룹을 사용하도록 DB 인스턴스 리소스 정의를 업데이트합니다.
- 필요한 사용자 지정 DB 파라미터 그룹을 업그레이드된 엔진 버전과 함께 사용하도록 DB 인스턴스 리소스 정의를 업데이트합니다.
수동 업그레이드 중 CloudFormation의 드리프트로 인해 발생한 오류
RDS DB 인스턴스 또는 클러스터 버전을 수동으로 업그레이드할 때(즉, 대역 외 업그레이드를 수행할 때) 이 오류가 발생할 수 있습니다. CloudFormation에서 생성된 리소스를 수동으로 수정하는 경우 CloudFormation은 리소스에 적용된 변경 사항을 추적하지 않습니다. 이로 인해 스택에 드리프트가 발생합니다.
다음 단계에 따라 실제 리소스가 CloudFormation 스택과 동기화되어 있는지 확인합니다.
- 드리프트된 스택과 관련된 스택 템플릿을 수정합니다. RDS DB 인스턴스 또는 클러스터에서 Retain 값을 갖는 클러스터 리소스에 DeletionPolicy 속성을 포함합니다. 그런 다음 수정된 템플릿으로 스택을 업데이트합니다. 이렇게 하면 스택에서 리소스를 삭제하는 동안 실제 리소스가 유지됩니다.
- 스택 템플릿에서 드리프트된 리소스를 제거한 다음 스택을 업데이트합니다.
- 리소스를 스택으로 다시 가져옵니다.
참고: 드리프트를 피하려면 RDS 리소스를 가져오는 데 사용하는 스택 템플릿이 RDS DB 리소스의 현재 구성을 반영하는지 확인하십시오.
- 스택에서 드리프트 감지 작업을 수행하여 드리프트가 해결되었는지 확인합니다.
Error: "Cannot change master user password while doing a major version upgrade. (Service: Rds, Status Code)"
이 오류는 RDS DB 암호가 변경되었음을 나타냅니다.
참고: 메이저 버전 업그레이드와 함께 암호 교체를 수행할 수 없습니다.
다음 단계에 따라 문제를 해결합니다.
- 기존 템플릿으로 스택 업데이트를 수행합니다. 이 업데이트는 현재 엔진 버전과 함께 교체된 암호를 사용합니다. 스택 업데이트가 완료되면 데이터베이스 자격 증명이 새 암호로 재설정됩니다.
- 스택 업데이트를 수행하여 대상 메이저 엔진 버전으로 업그레이드합니다.
관련 정보
describe-engine-default-parameters