Migrating from an RDS instance to an Aurora cluster

If your Tines installation is running a single RDS database instance, we recommend you migrate to an Aurora PostgreSQL database cluster for improved performance and reliability.

You can migrate the database using a snapshot by following this guide from AWS.

💡Note

1 - While you execute this migration, you should update your tines-app and tines-sidekiq ECS services to have a desired task count of 0 in order to prevent data loss. This will require some downtime on your Tines installation.

2 - Follow all steps in AWS's guide. When you reach step 5, follow these guidelines to configure the new cluster correctly:

  • Your new database cluster should use the same values as your existing instance for the following fields:

    • VPC

    • DB subnet group

    • VPC security group

  • We also recommend the following values for other fields:

    • DB engine version - the latest minor version for the same major version as your existing instance. This will be a PostgreSQL 11 version, unless you have already manually migrated your existing instance to PostgreSQL 14.

    • DB instance class - we recommend either a db.t4g.large, or a db.r6g.xlarge depending on your performance needs. Larger instance sizes will also work if you need further performance improvements, although they will cost more.

    • DB instance identifier - a clear name like tines-db-cluster.

    • Public access - this should be set to No for security.

    • Availability Zone - we recommend No preference for improved reliability.

    • Database port - this can be left as the default of 5432, unless you have customized it on your existing instance. This should match the DATABASE_PORT environment variable for your installation.

    • Enable Encryption - we recommend enabling this to ensure your Tines data is encrypted at rest.

    • Auto minor version upgrade - we recommend disabling this to avoid unexpected downtime on your Tines installation.

3 - Update your .env file in S3:

  • DATABASE_HOST should be set to the Endpoint URL of your new database cluster.

  • All other fields can keep the same values as before.

4 - Update your tines-app and tines-sidekiq ECS services to have their original desired task count. Once these tasks start, your Tines installation will be available again.

Was this helpful?