Migrate an Oracle database to Amazon DynamoDB using AWS DMS - AWS Prescriptive Guidance

Migrate an Oracle database to Amazon DynamoDB using AWS DMS

Created by Rambabu Karnena (AWS)

Environment: PoC or pilot

Source: Databases: Relational

Target: Amazon DynamoDB

R Type: Re-architect

Workload: Oracle

Technologies: Migration; Databases

AWS services: Amazon DynamoDB

Summary

This pattern walks you through the steps for migrating an Oracle database to Amazon DynamoDB using AWS Database Migration Service (AWS DMS). It covers three types of source databases:

  • On-premises Oracle databases

  • Oracle databases on Amazon Elastic Compute Cloud (Amazon EC2)

  • Amazon Relational Database Service (Amazon RDS) for Oracle DB instances

In this proof of concept, this pattern focuses on migrating from an Amazon RDS for Oracle DB instance.

Prerequisites and limitations

Prerequisites

  • An active AWS account

  • An application connecting to an Amazon RDS for Oracle database

  • A table created in the source Amazon RDS for Oracle database with a primary key and sample data

Limitations

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

Product versions

Architecture

Source technology stack

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

Target technology stack

  • Amazon DynamoDB

AWS data migration architecture

Data moves from Oracle DB to AWS DMS to Amazon DynamoDB.

Tools

Epics

TaskDescriptionSkills required
Create a VPC.

In your AWS account, create a virtual private cloud (VPC) and a private subnet.

Systems administrator
Create security groups and network access control lists.

For more information, see the AWS documentation.

Systems administrator
Configure and start the Amazon RDS for Oracle DB instance.

For more information, see the AWS documentation.

DBA, Systems administrator
TaskDescriptionSkills required
Create an IAM role to access DynamoDB.

In the AWS Identity and Access Management (IAM) console, create the role, attach the policy AmazonDynamoDBFullAccess to it, and select AWS DMS as the service.

Systems administrator
Create an AWS DMS replication instance for migration.

The replication instance should be in the same Availability Zone and VPC as the source database.

Systems administrator
Create source and target endpoints in AWS DMS.

To create the source database endpoint, you have two options:

  • On the Amazon RDS console, choose Databases, DB identifier, Connectivity & Security, and choose the endpoint.

  • On the AWS DMS console, choose Select RDS DB instance.

To create the target database endpoint, choose the role Amazon Resource Name (ARN) from the previous task to access DynamoDB.

Systems administrator
Create an AWS DMS task to load the source Oracle database tables to DynamoDB.

Choose the source and destination endpoint names and the replication instance from the previous steps. The type can be full load. Choose the Oracle schema and specify % to select all tables.

Systems administrator
Validate the tables in DynamoDB.

To view the migration results, choose Tables from the left navigation pane in the DynamoDB console.

DBA
TaskDescriptionSkills required
Modify the application code.

To connect to and retrieve data from DynamoDB, update the application code.

App owner, DBA, Systems administrator
TaskDescriptionSkills required
Switch the application clients to use DynamoDB.DBA, App owner, Systems administrator
TaskDescriptionSkills required
Shut down AWS resources.

For example, the shut down the AmazonĀ  RDS for Oracle instance, DynamoDB, and the AWS DMS replication instance.

DBA, Systems administrator
Gather metrics.

Metrics include the time to migrate, the percentages of manual work and work performed by the tool, and cost savings.

DBA, App owner, Systems administrator

Related resources