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

最終更新日: 2022 年 5 月 6 日

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

簡単な説明

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

例えば、次のテンプレートでは、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 つの方法です。「次のパラメータは、指定されたグループに対して定義されていません: xxx、xxx」。

注: 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 を参照します。

この記事は役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?