Find answers, ask questions, and connect with our
community around the world.

Home Forums AWS AWS Certified Solutions Architect Professional RDS read replica on-premise

  • RDS read replica on-premise

  • kung

    Member
    May 28, 2020 at 10:09 pm

    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…!!

  • TutorialsDojo-Support

    Member
    May 31, 2020 at 11:21 am

    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

  • kung

    Member
    June 9, 2020 at 9:30 pm

    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 VPN

    Please confirm my understanding is correct.
    Thanks,
    Robert

    • brad_prosser

      Member
      May 17, 2022 at 4:13 pm

      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.

Viewing 1 - 3 of 3 replies

Log in to reply.

Original Post
0 of 0 posts June 2018
Now