AWS Aurora Serverless Updates

In cfn-modules, the module.yml for rds-aurora-serverless contains the following section for EngineVersion:

  EngineVersion:
    Description: 'Aurora Serverless MySQL version.'
    Type: String
    Default: '5.6.10a'
    AllowedValues: ['5.6.10a'] # aws rds describe-db-engine-versions --engine aurora --query 'DBEngineVersions[?contains(SupportedEngineModes,`serverless`)]'

When I run the command shown in the comment, I get quite a list of possible versions:

  • 5.6.mysql_aurora.1.17.9
  • 5.6.mysql_aurora.1.19.5
  • 5.6.mysql_aurora.1.19.6
  • 5.6.mysql_aurora.1.20.0
  • 5.6.mysql_aurora.1.20.1
  • 5.6.mysql_aurora.1.21.0
  • 5.6.mysql_aurora.1.22.1
  • 5.6.mysql_aurora.1.22.2
  • 5.7.mysql_aurora.2.04.5
  • 5.7.mysql_aurora.2.04.6
  • 5.7.mysql_aurora.2.04.7
  • 5.7.mysql_aurora.2.05.0
  • 5.7.mysql_aurora.2.06.0
  • 5.7.mysql_aurora.2.07.0
  • 5.7.mysql_aurora.2.07.1
  • 5.7.mysql_aurora.2.07.1
  • 5.7.mysql_aurora.2.08.0
  • 5.7.mysql_aurora.2.08.1
  • 5.7.mysql_aurora.2.08.2
  • 5.7.mysql_aurora.2.09.0

Is there a reason why the modules only allow (the rather outdated) 5.6.10a and nothing else - or could I just change the module.yml to be like:

    AllowedValues: ['5.6.10a','5.6.mysql_aurora.1.17.9','5.6.mysql_aurora.1.19.5','5.6.mysql_aurora.1.19.6','5.6.mysql_aurora.1.20.0','5.6.mysql_aurora.1.20.1','5.6.mysql_aurora.1.21.0','5.6.mysql_aurora.1.22.1','5.6.mysql_aurora.1.22.2','5.7.mysql_aurora.2.04.5','5.7.mysql_aurora.2.04.6','5.7.mysql_aurora.2.04.7','5.7.mysql_aurora.2.05.0','5.7.mysql_aurora.2.06.0','5.7.mysql_aurora.2.07.0','5.7.mysql_aurora.2.07.1','5.7.mysql_aurora.2.07.1','5.7.mysql_aurora.2.08.0','5.7.mysql_aurora.2.08.1','5.7.mysql_aurora.2.08.2','5.7.mysql_aurora.2.09.0']

Seems I need a mapping as well:

Mappings:
  EngineVersionMap:
    '5.6.10a':
      ClusterParameterGroupFamily: 'aurora5.6'
    '5.7.mysql_aurora.2.09.0':
      ClusterParameterGroupFamily: 'aurora5.7'

but alas:

Template format error: Mappings element name '5.7.mysql_aurora.2.09.0' must be non-empty and can contain only alphanumerics, '-' or '.'

It seems like the new format of the versions - with the “mysql_aurora” inside, doesn’t work with those templates… :anguished:

Hacked in the GroupFamily here:

  DBClusterParameterGroup:
    Type: 'AWS::RDS::DBClusterParameterGroup'
    Properties:
      Description: !Ref 'AWS::StackName'
      Family: !FindInMap [EngineVersionMap, !Ref EngineVersion, ClusterParameterGroupFamily]

===>

  DBClusterParameterGroup:
    Type: 'AWS::RDS::DBClusterParameterGroup'
    Properties:
      Description: !Ref 'AWS::StackName'
      Family: 'aurora5.7'

Yeah, it’s hardcoded now, and no longer dynamic… but modifying the source code of installed npm packages isn’t exactly good practice to begin with. :unamused:

The only clean solution seems to be, to stop using that cfn-module alltogether? Or is there another way?

Okay, so it’s not possible to update at all?

You currently can't modify EngineVersion with Aurora Serverless. (Service: AmazonRDS; Status Code: 400; Error Code: InvalidParameterCombination; Request ID: de4440b2-526f-4441-9383-104fbe700bc4; Proxy: null)

:sob:

Hi hooby,

Oh, I was just reading through your struggle with updating Aurora Serverless to the lastest engine version. Will reproduce your issue and come back to you afterwards.

Thanks,
Andreas

It would appear that for changing the EngineVersion a “MaintainanceWindow” is required but that seems to have the same kind of problem as well:

I’m still pre-production, so my plan B would be, to delete my stack, update the version (to whatever the newest LTS release is), and deploy a new stack with that version - just blindly hoping that by the time I have to update the next time, there is a viable upgrade path.

Otherwise I’ll then have to try upgrading by importing a snapshot from the old version…

Found another one complaining about the issue: https://forums.aws.amazon.com/thread.jspa?threadID=307382.

Had not heard about that before. Have asked AWS for clarification. Will keep you posted.

Of course, re-creating the whole stack would be an option. Not sure, if restoring from an RDS snapshot would help. You might need to do a mysqldump instead.

1 Like

It’s not a good option though. Way too backwards and clumsy.

Definitely not something I ever wanna do for a dozen or more web-services (each with their own DB)…

I’m trying to automate this stuff through cloud-formation templates for a reason!

:woozy_face:

Any news?

Do you guys have some contact at Amazon, or are you just filing a ticket and waiting for response? (Amazon is known to be notoriously slow to respond, aren’t they?)

Hi @hooby
We received a response from the RDS team. It is not possible to upgrade Aurora Serverless on-the-fly. You have to make a snapshot and create a new cluster with the new version from that snapshot.

I will add the capability to specify the new engine version in the module: https://github.com/cfn-modules/rds-aurora-serverless/pull/19

:unamused:

That’s a bit disappointing.

I agree… we can only open support requests to make this a priority for the RDS team.

@cfn-modules/rds-aurora-serverless version 1.6.0 is published and supports MySQL 5.7

1 Like

yay! :star_struck:

Gonna check that out right away.

1 Like

Sent you a pull request :sunglasses:

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.