Why to break free from legacy databases

Background

Familiarity in technology can be a good thing. When you know a piece of technology inside out, you can use it properly to take full advantage of its benefits. You are less likely to be surprised by unexpected behavior at scale.

Despite this, there is a time to move on from existing technologies. As paradigms shift, your technology choices should shift as well. The cloud is the biggest paradigm shift in the past few decades of computing, and it has impacted all portions of the application stack. This includes your database. Legacy databases that were designed for static, on-premises installations with a smaller user base won't hold up in the dynamic environment of the cloud with a global user base.

It's time to move on from your legacy databases and embrace a cloud-native database.

Click through the tabs to see the few reasons why a cloud-native database is a better fit for today's applications.

Break Free from Legacy Databases - Why (11:53)
  • Save money on licenses and operating expenses
  • Better performance with cloud-native design
  • Faster development speed
  • Save money on licenses and operating expenses
  • Commercial relational databases require expensive annual licenses. These licenses are often fixed regardless of your use, and commercial database companies use their leverage to impose onerous terms as you become locked in to their database.

    Additionally, these license agreements can limit your flexibility to scale your database up and down. The elasticity of the cloud is one of its core strengths because you can increase your compute and storage as needed to meet your customers’ needs and internal costs.

    With cloud-native databases such as Amazon Aurora and DynamoDB, there are no annual licenses. You pay for the capacity you use. This turns capital expenditures into operational expenditures and better matches your costs with your revenue.

    With Aurora, your database storage scales automatically with usage. No more overprovisioning to handle unexpected spikes. You get a hands-off approach along with the storage your application needs as it grows.

    With DynamoDB, you pay directly for what your application uses. Rather than paying for CPU and RAM, you pay for read and write units. Stop guessing about how your projected capacity will convert into hardware resources and get back to building your application.

  • Better performance with cloud-native design
  • Legacy databases were built for a static environment. They assume you do capacity planning quarterly or annually and provision your database accordingly. If your traffic is less than expected, you overpay for unused resources. If your traffic is more than expected, your performance suffers.

    Cloud-native databases such as Aurora and DynamoDB were built for the dynamic environment of the cloud. They can scale up as needed to handle a burst of traffic.

    Aurora has a purpose-built storage engine to take full advantage of the cloud. The Aurora storage engine spans multiple Availability Zones across AWS for maximum availability and durability. Each write to your Aurora database is sent to six storage nodes in parallel. A unique, log-based design improves performance and reduces IOPS for a fast, cost-effective database.

    DynamoDB was built for enormous scale. It powers some of the largest workloads on the planet, including Lyft ridesharing, Airbnb rentals, and Capital One banking. It is based on internal learnings from Amazon engineers as they worked to scale the global retail footprint of the Amazon.com marketplace. The result is a fully managed, highly scalable, and high-performance NoSQL database that is used by fast-moving startups and enormous enterprises alike.

  • Faster development speed
  • With modern development practices, developer agility is essential. You need to be able to react to new requirements and changing market conditions to continue iterating on your product.

    One of the popular practices for increasing agility as your team grows is to use microservices. With a microservice architecture, you split your application into smaller pieces that can be deployed and scaled independently.

    Microservices often need to asynchronously share data with other services. Modern databases such as Aurora and DynamoDB make it easier to share data via change-data-capture mechanisms. Aurora allows for logical replication of data changes in your database. With DynamoDB, you can capture table changes with DynamoDB Streams. These features make it easy to implement microservices in a data-rich way.

Factors to consider when breaking free from legacy databases

When breaking free from a legacy database and moving to a cloud-native database, you should research your options carefully and consider a number of factors. The two most important factors to consider are the type of cloud-native database you want to use and the process you will use to migrate your data.

  • Choosing a cloud-native database type
  • Choosing a migration process
  • Choosing a cloud-native database type
  • The first factor you should consider when choosing a cloud-native database is the database type.

    In recent years, the dominance of the traditional relational database has been challenged by new NoSQL databases. NoSQL databases such as DynamoDB were built in response to the incredible scaling challenges brought about by the internet and the rise of global markets. Your application is no longer constrained by your geographic area, and the immense scale of modern applications calls for new architectures.

    NoSQL databases often remove basic features from relational databases, such as strict schema requirements, foreign key validation, and the SQL join operation. In high-scale applications, these features are disabled or unused because of their negative impact on performance. NoSQL databases offer a different set of features and performance characteristics, such as ways to split or shard data across an infinite number of physical computers to allow for seamless scaling.

    If you choose to move from a legacy relational database to a cloud-native NoSQL database such as DynamoDB, you need to rearchitect your data design and your application code. Data modeling principles are different between relational and NoSQL databases. For many companies, NoSQL benefits such as increased performance and infinite scaling are worth the time required to migrate.

    But you don't need to completely rearchitect your data model. Aurora is a cloud-native relational database that offers compatibility with MySQL and PostgreSQL database engines. Even if you're moving from a commercial relational database, you can often migrate your data and your database code objects, such as triggers and views, without much manual work for your team. You get all the benefits of a relational database that was purpose-built for the cloud without the work of redesigning your data model.

    Between Aurora and DynamoDB, you can find the right cloud-native database for you on AWS.

  • Choosing a migration process
  • Moving an existing database from a legacy database to a cloud-native database is a delicate process. You are receiving a number of benefits by moving to a cloud-native database, but you need to be careful to ensure the data migration is handled correctly and with minimal downtime for your users.

    AWS includes a number of options for making your database migration successful. First, AWS offers AWS Database Migration Service (AWS DMS), a self-service option for migrating from a self-managed database to a fully managed database. You can use AWS DMS to migrate between homogeneous database types, such as going from self-managed MySQL to MySQL on Amazon Relational Database Service (Amazon RDS). Or you can use AWS DMS to migrate between heterogeneous database types, such as moving from a commercial database such as Oracle to a cloud-native SQL database such as Aurora. You can even move from a relational database to a nonrelational database. AWS also provides the AWS Schema Conversion Tool to help in migrating your database schema between heterogeneous database types.

    Additionally, if you need help with your database migration, AWS has options available for you. Both the Database Freedom program and Amazon Database Migration Accelerator solution provide expert advice and migration assistance to qualified customers. Use the knowledge of database migration experts to help you migrate seamlessly.

    Finally, if you need hands-on assistance, the AWS Professional Services team is available to assist with your migration. The Professional Services team can help you plan and execute your migration to ensure a successful outcome. Additionally, there are a number of Database Freedom partners that can help with your migration.

In the rest of this course, you go through walkthroughs of migrations from legacy relational databases to cloud-native databases on AWS.