
{"id":6966,"date":"2022-08-07T03:54:06","date_gmt":"2022-08-07T03:54:06","guid":{"rendered":"https:\/\/rax-stg-wp-aws.com\/blogs\/aws-migration-using-dms-series-part-1\/"},"modified":"2026-11-03T19:27:20","modified_gmt":"2026-11-03T19:27:20","slug":"aws-migration-using-dms-series-part-1","status":"publish","type":"blogs","link":"https:\/\/www.rackspace.com\/en-gb\/blogs\/aws-migration-using-dms-series-part-1\/","title":{"rendered":"AWS Migration Using DMS Series Part-1"},"content":{"rendered":"<p>In this fast-moving tech world, everyone wants to use the best technology with maximum performance and minimum cost. AWS Cloud was introduced with the same notion.&nbsp;<br \/>\nIn 2016, AWS introduced its tool DMS (Database Migration Service) to help customers migrate their Databases to AWS.&nbsp;<\/p>\n<p>Through this blog, we would try to understand AWS provided different methods to migrate data from On-Prem\/Non AWS Cloud to AWS(Amazon Web Service). Our Primary focus is DMS, which is almost free. For more details on pricing, <a href=\"https:\/\/aws.amazon.com\/free\/migration\/\">click here<\/a>.&nbsp;<\/p>\n<p><strong>Amazon provides two native migration options:<\/strong><\/p>\n<ol>\n<li>Schema Conversion Tool (SCT)\n<ul>\n<li>This is basically a tool which one can use if want to convert database schemas from one engine to another. If you want to know more about SCT, refer <a href=\"https:\/\/docs.aws.amazon.com\/SchemaConversionTool\/latest\/userguide\/CHAP_Welcome.html\">here<\/a>.<\/li>\n<\/ul>\n<\/li>\n<li>Database Migration Service (DMS)\n<ul>\n<li>DMS is a database migration service provided by AWS to help customers move their databases to AWS cloud. NOTE: Before migration, AWS DMS checks for below on the target: tables and primary keys associated.&nbsp;If the above do not exist, then AWS DMS creates them, and then actual data transfer is initiated.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><strong>Alternatives<\/strong><\/p>\n<ol>\n<li>We can pre-create the target tables ourself.<\/li>\n<li>We can use AWS Schema Conversion Tool (AWS SCT) to create below objects:<\/li>\n<\/ol>\n<ul>\n<li>Target Tables<\/li>\n<li>Views<\/li>\n<li>Indexes<\/li>\n<li>Triggers and many other objects<\/li>\n<\/ul>\n<p><strong>What does DMS not do?<\/strong><\/p>\n<p>It does not create schemas on Target table. Schema should already exist if data has to be moved in a specific schema.<br \/>\nIt does not do conversions of neither Schema nor code . If that is needed, we need to use tools like: SQLDev, MySQL Workbench, SCT.<\/p>\n<p><strong>Database Migration Service<\/strong><\/p>\n<p>DMS is generally an EC2 server in the cloud VPC(Virtual Private Cloud) which runs software called Replication. It can be used for migration of below databases:<\/p>\n<ul>\n<li>Oracle DBs version 10.x to 19c&nbsp;<\/li>\n<li>Data warehouse&nbsp;<\/li>\n<li>NoSQL like PostGre, MongoDB<\/li>\n<li>MySQL dbs like MariaDB<\/li>\n<li>Azure SQL DB<\/li>\n<li>GCP(Google Cloud Platform) MySql<\/li>\n<li>And many more<\/li>\n<\/ul>\n<p>For an extensive list, <a href=\"https:\/\/docs.aws.amazon.com\/dms\/latest\/userguide\/CHAP_Introduction.Sources.html\">click here<\/a>.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/25940-body-Picture1_0.png\" alt=\"AWS DMS -1\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>1. A Replication Instance<\/p>\n<p>Below are the Pre-requisite resources for creating EC2<\/p>\n<ul>\n<li>VPC&nbsp;<\/li>\n<li>Security group( with outbound rule set to let all traffic on all ports leave (egress) the VPC )<\/li>\n<li>Below different Network configuration can be used but need to be chosen prior which one you want to go with, <a href=\"https:\/\/docs.aws.amazon.com\/dms\/latest\/userguide\/CHAP_ReplicationInstance.VPC.html\">click here<\/a>.&nbsp;<\/li>\n<\/ul>\n<p>a: Network configuration to a VPC using AWS VPN or Direct Connect&nbsp;<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/25940-body-Picture2_1.png\" alt=\"AWS-DMS Pic 2\" \/><\/p>\n<p>b: Network configuration to a VPC using internet&nbsp;&nbsp;<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/25940-body-Picture3_0.png\" alt=\"AWS-DMS-Picture-3\" \/><\/p>\n<p>c.&nbsp;&nbsp; &nbsp;Network configuration using Classic Connect where RDS DB is not in VPC and Source is not in VPC&nbsp;&nbsp;<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/25940-body-Picture4_0.png\" alt=\"Network Connect AWS-DMS Picture 4\" \/><\/p>\n<p>2. Configure endpoints for <a href=\"https:\/\/docs.aws.amazon.com\/dms\/latest\/userguide\/CHAP_Introduction.Sources.html\">Source<\/a> (from where to copy) and <a href=\"https:\/\/docs.aws.amazon.com\/dms\/latest\/userguide\/CHAP_Introduction.Targets.html\">Target <\/a>(to which to copy).<\/p>\n<p>Below is the generic information required:<\/p>\n<ul>\n<li>Endpoint type \u2013One has to choose Source if configuring Source else target.<\/li>\n<li>Engine type \u2013 DB engine type, this will be the DB information as per Source or target<\/li>\n<li>Server name \u2013 IP address that AWS DMS can reach. This will be as per source\/target whichever is getting configured.<\/li>\n<li>Port \u2013 &nbsp;DB Port for making DB connections.<\/li>\n<li>Encryption \u2013 if you choose then SSL is used to encrypt the connection.<\/li>\n<li>Credentials \u2013 DB User\/password for the account with required accesses.<\/li>\n<\/ul>\n<p>3. Replication task &#8212; To transfer data from Source to Target. This is the actual task that will perform replication. Details below.<\/p>\n<ul>\n<li>Replication instance \u2013 an EC2 instance in which replication related caching calculations happen<\/li>\n<li>Endpoints both Source and Target<\/li>\n<li>Migration Type&#8212; We have below types to choose from:<\/li>\n<li>Full Load&#8212;This is generally used for first time<\/li>\n<li>CDC only ie Changes only\u2014This is used to catch up data once first full load is complete.<\/li>\n<li>Full load+CDC<\/li>\n<\/ul>\n<p><em><strong>Various Phases of Replication task:<\/strong><\/em><\/p>\n<p><em>a.&nbsp;&nbsp; &nbsp;Full load :<br \/>\nAWS DMS checks for existence of tables, unique indexes, primary keys on target, if they don\u2019t exist it creates them before starting load. Data is moved in parallel.<\/em><\/p>\n<p><strong>NOTE:&nbsp;<\/strong>DMS does not create any unnecessary objects on target which are not required for migration&nbsp;<br \/>\nfor eg non primary key constraints, secondary index, data defaults are not created.<\/p>\n<p><strong>Homogeneous migration:<\/strong>&nbsp;This is when both source and target are of the same engine type<\/p>\n<p>Here, schema can be exported and imported using Native tool of your engine also<\/p>\n<ul>\n<li><strong>Cached changes:<\/strong>&nbsp;When you are doing a full load in AWS and your source is still active then there could be data change at source end. These changes are not applied by DMS till full load is complete.&nbsp;<em>Once full load is complete cache changes are applied.<\/em><\/li>\n<li><strong>Ongoing replication:&nbsp;<\/strong>If we want to migrate to different database engine then SCT service need to be used in conjunction with DMS.<\/li>\n<\/ul>\n<p>Through this blog, we discussed the process of migrating databases using DMS. In part two, we will discuss how we can configure ongoing replication from RDS to Redshift. <a href=\"https:\/\/www.rackspace.com\/blog\/aws-migration-using-dms-series-part-2\">Read more here<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>AWS Migration Using DMS Series Part-1<\/p>\n","protected":false},"author":2,"featured_media":6968,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","format":"standard","meta":{"content-type":"","nid":"25940","content_type":"blog","created_by":"10130","authored_on":"2023-08-29T03:54:06+00:00","field_article_industries":"","tag_category":"Technical","field_blog_author_text":"by Rackspace Technology Staff","seo_description":"Learn the process of migrating databases to AWS using the Database Migration Service (DMS) and explore the benefits involved.\r\n","field_featured_image":"","insights_image":"\/wp-content\/uploads\/2026\/blog_technical_images\/25940-insights_image-aws-technical-blog-1-insights.png","field_partners":"","rxt_platforms":"Amazon Web Services (AWS)","product":"","publisheddate":"2022-08-07T03:54:06","rxt_solutions":"Cloud","opengraph_tag":"","x_tag":"","teaser_flag":"Technical Blog","seo_titile":"AWS Migration Using DMS Series Part-1","field_topics":"","field_slug":"aws-migration-using-dms-series-part-1","footnotes":""},"categories":[178],"tags":[204],"class_list":["post-6966","blogs","type-blogs","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-technical"],"_links":{"self":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs\/6966","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs"}],"about":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/types\/blogs"}],"author":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/comments?post=6966"}],"version-history":[{"count":2,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs\/6966\/revisions"}],"predecessor-version":[{"id":8616,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs\/6966\/revisions\/8616"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/media\/6968"}],"wp:attachment":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/media?parent=6966"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/categories?post=6966"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/tags?post=6966"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}