CloudFormation을 사용하여 RDS 클러스터의 엔진 버전을 업그레이드할 때 “지정된 그룹 xxx, xxx에 대해 다음 파라미터가 정의되지 않았습니다.” 오류를 해결하려면 어떻게 해야 합니까?
최종 업데이트 날짜: 2022년 5월 6일
AWS CloudFormation을 사용하여 Amazon Relational Database Service(Amazon RDS) 클러스터의 엔진 버전을 업그레이드하려고 하면 다음 오류가 발생합니다. “xxx, xxx와 같은 파라미터는 지정된 그룹에 대해 정의되지 않았습니다.”
간략한 설명
사용자 지정 파라미터 그룹을 사용하는 Amazon RDS DB 클러스터 또는 인스턴스를 업그레이드할 때 업데이트하면 오류가 발생합니다.
- AWS::RDS::DBCluster 혹은 AWS::RDS::DBInstance에 대한 EngineVersion 속성
-또는- - DBClusterParameterGroup 또는 DBParameterGroup 의 Family 특성
예를 들어 다음 템플릿에서 DBInstance 리소스에서 EngineVersion 속성을 5.7.37에서 8.0.28로 업데이트하면 스택 업데이트가 실패합니다. DBParameterGroup 리소스에서 Family 속성을 MySQL5.7에서 MySQL8.0으로 업데이트하는 경우에도 스택 업데이트가 실패합니다.
Parameters:
DBName:
Default: MyDatabase
Description: The database name
Type: String
DBUser:
NoEcho: 'true'
Description: The database admin account username
Type: String
DBPassword:
NoEcho: 'true'
Description: The database admin account password
Type: String
Resources:
MyDB:
Type: 'AWS::RDS::DBInstance'
Properties:
DBName: !Ref DBName
AllocatedStorage: '5'
DBInstanceClass: db.t2.small
Engine: MySQL
EngineVersion: 5.7.37
MasterUsername: !Ref DBUser
MasterUserPassword: !Ref DBPassword
DBParameterGroupName: !Ref MyRDSParamGroup
AllowMajorVersionUpgrade: true
MyRDSParamGroup:
Type: 'AWS::RDS::DBParameterGroup'
Properties:
Family: MySQL5.7
Description: CloudFormation Sample Database Parameter Group
Parameters:
autocommit: '1'
general_log: '1'
old_passwords: '0'
참고: 이 오류 메시지가 발생할 수 있는 다른 시나리오도 있습니다. 다음 해결 방법 섹션의 단계는 이전 시나리오에만 적용됩니다.
해결 방법
다음 단계는 두 가지 방법으로 오류를 해결할 수 있습니다. “xxx, xxx와 같은 파라미터는 지정된 그룹에 대해 정의되지 않았습니다.”
참고: 파라미터 그룹을 DB 인스턴스에 적용하면 인스턴스 재부팅이 시작될 수 있습니다. 재부팅하는 동안 데이터베이스가 중단됩니다.
- 새 Family값을 사용하여 스택 템플릿에 새 ParameterGroup 리소스를 추가하고 템플릿에 이전 ParameterGroup 리소스를 유지합니다.
- AWS::RDS::DBCluster 혹은 AWS::RDS::DBInstance의 새ParameterGroup 리소스를 참조하고 EngineVersion 속성을 새 버전으로 업데이트합니다.
참고: 메이저 버전 업그레이드를 수행하는 경우 AllowMajorVersionUpgrade 속성을 true로 설정해야 합니다. - 업데이트된 템플릿으로 스택을 업데이트합니다.
- 스택이 업데이트된 후 스택 템플릿에서 이전 ParameterGroup 리소스를 제거합니다.
-또는-
- ParameterGroup의 LogicalResourceID를 변경합니다.
- AWS::RDS::DBCluster 혹은 AWS::RDS::DBInstance에서 새로운 LogicalResourceID 참조하세요.