A database engine (also termed storage engine) is the underlying software component of a database management system (DBMS) that interacts with the database files. It provides an interface between the physical data and the database management services that are provided to the applications.
Some of the common database engines that AWS provides include:
- Amazon Aurora: Fully managed relational database engine compatible with MySQL and PostgreSQL.
- MySQL, PostgreSQL, Oracle, and SQL Server: These are managed services that automate time-consuming administrative tasks such as hardware provisioning, database setup, patching, and backups.
- DynamoDB: Fully managed NoSQL database.
- Redshift: Fully managed, petabyte-scale data warehouse service.
Heterogeneous Database Migrations
Heterogeneous database migration refers to the migration from one database engine to another, such as from Oracle to MySQL or from SQL Server to PostgreSQL. AWS provides AWS Database Migration Service (DMS) for such use cases, which supports both one-time migrations and continuous data replication between heterogeneous databases.
AWS DMS can migrate data to most widely used commercial and open-source databases, including Oracle, PostgreSQL, MySQL, MariaDB, and MongoDB. The source database remains fully operational during the migration, reducing downtime to applications that rely on the database significantly.
Homogeneous Database Migrations
Homogeneous database migration refers to migrating from one version to a newer version within the same database engine, such as from Oracle 11g to Oracle 19c or from MySQL 5.6 to MySQL 8.0. AWS provides the ability to handle such migrations using Amazon RDS (Relational Database Service), where you can upgrade database instances with just a few clicks.
Here is an example where a PostgreSQL database is being upgraded using the AWS Management Console:
- Select the PostgreSQL DB instance that you want to upgrade.
- Choose “Modify.”
- For the DB engine version, choose the new version.
- Choose “Continue,” review your changes, then choose “Modify DB Instance” to save your changes.
Keep in mind that there is downtime during the upgrade process. You also should test all your applications with the new DB engine version in a test environment before upgrading your production instances.
In conclusion, understanding the various database engines provided by AWS and their appropriate use cases, such as heterogeneous and homogeneous migrations, is vital for passing the “AWS Certified Solutions Architect – Associate (SAA-C03)” exam. By leveraging services such as RDS and DMS, you can effectively manage and migrate your databases on AWS.
Practice Test
True or False: Amazon RDS is a relational database service that provides a wide range of databases like MySQL, Oracle, and SQL Server.
- True
- False
Answer: True
Explanation: Amazon RDS provides several widely used relational database engines including MySQL, Oracle, and SQL Server, as well as others like MariaDB, PostgreSQL, and Amazon Aurora.
Which of the following AWS services would be suited for a homogeneous database migration?
- a) AWS Glue
- b) AWS Data Migration Service (DMS)
- c) AWS Redshift
- d) AWS S3
Answer: b) AWS Data Migration Service (DMS)
Explanation: AWS Data Migration Service (DMS) is specifically designed to facilitate both homogeneous and heterogeneous database migrations making it suitable for this scenario.
Multiple select: AWS Database Migration Service supports migrations to
- a) Amazon RDS instances
- b) Amazon EC2 instances
- c) Amazon Aurora
- d) Amazon DynamoDB
Answer: a) Amazon RDS instances, c) Amazon Aurora, d) Amazon DynamoDB
Explanation: AWS DMS supports migrations to most AWS database services, including Amazon RDS, Amazon Aurora, and Amazon DynamoDB. EC2 instances are not a destination for database migration.
True or False: Database migration can be achieved only when both the source and the target databases are of the same type.
- True
- False
Answer: False
Explanation: AWS DMS supports both homogenous migrations (where source and target databases are the same) and heterogeneous migrations (where source and target databases are different).
True or False: AWS Schema Conversion Tool (SCT) helps in converting your commercial database and data warehouse schemas to open-source engines or AWS-native services.
- True
- False
Answer: True
Explanation: AWS SCT is designed to convert your commercial database and data warehouse schemas to open-source engines or AWS-native services which can help in lowering cost and driving better performance.
In which of the following cases would the NoSQL database engine be appropriate?
- a) When you need a relational database with high consistency
- b) When dealing with big data and real-time web apps
- c) When you need ACID properties
- d) When you need to perform complex queries and transactions
Answer: b) When dealing with big data and real-time web apps
Explanation: NoSQL databases are known for their high scalability, flexibility and performance which makes them ideal for big data and real-time web applications.
Of the following, which AWS database engine is document-based?
- a) Amazon RDS
- b) Amazon Aurora
- c) Amazon DynamoDB
- d) Amazon DocumentDB
Answer: d) Amazon DocumentDB
Explanation: Amazon DocumentDB is a document database service that supports MongoDB workloads.
True or False: AWS Data Migration Service supports only live database migration.
- True
- False
Answer: False
Explanation: AWS DMS supports both live and offline database migrations, allowing flexibility depending on requirements and network capacity.
Multiple select: Amazon RDS supports which of the following types of database engines?
- a) MySQL
- b) PostgreSQL
- c) DynamoDB
- d) Oracle
Answer: a) MySQL, b) PostgreSQL, d) Oracle
Explanation: DynamoDB is a NoSQL database service provided by AWS and not a database engine supported by Amazon RDS.
True or False: AWS Schema Conversion Tool can handle data transformation during heterogenous database migrations.
- True
- False
Answer: True
Explanation: Apart from schema conversion, AWS SCT can also handle a large part of the data transformation during the migration of a heterogenous database.
Interview Questions
What is a heterogeneous database migration on AWS?
A heterogeneous database migration involves moving data from one type of database engine to another, for example, moving from Oracle to Amazon Aurora. AWS Database Migration Service (DMS) supports heterogeneous migration.
What is a homogeneous database migration on AWS?
A homogeneous database migration is where you move data from one database engine to another of the same type. For instance, moving from MySQL to Amazon RDS for MySQL. AWS DMS also supports homogeneous migration.
What is the AWS service specifically designed for database migration?
AWS Database Migration Service (DMS) is specifically designed to simplify both homogeneous and heterogeneous migrations.
Can AWS DMS support both one-time and continuous data replication?
Yes, AWS DMS supports both one-time and continuous data replications.
Why would you use AWS Schema Conversion Tool during a heterogeneous database migration?
AWS Schema Conversion Tool makes heterogeneous database migrations predictable by automatically converting the source database schema and a majority of the database code objects to a format compatible with the target database.
What is the use case of Amazon Aurora?
Amazon Aurora is a MySQL and PostgreSQL compatible relational database built for the cloud, that combines the performance and availability of high-end commercial databases with the simplicity and cost-effectiveness of open source databases. It is suitable for applications that require complex queries and database-intense workloads.
Can the AWS DMS be used for migrating databases to MongoDB on AWS?
No, AWS DMS doesn’t support migrations to MongoDB. However, it does support migrations from MongoDB to other AWS database services.
Which database engine should you choose for highly structured data that has relations between the data entities?
For highly structured data with relationships between data entities, relational databases like Amazon RDS or Amazon Aurora would be appropriate.
What type of migration can take place with no downtime using AWS DMS?
AWS DMS supports live migrations where the source database remains fully operational during the migration, minimizing downtime to applications that rely on the database.
What database engine would be suitable for applications that require millisecond latency and can scale to support millions of requests per second?
Amazon DynamoDB, a key-value and document database, would be suitable for applications that require millisecond latency and need to scale to support millions of requests per second.
Can AWS DMS convert the source database schema to the target database schema automatically during a homogeneous migration?
During homogeneous migrations, the schema would usually remain consistent. So, AWS DMS does not convert schemas during homogeneous migrations.
Why would you use Amazon Redshift for data warehousing?
Amazon Redshift is a fast, fully managed, petabyte-scale data warehouse service that makes it simple and cost-effective to analyze all your data using your existing business intelligence tools. It’s designed for analyzing large datasets by using your favourite SQL clients.
Can applications using SQL syntax directly be moved to DynamoDB?
No, as SQL is a language for managing and manipulating relational databases and DynamoDB is a NoSQL database service, applications using SQL would not directly map to DynamoDB usage. However, AWS provides tools like AWS DMS and Schema Conversion Tools for migration and translation moderations.
In terms of resolution time when a failure occurs, which database engine provides faster failure resolution time among Amazon RDS and Amazon DynamoDB?
Amazon DynamoDB provides faster resolution time in the case of a failure due to its built-in fault tolerance and multi-availability zone replication.
Are AWS DMS migrations from Oracle to Amazon Aurora open-source free?
No, while Amazon Aurora itself is open-source, AWS DMS migrations could incur costs, particularly for data transferred out of AWS. Therefore, it is essential to understand the pricing details before initiating the migration.