AWS RDS PostgreSQL snapshot gray out migration - amazon-web-services

We are planning to migrate a RDS PostgreSQL database to aurora. First I made a snapshot, but the migration option is grayed out. Our PostgreSQL version is 11.13. From the AWS documentation it mentioned that: 'starting with the release of PostgreSQL versions 13.3, 12.8, 11.13, 10.18, and for all other later versions, Aurora version numbers aren't used.', I do not understand what does this means. Is this a version problem? Please advise what should I do. Thanks

Related

Is it possible to implement an auto scaling RDS enviroment with MariaDB in AWS?

I'm googling about having a cluster of mariadb at AWS and make it work with auto scaling feature, but I didn't find the option "Add autoscaling replica" that appears in some tutorials. Since all tutorial samples that I have seen are using Aurora with MySql, I'm wondering if it's possible do this with mariadb. I would like to simply migrate to mysql but I need the RETURNING clause and some Uuid functions of mariadb-10.5, so I'm stucked to mariadb.
AWS RDS Autoscaling is only available for Aurora. Aurora currently has PostgreSQL and MySQL compatibility.

Migrate from aws rds aurora(postgres engine) to regular rds postgres

Due to high i/o cost we want to migrate from aurora(Postgres engine) to Postgres. Is there any way to do this.
If no is rebuilding the entire dataset is the only option?
There are a couple of options you can look into for this migration:
Use AWS Database Migration Service to use Aurora PostgreSQL as source, and Postgres(RDS or any other) as target. Refer to the documentation to check on version support and configurations.
https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html#CHAP_Source.PostgreSQL.RDSPostgreSQL
Test setting up logical replication from Aurora PostgreSQL to move data changes.
https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Replication.Logical.html
If the above options are unsuccessful, you can try to re-build with a native dump and restore which could be a more time taking process.

Unable to migrate RDS Postgres to AWS Aurora

I created a snapshot of my RDS Postgres DB, and I am trying to use that snapshot to create an AWS Aurora DB using the migrate snapshot option in AWS console, however the option is disabled for me, and I can't understand why?
According to this official AWS blog, I should be able to migrate my RDS postgres DB into Aurora DB using the migrate snapshot option.
I created this snapshot from a Postgres DB running on version 12.5. I have created another snapshot from another Postgres DB running on version 9.6.20, and I face the same issue there as well.
12.5 and 9.6.20 versions of PostgresSQL are not supperted by aurora. What is supported is listed here.

Create Aurora read replica option is missing from RDS Console

I have PostgreSQL DB running on Version 10.15 for which I like to created an Aurora Read Replica as mentioned in this official document, however in the AWS console I only have the option of Create Read Replica only and not Create Aurora Read Replica. The option is completely missing.
If I choose to Create Read Replica, it then just create another PostgreSQL instance instead of Aurora PostGres, and that's is not what I want.
P.s: I have auto back-up enabled for that instance
You must be running RDS PostegreSQL, as there is no Aurora PostegreSQL 10.15.
For the RDS, you only create read replicas as indicated in the AWS Console. Aurora replicas are only for Aurora PostgreSQL (not RDS PostgreSQL).
If I understood it correct, you have an RDS PostgreSQL instance (not Aurora) and want to create an Aurora PostgreSQL Read Replica from it. With steps mention on documentation link you shared.
This is possible and I could reproduce it, but not for all version.
I tested with MySQL, not with PostgreSQL, but the mechanism is the same.
I created one RDS MySQL (not Aurora) version 5.7.33 and from this one I can create Aurora Read Replica, as you can see from picture below.
The other one I created RDS MySQL (not Aurora) version 8.0.23, this one doesn't show me the option to create Aurora Read Replica.
Update
The rules to have this option enable is:
The same major version between RDS and Aurora
Minor version equal or higher on Aurora.
With versions we have today on RDS PostgreSQL and Aurora PostgreSQL, none match the rules above.
But we have a match for MySQL, as I showed.
If you want to migrate from RDS to Aurora, even though this options is not available you have other options, like snapshot and DMS.
With regards to Aurora MySQL,
Aurora MySQL 2. x versions are compatible with MySQL 5.7 and
Aurora MySQL 1. x versions are compatible with MySQL 5.6.
When creating a new Aurora MySQL DB cluster (including restoring a snapshot), you have the option of choosing compatibility with either MySQL 5.7 or MySQL 5.6.
This implies that When creating the RDS for MySQL instance, you are limited to versions of MySQL 5.6 or 5.7 (if you intend to create Aurora MySQL read replicas)
https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.2044.html

How to upgrade AWS RDS Aurora MySQL 5.6 to 5.7

We are using AWS RDS Aurora MySQL 5.6 for our production database.
AWS launched MySQL 5.7 compatible Aurora engine on 6th Feb, 2018.
I dont see any option in "modify instance" to change engine to MySQL 5.7
I dont see any option in restore snapshot to database with MySQL 5.7 either.
We want to do this upgrade with least downtime. Pls suggest what could be done here.
According to this link, you cannot upgrade an in-place database, you will need to restore a snapshot of the existing database and change the engine version during that process. These restrictions appear to be only temporary and may be lifted at a later point to allow for in-place upgra
The comments above are true; there is still no in place upgrade for 5.6 to 5.7; the process is still pretty easy though;
1) Go to the RDS dashboard, in the left hand menu there is a menu item called 'Snapshots'; you can either click on this if you are ok using a recent snapshot; otherwise select your database & on the actions drop down & choose 'Take Snapshot'
2) In snapshots simply select your snapshot & choose 'Restore Snapshot' from the actions drop down; it will automatically duplicate a bunch of your previous settings. Its at this juncture you can select the new database engine of 5.7
All and all you should allow for at least a half an hour of downtime for the whole process. Probably a couple of hours to be on the safe side.
You can now perform in-place upgrade from Aurora MyQSL from 5.6 to 5.7
Only a matter of invoking modify-db-cluster or modify-global-cluster (if you are using global clusters of course).
More in the docs (including how to do this using the AWS console).
Easiest way is:
Take a manual snapshot first of Aurora MySQL 5.6 cluster.
Then, create a new Aurora MySQL 5.7 using that manual snapshot which was taken in step 1
Your credentials would be same as that of the older 5.6 cluster.
Verify if data is correct.
Need was to upgrade the AWS RDS Aurora MySQL from 5.6 to 5.7 without causing any downtime to our production. Being a SaaS solution, we could not afford any downtime.
Background
We have distributed architecture based on micro services running in AWS Fargate and AWS Lambda. For data persistency AWS RDS Aurora MySQL is used. While there are other services being used, those are not of interest in this use case.
Approach
After a good deliberation on in place upgrade by declaring a downtime and maintenance window, we realized that having zero downtime upgrade is the need. As without which we would have created a processing backlog for us.
High level approach was:
Create an AWS RDS Cluster with the required version and copy the data from the existing RDS Cluster to this new Cluster
Setup AWS DMS(Data Migration Service) between these two clusters
Once the replication is done and is ongoing then switch the application to point to the new DB. In our case, the micro-services running in AWS Fargate has to upgraded with the new end point and it took care of draining the old and using the new.
For Complete post please check out
https://bharatnainani1997.medium.com/aws-rds-major-version-upgrade-with-zero-downtime-5-6-to-5-7-b0aff1ea1f4
To manage an update for a DB instance or DB cluster
Sign in to the AWS Management Console and open the Amazon RDS console at https://console.aws.amazon.com/rds/.
In the navigation pane, choose Instances to manage updates for a DB instance, or Clusters to manage updates for an Aurora DB cluster.
Select the checkbox for the DB instance or DB cluster that has a required update.
Choose Instance actions for a DB instance, or Actions for a DB cluster, and then choose one of the following:
Upgrade now
Upgrade at next window
Note: If you choose Upgrade at next window and later want to delay the update, you can select Defer upgrade.