More about Cloud Migration
- Azure StorSimple EOL: Using Cloud Volumes ONTAP for Hybrid Cloud Management
- Refactoring Applications to Kubernetes in Cloud Migrations
- The War Over the Cloud Has Ended (and the Winner Might Surprise You)
- Modern Data Estate: What IT Leaders Need To Know
- Strategies for AWS Migration: The New 7th R Explained
- Cloud Computing Deployment Models and Architectures
- Cloud Adoption Strategy: What’s the Best Approach for Your Organization?
- What is Cloud Migration? Strategy, Process and Tools
- Hybrid Cloud Strategy: A Winning Model for Enterprises
- Google Cloud Architecture and Building Your Own Solution Architecture
- SnapMirror in the Cloud: New Use Cases for NetApp’s Data Replication Technology
- 8 Digital Transformation Technologies and Their Business Impact
- What Is Digital Transformation in Banking?
- Digital Transformation in Healthcare: 4 Key Trends
- Digital Transformation: Examples from 5 Industries
- The Future of Cloud Computing: 5 Trends You Must Know About
- 5 Types of Digital Transformation and the Technologies that Power Them
- Digital Transformation Strategy: 6 Tips for Success
- Kubernetes Data Mobility with Cloud Volumes ONTAP
- Application Migration to Azure: 4 Approaches and One Migration Tool
- Cloud First Strategy: Challenges, Considerations, and Best Practices
- Application Migration to AWS: Free Tools to Ease Your Migration
- Why Cloud Adoption Fails and 6 Tips for Success
- Cloud Application Migration: A Practical Guide
- AWS Snowball vs Snowmobile: Data -Migration Options Compared
- AWS Snowball Edge: Data Shipping and Compute at the Edge
- AWS Snowmobile: Migrate Data to the Cloud With the World’s Biggest Hard Disk
- AWS Snowball Family: Options, Process, and Best Practices
- AWS Cloud Adoption Framework (CAF): 6 Migration Perspectives
- Top 3 Cloud Adoption Frameworks: Your Path To The Cloud
- AWS Snowball Pricing Simplified
- Azure Cloud Adoption Framework: The 9 Methodologies Explained
- Cloud Roadmap: Mapping Out Your Path To The Cloud
- Hybrid Deployment on Google Cloud: Meet Google Anthos
- 3 Ways to Create an Azure Migrate Project
- Azure Migration Step by Step: Discover, Migrate, Optimize, and Monitor
- Migrate from VMware to Azure: The Basics and a Quick Tutorial
- Migrate SQL Server to Azure: Options, Tools, and a Quick Tutorial
- Migrate Databases to Azure: 3 Quick Tutorials
- 4 Ways to Migrate SQL to Azure
- Azure Migration Program: 4 Key Elements
- Azure Migrate: Key Components and a 4-Step Migration Plan
- Cloud Journey: 6 Stages of Cloud Adoption
- 5 Azure Data Migration Tools You Should Be Using
- Azure Migration Tools: One-Click Migration for VMs and Data
- Typical Mistakes and Misconceptions Business Leaders Have About Hybrid and Multicloud
- Google Cloud PostgreSQL: Managed or Self-Managed?
- AWS Storage Gateway: Connecting Your On-Premise Storage to the Amazon Cloud
- Azure PostgreSQL: Managed or Self-Managed?
- Cloud Scalability: How Cloud Volumes ONTAP Stores Petabytes of Data
- AWS Migration: Understanding the Process and Solving 5 Key Challenges
- Google Cloud Pricing vs AWS: A Fair Comparison?
- VMware Cloud Services: A New Option for Hybrid Cloud Management
- AWS PostgreSQL: Managed or Self-Managed?
- Google Cloud MySQL: MySQL as a Service vs. Self Managed in the Cloud
- Azure MySQL: MySQL as a Service vs. Self-Managed in the Cloud
- AWS MySQL: MySQL as a Service vs. Self Managed in the Cloud
- Cloud Adoption for Financial Companies
- VMware on AWS: Architecture and Service Options
- VMware on Google Cloud: A Deployment Roadmap
- VMware on Azure: One-Step Migration to the Cloud
- Better in the Cloud: Workloads Gartner Says You Should Move to the Cloud Now
- 3 Cloud Migration Approaches and Their Pros and Cons
- Oracle on Google Cloud: Two Deployment Options
- How to Upload Files to Azure Blob Storage with AzCopy, PowerShell, and More
- Oracle on Azure: Fully Managed vs Self Managed
- Azure SQL Server: Managed Service vs Self Managed
- Google Partners with NetApp on New Bare Metal Solution in the Cloud
- AWS Database Migration Service: Copy-Paste Your Database to Amazon
- SQL Server on Google Cloud: Two Deployment Options
- GCP Migration with Cloud Volumes ONTAP
- SQL Server in AWS: Two Deployment Options
- Azure Database Migration Service: Automate Your Cloud DB Migration
- Azure Managed Service Provider: How to Save Time and Reduce Cloud Overhead
- Hybrid Cloud Storage: The Best of Both Worlds
- Hybrid Cloud Storage Solutions for AWS Compared: Storage Gateway vs Cloud Volumes ONTAP
- AWS Oracle: Two Options for Migrating Your Oracle DB to Amazon
- Migrating Physical Server to AWS: Now Free with AWS CloudEndure
- Azure Hybrid Cloud:
Azure in Your Local Data Center
- What Is a Lift and Shift Cloud Migration?
- Google Cloud Migration Tools: Copying 1GB or 500TB? Learn How
- VMC on AWS Vs. Cloud Volumes ONTAP
- AWS Cloud Migration Services: Don’t Migrate Alone
- 5 Steps to the Cloud: AWS Migration Checklist
- Setting up Storage Gateway with Amazon EC2
- VMware Cloud on AWS: How Fujitsu Saves Millions Using Cloud Volumes ONTAP
- SQL Server End of Life Challenges and How Cloud Volumes ONTAP Can Help
- The Cloud Tiering Service Architecture: How We Get Cold Data from Your Data Center to the Cloud
- Cloud Data Integration 101: Benefits, Challenges, and Tools
- Google Cloud Migration: Why and How to Make the Move
- What’s the Easiest Way to Start Using the Cloud? Three Cloud Onboarding Approaches
- AWS vs Azure vs Google Cloud: Choosing the Best Cloud Provider for You
- Cloud Migration Tools: Transferring Your Data with Ease
- Azure Migration Strategy: Four Steps to the Cloud
- 11-Step Azure Migration Checklist
- AWS Migration Strategy: The 6 Rs in Depth
- Officeworks Adopts a Cloud-First Strategy with Cloud Volumes ONTAP
- Azure Migration: The Keys to a Successful Enterprise Migration to Azure
- Cloud Volumes ONTAP: Cloud Migration Case Studies
- One Cloud Out of Many: Why Enterprises Are Turning to Multicloud and Hybrid Cloud Architectures
January 27, 2021
Topics: Cloud Volumes ONTAP Data MigrationAWSDatabaseAdvanced7 minute read
There are several options for running MySQL databases as a service on the Amazon cloud. AWS RDS lets you run a managed database instance, taking care of administrative tasks like scalability, backups and high availability. Another AWS database service is Amazon Aurora, which provides an elastic database service that is fully compatible with MySQL.
In this post, we’ll review RDS and Aurora for MySQL and explain how to create your first database in each service. We’ll also present a second option—running MySQL in an Amazon EC2 compute instance to achieve the same level of control and customization as you would have in your local data center.
In this article, you will learn:
- What is AWS RDS
- How to create a MySQL database with RDS
- What is AWS Aurora
- Creating an Aurora MySQL database cluster
- MySQL on AWS: Fully Managed or Self Managed?
- MySQL in AWS with NetApp Cloud Volumes ONTAP: The Best of Both Worlds
What Is AWS RDS?
AWS Relational Database Service (RDS) is a managed service you can use to orchestrate your databases in AWS. You can run four database options besides MySQL and Aurora on AWS RDS — Oracle, MariaDB, PostgreSQL, and Microsoft SQL Server. The service manages provisioning, failure detection, repair, backup, recovery, and patching for you.
When using RDS, you have the option of selecting from several instance types, including memory, performance, or IO-optimized. You can deploy RDS across multiple availability zones and can use the AWS Database Migration Service to migrate your existing databases.
You should be aware that RDS has size limits, which you can overcome by tiering some of the data to Amazon S3. Learn more in our article on RDS instance size.
How to Create an AWS MySQL Database with Amazon RDS
Creating a new database instance is relatively easy. Below, you can see a tutorial adapted from the AWS documentation. For this tutorial, you can use your existing account or you can test out the configuration in the Amazon free tier.
1. From the RDS console, select the Region you want to create your database in. You can find this option in the upper right corner.
2. Click Create database. You can find this option in the middle of the page.
Source: Amazon Web Services
3. Select your database engine and click Next.
- In this case, you want to choose the MySQL option.
- If you are using the free trial, make sure to also select “Only enable options eligible for RDS Free Usage Tier” in the checkbox at the bottom.
4. Configure your MySQL RDS Instance with the appropriate settings and click Next.
- Some example settings you can use are:
- License model—default general-public-license
- DB engine version—default version of MySQL
- DB instance class—db.t2.micro (1vCPU, 1 GIB RAM)
- Storage type—General Purpose (SSD)
- Allocated storage—5GB
- You also need to supply names and passwords for your instance. Make sure that your DB instance identifier is unique for your account and region. If you intend to retain this instance after creation, ensure that your username and password comply with your security protocols.
5. In the Configure advanced settings page, supply the remaining settings information.
- The settings you need to configure include:
- Network and security settings
- Virtual Private Cloud (VPC) information
- Database name
- Port and IAM configurations
- Backup options
6. Click Enable deletion, found in the Deletion protection section.
7. Click Create database.
After your instance is created, you can view it from the RDS console. From there you can also connect your database and manage the instance as needed.
What Is AWS Aurora?
AWS Aurora is a fully managed relational database optimized for use in AWS. It supports MySQL and PostgreSQL. With this service, you can combine the cost-effectiveness of open-source databases with increased availability and performance.
Aurora manages and automates patching, backups, hardware provisioning, and database setup for you. It is based on fault-tolerant, distributed, and self-healing storage resources. You can use it across three availability zones and scale it to 64TB per database instance.
Creating an Aurora MySQL Database Cluster
Below, you can find a tutorial that walks you through creating an AWS MySQL cluster in Aurora. This tutorial is adapted from the AWS documentation. In this tutorial, the Easy Create mode is used. This mode enables you to set up a database with standard options. If you want to customize your database, you can do so by turning off this mode.
There are some prerequisites you need to manage first before you can create your DB cluster. These prerequisites include a VPC and an Amazon RDS DB subnet group. For the VPC, you need to configure one or more subnets in two or more availability zones. For this, you can either use the default VPC or you can create a custom one. Whichever VPC option you choose, you can create and attach it via the RDS console.
1. Open the Amazon RDS console from the AWS Management Console.
2. Select the Region that you wish to create your database in from the upper right corner of the console.
3. From the navigation pane, select Databases and then select Create database.
- Make sure that Easy Create is selected when you perform this step.
4. In the Create database screen, configure your database options.
- You can use the sample options, provided below if you are unsure what to choose:
- Engine type—Amazon Aurora
- Edition—Amazon Aurora with MySQL 5.6 compatibility.
- DB instance size—Dev/Test.
- DB cluster identifier—leave the default name or choose a custom name
- Master username—leave the default name or choose a custom name
- Master password—use an automatically generated password or input a custom password
If you are planning to use this database in your production system, it is recommended that you change the default username. You should also ensure that your password complexity meets your security protocols.
Source: Amazon Web Services
5. Click Create database.
Once your database is created, you can view your cluster from the RDS console. In the console, you can see the status of both your instance and cluster. Once both display a status indicating resources are ready to use, you can connect your cluster to your instance. This process is not immediate, however. Be prepared that you may have to wait up to 20 minutes before your new DB cluster is ready to use.
MySQL on AWS: Fully Managed or Self Managed?
In the first part of this post we discussed the fully managed option for deploying MySQL on AWS, using Amazon RDS or Aurora. The fully managed option is aligned with the PaaS cloud service model and is mostly applicable for cloud-native applications or re-architected applications, where it is acceptable not to have full control over database server environment, configuration and tuning.
However, there’s another way. You can self-manage MySQL by running an Amazon EC2 instance and deploying a MySQL image. The self-managed IaaS model gives you full control over the MySQL database on AWS, letting you fine-tune server and DB configurations just like you could do in an on-premises deployment.
Learn more about how to migrate your database to AWS in our articles:
- AWS Cloud Migration Services: Don’t Migrate Alone
- AWS Database Migration Service: Copy-Paste Your Database to Amazon
How Does Self-Managed MySQL on AWS Work?
For many use cases, a good alternative to AWS managed database services is to combine MySQL with two other services offered by AWS—Amazon EC2 and Amazon Elastic Block Store (EBS). This means you need to install and deploy the database on an EC2 instance, and add Amazon Elastic Block Store (EBS) as a durable and pluggable storage.
If you manage MySQL yourself, you have to set it up and maintain it just as you would do in your own datacenter. However, you can use Amazon Machine Images (AMI) to make things easier:
- You can create an Amazon Machine Image (AMI) and use it as a template for new EC2 instances.
- There are AMIs already available with MySQL preinstalled, and with configuration already in place, including high availability. Note that some AMIs are free and some incur a flat or per-hour fee.
Pros and Cons of Managed Deployment—MySQL on RDS
Pros of the Managed Option
- Elastic scalability—you can effortlessly change the resources allocated to your MySQL server in AWS by tweaking a few settings, and the changes will be rolled out within minutes. RDS also supports storage autoscaling, which means it can detect when space is running out and allocate additional storage without any intervention.
- Pay on demand—RDS is priced hourly, and there is no need to make any significant upfront investment—you pay for what you use. This, combined with the ability to increase and decrease the allocated resources as needed, allows you to optimize your costs, or even quickly spin up RDS instances for occasional jobs and destroy them immediately afterwards.
- Reserved instances—if your workloads are more predictable, you can take advantage of Reserved DB Instances, trading the aforementioned flexibility for significant discounts.
Cons of the Managed Option
- Instance limitations—pay attention to the limitations of MySQL on RDS. RDS supports up to 40 database instances and up to 25 security groups per Amazon region. Database size is limited to 16 TB.
- Less control—when using a service like RDS, you cannot control many aspects of database configuration, you cannot tune the database like you would an on-premise MySQL instance, and you cannot control where exactly data is located, which makes hybrid and multi-region scenarios more difficult to achieve.
- Vendor lock-in—once your MySQL database is running in RDS, it will not be possible to seamlessly migrate that database outside AWS. Migration will require careful tuning and testing.
- Set limitations—the service level agreements (SLAs) for RDS, for example, the guarantee to monthly uptime of 99.95%, cannot be changed. If you need a higher uptime, or have different requirements with regard to availability, disaster recovery, or data protection, you will have to make do with what RDS provides.
Pros and Cons of Self-Managed Deployment—MySQL with EC2 and EBS
Pros of the Self-Managed Option
- Cost effective—self managed deployment is less expensive than RDS, because you don’t need to pay for the additional management layer, only for raw system resources.
- Flexibility—you can fully control data configuration and tuning, data location, and can set up the database in such a way that it can easily be migrated on premises or to other public clouds, for hybrid and multi cloud scenarios.
- Scalability—go beyond the RDS limit of 16 TB and the limit of 40 database instances per region, by adding as many compute and storage resources as needed in EC2.
- Data protection—in a self-managed database, you can perform backups on a schedule of your choice, and align to your organization’s data protection and disaster recovery requirements.
- Features—you can upgrade and patch the database whenever required to get access to specific features or capabilities.
Cons of the Self-Managed Option
The downsides of self-managing MySQL on AWS are the increased complexity of managing EC2 and EBS instances, and the difficulty of managing auto scaling on your own.
MySQL in AWS with NetApp Cloud Volumes ONTAP: The Best of Both Worlds
NetApp Cloud Volumes ONTAP, the leading enterprise-grade storage management solution, delivers secure, proven storage management services on AWS, Azure and Google Cloud. Cloud Volumes ONTAP supports up to a capacity of 368TB, and supports various use cases such as file services, databases, DevOps, or any other enterprise workload, with a strong set of features including high availability, data protection, storage efficiencies, Kubernetes integration, and more.
NetApp Cloud Volumes ONTAP helps you get all the benefits of the self-managed deployment option—without the complexity.
Cloud Volumes ONTAP extends your control and provides more capabilities, including a number of automatic features that aren’t available using either the managed service option on RDS or the native AWS storage model.
Cloud Volume ONTAP allows you to leverage self-managed MySQL in EC2 with enterprise capabilities, achieving the following benefits:
- Run any version of MySQL
- No limitations on instances configuration, scalability or storage volume
- No vendor lock-in
- No SLA limitations
- Pay only for actual resources used
- Full control over database configuration
- Full control over disaster recovery and data protection
When using NetApp Cloud Volumes ONTAP you can leverage the following features:
- Point-in-time, instantly-creatable consistent snapshot copies
- Zero-cost data clones
- Reduced storage consumption thanks to storage efficiencies like thin provisioning, data compression, deduplication, and automatic tiering of infrequently-used data (can save 70% of storage costs)
Learn more from our customers in our Database Case Studies with Cloud Volumes ONTAP blog, and visit our Cloud Volumes ONTAP for MySQL solution page.