AWS Data Migration Service – DMS
- AWS Database Migration Service enables quick and secure data migration with minimal to zero downtime.
- AWS Database Migration Service helps migration to AWS with virtually no downtime. Source database remains fully operational during the migration, minimizing downtime to applications that rely on the database.
- AWS Database Migration Service can migrate
- relational databases, data warehouses, NoSQL databases, and other types of data stores
- data to and from most widely used commercial and open-source databases.
- AWS DMS supports homogeneous migrations such as Oracle to Oracle, as well as heterogeneous migrations (using SCT) between different database platforms, such as Oracle or Microsoft SQL Server to Aurora.
- AWS DMS enables both one time migration and continuous data replication with high availability and consolidate databases into a petabyte-scale data warehouse by streaming data to Redshift and S3.
- AWS DMS continually monitors source and target databases, network connectivity, and the replication instance.
- AWS DMS is highly resilient and self–healing. If the primary replication server fails for any reason, a backup replication server can take over with little or no interruption of service.
- AWS DMS automatically manages all of the infrastructure that supports the migration server, including hardware and software, software patching, and error reporting.
- In case of interruption, DMS automatically restarts the process and continues the migration from where it was halted.
- AWS DMS supports Multi-AZ option to provide high-availability for database migration and continuous data replication by enabling redundant replication instances.
- AWS DMS ensures that the data migration is secure. Data at rest is encrypted with AWS Key Management Service (AWS KMS) encryption. During migration, Secure Socket Layers (SSL) can be used to encrypt the in-flight data as it travels from source to target.
DMS Replication Instance
- A DMS replication instance performs the actual data migration between source and target.
- DMS replication instance is a managed EC2 instance that hosts one or more replication tasks.
- Replication instance also caches the transaction logs during the migration
- CPU and memory capacity of the replication instance influences the overall time required for the migration.
- DMS can provide high availability and failover support using a Multi-AZ deployment.
- In a Multi-AZ deployment, AWS DMS automatically provisions and maintains a standby replica of the replication instance in a different AZ
- Primary replication instance is synchronously replicated to the standby replica.
- If the primary replication instance fails or becomes unresponsive, the standby resumes any running tasks with minimal interruption.
- Because the primary is constantly replicating its state to the standby, Multi-AZ deployment does incur some performance overhead.
- AWS DMS uses an endpoint to access the source or target data store.
- AWS DMS replication task helps move a set of data from the source endpoint to the target endpoint.
- Replication task required Replication instance, source and target endpoints
- Replication task supports following migration type options
- Full load (Migrate existing data) – Migrate the data from the source to the target database as a one time migration.
- CDC only (Replicate data changes only) – Replicate only changes, while using native export tools for performing bulk data load.
- Full load + CDC (Migrate existing data and replicate ongoing changes) – Performs a full data load while capturing changes on the source. After the full load is complete, captured changes are applied to the target. Once the changes reach a steady state, the applications can be switched over to the target.
- LOB mode options
- Don’t include LOB columns – LOB columns are excluded
- Full LOB mode – Migrate complete LOBs regardless of size. AWS DMS migrates LOBs piecewise in chunks controlled by the Max LOB Size parameter. This mode is slower than using limited LOB mode.
- Limited LOB mode – Truncate LOBs to the value specified by the Max LOB Size parameter. This mode is faster than using full LOB mode.
- Data validation – If the data validation needs to be performed, once the migration has been completed.
AWS Schema Conversion Tool
- AWS Schema Conversion Tool makes heterogeneous database migrations by automatically converting the source database schema and a majority of the database code objects, including views, stored procedures, and functions, to a format compatible with the target database.
- DMS and SCT work in conjunction to both migrate databases and support ongoing replication for a variety of uses such as populating datamarts, synchronizing systems, etc.
- SCT can copy database schemas for homogeneous migrations and convert them for heterogeneous migrations.
- SCT clearly marks any objects that cannot be automatically converted so that they can be manually converted to complete the migration.
- SCT can scan the application source code for embedded SQL statements and convert them as part of a database schema conversion project.
- SCT performs cloud native code optimization by converting legacy Oracle and SQL Server functions to their equivalent AWS service thus helping modernize the applications at the same time of database migration.
- Once schema conversion is complete, SCT can help migrate data from a range of data warehouses to Redshift using built-in data migration agents.
DMS Best Practices
- DMS Performance
- In full load, multiple tables are loaded in parallel and it is recommended to drop primary key indexes, secondary indexes, referential integrity constraints, and data manipulation language (DML) triggers.
- For a full load + CDC task, it is recommended to add secondary indexes before the CDC phase. Because AWS DMS uses logical replication, secondary indexes that support DML operations should be in-place to prevent full table scans.
- Replication task can be paused before the CDC phase to build indexes, create triggers, and create referential integrity constraints
- Use multiple tasks for a single migration to improve performance
- Disable backups and Multi-AZ on the target until ready to cut over.
- Migration LOBs
- DMS migrates LOBS in a two step process
- creates a new row in the target table and populates the row with all data except the associated LOB value.
- Update the row in the target table with the LOB data.
- All LOB columns on the target table must be nullable
- Limited LOB mode
- default for all migration tasks
- migrates all LOB values up to a user-specified size limit, default 32K
- LOB values larger than the size limit must be manually migrated. typically provides the best performance.
- Ensure that the Max LOB size parameter setting is set to the largest LOB size for all the tables.
- Full LOB mode
- migrates all LOB data in the tables, regardless of size.
- provides the convenience of moving all LOB data in the tables, but the process can have a significant impact on performance.
- DMS migrates LOBS in a two step process
- Migrating Large Tables
- Break the migration into more than one task.
- Using row filtering, use a key or a partition key to create multiple tasks
- Convert schema
- Use SCT to convert the source objects, table, indexes, views, triggers, and other system objects into the target DDL format
- DMS doesn’t perform schema or code conversion
- Enable Multi-AZ for ongoing replication (for high availability and failover support)
- DMS can read/write from/to encrypted DBs
AWS Certification Exam Practice Questions
- Questions are collected from Internet and the answers are marked as per my knowledge and understanding (which might differ with yours).
- AWS services are updated everyday and both the answers and questions might be outdated soon, so research accordingly.
- AWS exam questions are not updated to keep up the pace with AWS updates, so even if the underlying feature has changed the question might not be updated
- Open to further feedback, discussion and correction.
- Which AWS service would simplify migration of a database to AWS?
- AWS Storage Gateway
- AWS Database Migration Service (AWS DMS)
- Amazon Elastic Compute Cloud (Amazon EC2)
- Amazon AppStream 2.0