AWS Prescriptive Guidance
Patterns

Migrate from an on-premises Oracle database or Amazon RDS for Oracle to Amazon DynamoDB using AWS DMS and AWS SCT

R Type :ReArchitect

source :Databases: Relational

target :Amazon DynamoDB

tags :oracle, amazon dynamodb, aws dms, amazon rds, database, aws sct

categories :Independent Software Vendor, LifeCycle, Pattern Accreditation, Pattern Provenance, Pattern Type, Software Infrastructure

Summary

This pattern walks you through the steps for migrating a source, on-premises Oracle database or Amazon Relational Database Service (Amazon RDS) for Oracle DB instance to a target Amazon DynamoDB database using AWS Database Migration Service (AWS DMS) and AWS Schema Conversion Tool (AWS SCT). 

Assumptions and Prerequisites

Prerequisites

  • An active AWS account

L

imitations

  • Oracle database objects, such as procedures, functions, packages, and triggers, are not considered for migration because Amazon DynamoDB does not support these database objects.

Architecture

Source technology stack

  • Amazon RDS for Oracle DB instances or on-premises Oracle databases

  • Oracle Database versions 11g (11.2.0.3.v1 and later) and 12c for Enterprise, Standard, Standard One, and Standard Two editions

For a complete, up-to-date list of sources, see the AWS DMS documentation.

Target technology stack

Source and target architecture

AWS data migration architecture

Tools Used

AWS DMSAWS Database Migration Service (AWS DMS) supports several types of source and target databases. For information about the database versions and editions that are supported, see Using an Oracle Database as a Source for AWS DMS and Using an Amazon DynamoDB Database as a Target for AWS DMS in the AWS documentation.

AWS SCT- AWS Schema Conversion Tool (AWS SCT) converts your existing database schema from one database engine to another. You can convert relational OLTP schema or data warehouse schema. Your converted schema is suitable for an Amazon RDS MySQL DB instance, an Amazon Aurora DB cluster, an Amazon RDS PostgreSQL DB instance, or an Amazon Redshift cluster. The converted schema can also be used with a database on an Amazon Elastic Compute Cloud (Amazon EC2 instance) or stored as data in an Amazon Simple Storage Service (Amazon S3) bucket.

Epics

Plan the migration

Tasks

Title Description Skills Predecessor
Validate the source and target database version and engine. DBA
Determine the application migration strategy. DBA, SysAdmin, AppOwner
Identify network access security requirements for source and target databases. DBA, SysAdmin
Choose the proper instance type based on capacity, storage features, and network features. DBA, SysAdmin
Identify storage requirements, storage type, and capacity. DBA, SysAdmin
Identify hardware requirements for source and target server instances. DBA, SysAdmin

Configure the infrastructure

Tasks

Title Description Skills Predecessor
Create a virtual private cloud (VPC) and subnets in your AWS account. SysAdmin
Create security groups and network access control lists (ACLs). SysAdmin
Configure and start the Amazon RDS for Oracle DB instance. DBA, SysAdmin

Migrate data

Tasks

Title Description Skills Predecessor
In the AWS Identity and Access Management (IAM) console, create a role to access DynamoDB. To the role, attach the policy AmazonDynamoDBFullAccess, and select AWS DMS as the service. SysAdmin
Create source and target endpoints in AWS DMS. For the source database endpoint, choose the endpoint from the Amazon RDS console, Databases, DB identifier, Connectivity & Security. Alternatively, you can choose “Select RDS DB instance” from the AWS DMS console. For the target database endpoint, choose the role ARN from the previous task to access DynamoDB. AWS DMS
Create an AWS DMS replication instance for migration. The replication instance should be in the same Availability Zone and virtual private cloud (VPC) as the source database. AWS DMS
Create an AWS DMS task to load the source Oracle database tables to DynamoDB. Choose the source and destination endpoint names and replication instance from the previous steps. The type can be full load. Choose the Oracle schema and specify % to select all tables. AWS DMS
Validate the tables in DynamoDB. To view the migration results, choose Tables from the left navigation pane in the DynamoDB console. DynamoDB, DBA

Migrate the application

Tasks

Title Description Skills Predecessor
Follow the application migration strategy. DBA, SysAdmin, AppOwner
Use AWS SCT to analyze and convert the SQL code inside the application code. For more information, see https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Converting.App.html. SysAdmin, Developer

Cut over

Tasks

Title Description Skills Predecessor
Switch the application clients over to use DynamoDB. DBA, SysAdmin, AppOwner

Close the project

Tasks

Title Description Skills Predecessor
Shut down temporary AWS resources. DBA, SysAdmin
Review and validate the project documents. DBA, SysAdmin, AppOwner
Gather metrics around time to migrate, % of manual vs. tool, cost savings, etc. DBA, SysAdmin, AppOwner
Close out the project and provide feedback. DBA, SysAdmin, AppOwner

References and Help

References

Contact and help

Migration Pattern Library Support: aws-mpl@amazon.com