Home › Forums › AWS › AWS Certified Solutions Architect Professional › RDS read replica on-premise
-
Scenario: RDS read replica on-premise (OK, this was something new to me!)
The correct answer is written rather confusingly I think.
“Prepare an instance of MySQL running external to Amazon RDS. ” -> OK
Configure the MySQL DB instance to be the replication source. ” -> you mean the MySQL RDS instance inside of AWS cloud rite?
Use mysqldump to transfer the database from the Amazon RDS instance to the on-premises MySQL instance and ” -> OK
start the replication from the Amazon RDS Read Replica.” -> ? from or to?
And then, as you also state
‘The replication should be terminated when the data has been exported and applications
can start accessing the external instance.’this means on-prem we only have a snapshot, we don’t have a continuously updated read replica as within AWS! rite?
So the whole scenario is a bit misleading?
Actually the whole AWS docs is *extremely* confusing I think
It seems besides the RDS Master instance you also need a read replica in AWS, and then the
MySQL on-prem plus a client computer.(https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Procedural.Exporting.NonRDSRepl.html)(yes, I pressed the ‘provide feedback’ button on that page already with below text!…)
This page uses many different terms for the same thing it seems…rather confusing.
A word in brackets ‘()’ below means the word is only sometimes used in combination with
the other words inside the double quotes “”!These terms all seem to me to point to the same ‘thing’ (let’s call it ‘A’):
“DB instance” =
“(source) MySQL DB instance” =
“Amazon RDS instance” =
“source Amazon RDS MySQL DB instance” =
“replication source” =
“the system running the replication source MySQL DB instance” =
“source instance” =
“Amazon RDS (source)”These terms all seem to me to point to the same ‘other thing’ (let’s call it ‘B’):
“instance of MySQL external to Amazon RDS” =
“instance of MySQL running external to Amazon RDS as a replica” =
“MySQL instance external to Amazon RDS” =
“external instance” =
“instance running external to Amazon RDS” =
“the replica” =
“read replica” =
“(external) MySQL read replica” =
“MySQL read replica running external to Amazon RDS” =
“(external) MySQL instance” =
“(Amazon) RDS read replica” * =
“MySQL replica” * =
“the slave” * =~
(& see = “replication slave” configuration documentation!)*) actually I’m not sure if this is also the ‘other thing’ (‘B’) or yet something else (‘C’ in that case)…
And ‘yet another thing’ (let’s call it ‘D’):
“client computer” =
“client”OMG…!!
-
Hi kung,
Thanks for your feedback and sorry for the confusion on the explanation part of this question. I hope we can clarify it here.
The steps mentioned on the correct answer are taken from AWS documentation for “exporting data” from RDS to an on-premises database.
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Procedural.Exporting.NonRDSRepl.html
1. Prepare an instance of MySQL running external to Amazon RDS.
2. Configure the MySQL DB instance to be the replication source. (Configure MySQL RDS instance in AWS as the master database)
3. Use mysqldump to transfer the database from the Amazon RDS instance to the instance external to Amazon RDS.
4. Start replication to the instance running external to Amazon RDS. (Replication from MySQL RDS to on-premises MySQL instance)
You can stop here, as we have achieved the requirement of AWS MySQL RDS to have a read-replica on on-premises MySQL server securely via the IPSec VPN connection.
The additional confusion came from our explanation – “The replication should be terminated when the data has been exported and applications can start accessing the external instance.”
This pertains to Step 5 on the documentation wherein you’ll stop the replication from the RDS MySQL Instance.
5. After the export completes, stop replication.
Since the documentation was taken from “exporting” data from RDS, not replication, the explanation added unnecessary confusion that you should stop the replication.
If you want a read-replica of RDS to your on-premises network, you can configure master-slave replication from RDS (master) to on-premises MySQL instance (slave).
If you want to export a copy of your RDS to an on-premises network, then after the complete export, replication can be stopped.
I understand there is a confusion on the explanation part. We will update it to further clarify this.
Regards,
Kenneth Samonte @ Tutorials Dojo
-
Hi Kenneth,
Seems the scenario is not yet updated in your question bank rite?
As I just came across it again.In the answer there is also mention of a read replica
“start the replication from the Amazon RDS Read Replica.”
Where is the read replica involved?I understood the setup is like:
– create the IPSec VPN between AWS and on-premise
– configure an on-premise MySQL instance
– create mysqldump on AWS RDS MySQL QDB Instance
– import mysqldump into on-premise MySQL instance (as ‘initial load’)
– start replication from AWS RDS MySQL DB Instance to on-premise MySQL instance via the IPSec VPNPlease confirm my understanding is correct.
Thanks,
Robert-
Hi. I’ve also come across this on 17/May/22 and the answer and explanation are still confusing…
“You can set up replication between an Amazon RDS MySQL
(or MariaDB DB instance) that is running in AWS and a MySQL (or MariaDB
instance) to your on-premises data center. Replication to an instance of
MySQL running external to Amazon RDS is only supported during the time
it takes to export a database from a MySQL DB instance.“The answer should also be clear how many DBs there are, 2 or 3 (AWS RDS MySQL source, on-prem mySQL replica, AWS RDS MySQL Replica?)…
“Create an IPSec VPN connection
using either OpenVPN or VPN/VGW through the Virtual Private Cloud
service. Prepare an instance of MySQL running external to Amazon RDS.
Configure the MySQL DB instance to be the replication source. Use
mysqldump to transfer the database from the Amazon RDS instance to the
on-premises MySQL instance and start the replication from the Amazon RDS
Read Replica.”ta, Brad.
-
Log in to reply.