{"id":4250,"date":"2016-01-12T07:47:09","date_gmt":"2016-01-12T07:47:09","guid":{"rendered":"http:\/\/blog.cloudthat.com\/?p=4250"},"modified":"2024-06-25T11:12:59","modified_gmt":"2024-06-25T11:12:59","slug":"database-migration-service","status":"publish","type":"blog","link":"https:\/\/www.cloudthat.com\/resources\/blog\/database-migration-service","title":{"rendered":"Database Migration Service"},"content":{"rendered":"<p><a href=\"https:\/\/www.cloudthat.com\/consulting\/competency\/aws-migration\/\">AWS Database Migration service<\/a> allows AWS customers to easily migrate Production databases to AWS with minimal downtime. It is currently available for preview in US East (N. Virginia) region.Setting up Database Migration toll is easy and quick it takes about 10-15 minutes to setup.During migration of databases, sources database remains operationally active. DMS supports homogeneous migrations and also heterogeneous migrations of databases like Oracle to Amazon Aurora and MySQL to PostgreSQL.\u00a0AWS database migration service can migrate data using commercial and open-sources databases.<\/p>\n<p><strong>Why AWS Database Migration Service instead of \u00a0own self-managed replication solution. <\/strong><\/p>\n<p><strong>\u00a0<\/strong>AWS Database Migration Service is easy and faster to setup and use. Replication tasks can be set-up \u00a0 in minutes instead of hours or days, Instead of the self-managed replication solutions that have to be installed and configured. AWS Database Migration Service monitors replication tasks, network or host failures, and automatically provisions a host replacement in case of failures that can\u2019t be repaired.<\/p>\n<p><strong style=\"font-weight: bold;\">DMS Schema conversion tool for Dissimilar Engines:<\/strong><\/p>\n<p>Usually Heterogeneous migrations are very complex and time consuming to overcome the problems caused during Heterogeneous migrations. AWS has come up with database migration Schema Conversion Tool which makes heterogeneous migrations more simpler and easier by automatically converting entire database schema and majority of custom code of the source database to a format compatible with target database.it converts sources database schema and code.The changes to the source database that occur during the migration process are automatically replicated to the target \u00a0 \u00a0Below Architecture Diagram gives an idea of how Schema conversion Tool works for Dissimilar engines<\/p>\n<p><strong style=\"font-weight: bold;\">\u00a0DMS\u00a0Migration with Dissimilar\u00a0engines Using Schema conversion Tool.<\/strong><\/p>\n<p><a href=\"https:\/\/content.cloudthat.com\/resources\/wp-content\/uploads\/2022\/11\/dms123.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4304\" src=\"https:\/\/content.cloudthat.com\/resources\/wp-content\/uploads\/2022\/11\/dms123.png\" alt=\"dms123\" width=\"378\" height=\"187\" \/><\/a><\/p>\n<p><strong>\u00a0<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Database Migration between\u00a0Dissimilar\u00a0engines with different\u00a0Availability\u00a0Zones.<\/strong><\/p>\n<p>In Database Migration Service we are creating Replication Instance which is connected with Source and Target Endpoints then creating Replication Task once Replication instance is created automatically Migration will be started once it is done the task will be in <strong>Stopped<\/strong> state.Here is a detailed tutorial on how to achieve the Database Migration.<\/p>\n<p><strong>Step 1: Creating DMS Replication Instance<\/strong><\/p>\n<ul>\n<li>Click on <strong>Launch Replication Instance<\/strong> in DMS Dashboard.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/content.cloudthat.com\/resources\/wp-content\/uploads\/2022\/11\/139.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4300\" src=\"https:\/\/content.cloudthat.com\/resources\/wp-content\/uploads\/2022\/11\/139.png\" alt=\"1\" width=\"836\" height=\"408\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li>Enter Replication <strong>Instance Name<\/strong>.<\/li>\n<li>Enter<strong> Description<\/strong> of Replication Instance(Not Mandatory).<\/li>\n<li>Select the <strong>Instance class<\/strong> from the set of Available Instance classes.<\/li>\n<li>Select the <strong>VPC<\/strong> Name in which Replication instances need to be created.<\/li>\n<li>Click on<strong> Advanced.<\/strong> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<a href=\"https:\/\/content.cloudthat.com\/resources\/wp-content\/uploads\/2022\/11\/217.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-4309 size-large\" src=\"https:\/\/content.cloudthat.com\/resources\/wp-content\/uploads\/2022\/11\/217.png\" alt=\"2\" width=\"940\" height=\"577\" \/><\/a><\/li>\n<li>Select the<strong> Replication subnet group<\/strong>.<\/li>\n<li>Select the <strong>Availability Zone<\/strong>(Replication instance need to be in same AZ as that Source database Engine)<\/li>\n<li>Select the <strong>Master key<\/strong>(KMS Key) for Encryption Purpose during migration.<\/li>\n<li>Click on <strong>Create Replication Instance<\/strong>. \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<a href=\"https:\/\/content.cloudthat.com\/resources\/wp-content\/uploads\/2022\/11\/316.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-4269 size-full\" src=\"https:\/\/content.cloudthat.com\/resources\/wp-content\/uploads\/2022\/11\/316.png\" alt=\"3\" width=\"1120\" height=\"674\" \/><\/a><\/li>\n<\/ul>\n<p><strong>Step 2:\u00a0Creating DMS Endpoints \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0<\/strong><\/p>\n<ul>\n<li>Click on <strong>Endpoints&gt;&gt;Create Endpoint <\/strong><\/li>\n<\/ul>\n<p><a href=\"https:\/\/content.cloudthat.com\/resources\/wp-content\/uploads\/2022\/11\/46.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-4270 size-full\" src=\"https:\/\/content.cloudthat.com\/resources\/wp-content\/uploads\/2022\/11\/46.png\" alt=\"4\" width=\"1197\" height=\"297\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li>Enable Endpoint type as S<strong>ource<\/strong>\u00a0for Creating the Source Endpoint.<\/li>\n<li>Enter <strong>Endpoint Identifier<\/strong> for source Endpoint.<\/li>\n<li>Select the S<strong>ource engine<\/strong>.<\/li>\n<li>Enter <strong>Server address<\/strong>(Source RDS Database Endpoint)<\/li>\n<li>Enter <strong>Port<\/strong> number of source Engine.<\/li>\n<li>Enter <strong>Username<\/strong> of source RDS database.<\/li>\n<li>Enter<strong> Password<\/strong> of source RDS database.<\/li>\n<li>Enter <strong>Database Name<\/strong> of source RDS database.<\/li>\n<li>Click on <strong>Advanced<\/strong>.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/content.cloudthat.com\/resources\/wp-content\/uploads\/2022\/11\/87.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-4271 size-full\" src=\"https:\/\/content.cloudthat.com\/resources\/wp-content\/uploads\/2022\/11\/87.png\" alt=\"8\" width=\"1074\" height=\"575\" \/><\/a><\/p>\n<ul>\n<li><strong>Connection string<\/strong> is not mandatory aws provides connection string by default .<\/li>\n<li>Select <strong>Master key<\/strong>(KMS key).<\/li>\n<li>Enter<strong> VPC<\/strong> name you want Endpoint to use.<\/li>\n<li>Select <strong>Replication Instnces<\/strong>.<\/li>\n<li>Click on<strong> Run Test<\/strong> to test endpoint connection it will generate a statement connection tested successfully.<\/li>\n<li>Click on <strong>SAVE<\/strong>.<\/li>\n<li>Create <strong>Target endpoint<\/strong> as we have created for Source and Test connection Endpoint for target Using <strong>Run Test<\/strong><\/li>\n<\/ul>\n<p><a href=\"https:\/\/content.cloudthat.com\/resources\/wp-content\/uploads\/2022\/11\/99.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-4322\" src=\"https:\/\/content.cloudthat.com\/resources\/wp-content\/uploads\/2022\/11\/99-1024x608.png\" alt=\"9\" width=\"940\" height=\"558\" \/><\/a><\/p>\n<p><a href=\"https:\/\/content.cloudthat.com\/resources\/wp-content\/uploads\/2022\/11\/202.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-4274 size-full\" src=\"https:\/\/content.cloudthat.com\/resources\/wp-content\/uploads\/2022\/11\/202.png\" alt=\"20\" width=\"1059\" height=\"591\" \/><\/a><\/p>\n<p><a href=\"https:\/\/content.cloudthat.com\/resources\/wp-content\/uploads\/2022\/11\/105.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-4275 size-full\" src=\"https:\/\/content.cloudthat.com\/resources\/wp-content\/uploads\/2022\/11\/105.png\" alt=\"10\" width=\"1091\" height=\"648\" \/><\/a><\/p>\n<ul>\n<li>\u00a0Now Click on <strong>Endpoints<\/strong>\u00a0 you should be able to see the endpoints created for the \u00a0source and target in this case MySQL is source and PostgreSQL is Target Endpoint. \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0<a href=\"https:\/\/content.cloudthat.com\/resources\/wp-content\/uploads\/2022\/11\/221.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-4276 size-full\" src=\"https:\/\/content.cloudthat.com\/resources\/wp-content\/uploads\/2022\/11\/221.png\" alt=\"22\" width=\"1211\" height=\"301\" \/><\/a><\/li>\n<\/ul>\n<p><strong>Step 3: Creating DMS Replication Task \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0<\/strong><\/p>\n<ul>\n<li>Enter <strong>Task name<\/strong>.<\/li>\n<li>Select <strong>Replication Instance<\/strong> which was created in earlier steps.<\/li>\n<li>Select the <strong>source endpoint<\/strong>(MYSQL Endpoint).<\/li>\n<li>select <strong>Target endpoint<\/strong> (PostgresSQL Endpoint).<\/li>\n<li>select the <strong>Migration type<\/strong> as Migrate Existing Data.<\/li>\n<li>Enable <strong>Mapping Method<\/strong> option as default.<\/li>\n<li>Click on <strong>Create Task<\/strong>. \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<a href=\"https:\/\/content.cloudthat.com\/resources\/wp-content\/uploads\/2022\/11\/1231.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-4277 size-full\" src=\"https:\/\/content.cloudthat.com\/resources\/wp-content\/uploads\/2022\/11\/1231.png\" alt=\"23\" width=\"1100\" height=\"630\" \/><\/a><\/li>\n<li>Once the Task is created Migration will be Started initial status of task will be <strong>creating<\/strong>,once migration is started task status becomes <strong>running.<\/strong>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<a href=\"https:\/\/content.cloudthat.com\/resources\/wp-content\/uploads\/2022\/11\/251.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4311\" src=\"https:\/\/content.cloudthat.com\/resources\/wp-content\/uploads\/2022\/11\/251.png\" alt=\"25\" width=\"1168\" height=\"585\" \/><\/a><\/li>\n<li>When Migration is completed automatically Task status becomes Stopped.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/content.cloudthat.com\/resources\/wp-content\/uploads\/2022\/11\/screenshot-console-aws-amazon-com-2016-01-10-22-55-351.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4312\" src=\"https:\/\/content.cloudthat.com\/resources\/wp-content\/uploads\/2022\/11\/screenshot-console-aws-amazon-com-2016-01-10-22-55-351.png\" alt=\"screenshot-console aws amazon com 2016-01-10 22-55-35\" width=\"1179\" height=\"583\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Database migration features:<\/strong><\/p>\n<p>1) Automated and continuous data replication.<\/p>\n<p>2) Self-healing and Resilient.<\/p>\n<p>1) <strong>Automated and continuous data replication:<\/strong> once the database migration process begins the data capture capability of \u00a0DMS continuously captures \u00a0all data changes from sources database to target it minimizes downtime by enabling you to keep the source database operational during the migration AWS Database Migration Service can perform continuous replication of data from one database to another and between homogeneous or heterogeneous databases.<\/p>\n<p>2) <strong>Self-healing and Resilient: <\/strong>AWS Database Migration Service makes it easy to recover from network and host failures. It continually monitors source and target databases, network connectivity, and the infrastructure running the replication process and issues alerts when a failure occurs.<\/p>\n<p><strong>Benefits:<\/strong><\/p>\n<ul>\n<li>Minimizes Downtime During Migrations.<\/li>\n<li>Fast and Easy to Set-up.<\/li>\n<li>Low Cost.<\/li>\n<li>Supports All Widely Used Databases.<\/li>\n<li>Reliability.<\/li>\n<\/ul>\n<p><strong style=\"font-weight: bold;\">Sources and targets supported by AWS Database Migration Service <\/strong><br \/>\nAWS Database Migration Service supports both homogeneous and heterogeneous Source and targets.Supported databases \u00a0include:<\/p>\n<ul>\n<li>\u00a0Oracle.<\/li>\n<li>\u00a0PostgreSQL.<\/li>\n<li>\u00a0MySQL.<\/li>\n<\/ul>\n<p><strong>Pricing: \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<\/strong><\/p>\n<p>In\u00a0 AWS Database Migration Services. We only pay for the compute resources used during the migration process (Database migration instance that moves your data from your source database to your target database).<\/p>\n","protected":false},"author":219,"featured_media":0,"parent":0,"comment_status":"open","ping_status":"open","template":"","blog_category":[3606,3607],"user_email":"prarthitm@cloudthat.com","published_by":"1363","primary-authors":"","secondary-authors":"","acf":[],"_links":{"self":[{"href":"https:\/\/www.cloudthat.com\/resources\/wp-json\/wp\/v2\/blog\/4250"}],"collection":[{"href":"https:\/\/www.cloudthat.com\/resources\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.cloudthat.com\/resources\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.cloudthat.com\/resources\/wp-json\/wp\/v2\/users\/219"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cloudthat.com\/resources\/wp-json\/wp\/v2\/comments?post=4250"}],"version-history":[{"count":2,"href":"https:\/\/www.cloudthat.com\/resources\/wp-json\/wp\/v2\/blog\/4250\/revisions"}],"predecessor-version":[{"id":54949,"href":"https:\/\/www.cloudthat.com\/resources\/wp-json\/wp\/v2\/blog\/4250\/revisions\/54949"}],"wp:attachment":[{"href":"https:\/\/www.cloudthat.com\/resources\/wp-json\/wp\/v2\/media?parent=4250"}],"wp:term":[{"taxonomy":"blog_category","embeddable":true,"href":"https:\/\/www.cloudthat.com\/resources\/wp-json\/wp\/v2\/blog_category?post=4250"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}