CloudFormation を使用して RDS クラスターのエンジンバージョンをアップグレードしようとすると、 「次のパラメータは、指定されたグループに対して定義されていません」と表示されるエラーを解決するにはどうすればよいですか?

所要時間1分
0

AWS CloudFormation を使用して Amazon Relational Database Service (Amazon RDS) クラスターのエンジンバージョンをアップグレードしようとすると、次のエラーが表示されます。 「次のパラメータは、指定されたグループに対して定義されていません。」

簡単な説明

カスタムパラメータグループを使用する Amazon RDS DB クラスターまたはインスタンスをアップグレードする場合、以下を更新する際にエラーが表示されます。

  • AWS::RDS::DBCluster または AWS::RDS::DBInstanceEngineVersion プロパティ または
  • DBClusterParameterGroup または DBParameterGroupFamily プロパティ

例えば、次のテンプレートでは、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'

注: このエラーメッセージの原因となるシナリオは他にもあります。次の「解決策」セクションの手順は、前述のシナリオにのみ適用されます。

解決策

エラー **「次のパラメータは、指定されたグループに対して定義されていません。」**は、次の 2 通りの手順で解決できます。

注: DB インスタンスにパラメータグループを適用すると、インスタンスが再起動する可能性があります。再起動中は、データベースが停止します。

  1. 新しい ParameterGroup リソースを新しい Family 値でスタックテンプレートに追加し、古い ParameterGroup リソースをテンプレートに保持します。
  2. AWS::RDS::DBCluster または AWS::RDS::DBInstance で新しい ParameterGroup ロソースを参照し、EngineVersion プロパティを新しいバージョンに更新します。
    **注:**メジャーバージョンアップグレードを実行している場合は、AllowMajorVersionUpgrade プロパティを true に設定する必要があります。
  3. 更新したテンプレートでスタックを更新します。
  4. スタックが更新されたら、スタックテンプレートから以前の ParameterGroup リソースを削除します。

または

  1. ParameterGroup リソースの LogicalResourceID を変更します。
  2. AWS::RDS::DBCluster または AWS::RDS::DBInstance で新しい LogicalResourceID を参照します。
AWS公式
AWS公式更新しました 2年前
コメントはありません