MySQL is a popular open-sourced relational database server. It comes in many flavours, including Enterprise and Community editions.
Amazon Web Services, Microsoft Azure, and Google Cloud Platform all provide their own managed MySQL services. The available versions and features vary from provider to provider. As an added complexity, AWS provides three different MySQL services, each one of them different. Let’s take a closer look.
First off, I want to prefix this comparison by saying that in the case of all three providers, you can host MySQL on your own instances/VMs. This comparison only includes managed services, and does not include such host-your-own implementations.
I also want to add that I am not comparing the performance of each service.
Amazon Web Services
AWS offers three different options for MySQL:
- Amazon RDS for MySQL
- Amazon Aurora
- Amazon Aurora Serverless
There are enough differences between the three that I will be separating them.
Amazon RDS for MySQL
Amazon Web Service’s first offering is Amazon RDS for MySQL.
Some key points:
- Amazon RDS for MySQL supports MySQL versions 5.5 to 8.0.
- For high-availability, you can choose from stand-alone instances or replicated Multi-AZ instances.
- RDS has it’s own native DB snapshot method which you can use on your instances. You can create DB snapshots, then restore fresh instances from your DB snapshots. Backups are region-local, but can be copied to other regions.
Amazon Aurora
Later, Amazon Web Service’s came out with Amazon Aurora. Amazon Aurora has both MySQL and PostgreSQL compatibility.
From an infrastructure perspective, this was a major departure from traditional databases. Traditional databases were built to mainly execute on a single server. Replicas are used to distribute readers and writers. Aurora introduced a common storage system, accessed by multiple readers and writers.
Some key points:
- Amazon Aurora supports MySQL versions 5.6 and 5.7. However, Aurora version numbers deviate and mask the actual MySQL minor versions used.
- All Amazon Aurora clusters run as highly-available.
- Storage is not pre-provisioned.
- Amazon Aurora has it’s own native cluster snapshot method which you can use on your clusters. You can create cluster snapshots, then restore fresh clusters from your cluster snapshots. Snapshots are region-local, but can be copied to other regions.
- Amazon Aurora supports “multi-master” mode in a single region. So you can have up to five writers in a single Aurora cluster.
- Amazon Aurora is not actually “MySQL Server”. Instead, it’s just “MySQL compatible”. So there is the risk of some behaviour differences between Aurora and true MySQL server.
Amazon Aurora Serverless
After Aurora, AWS came out with Amazon Aurora Serverless. Amazon Aurora Serverless also has both MySQL and PostgreSQL compatibility.
From an infrastructure perspective, all you see is a cluster. Readers and writers are scaled up and down on demand based on pre-configured specifications (like Auto Scaling for EC2).
Some key points:
- Amazon Aurora Serverless only supports MySQL version 5.6. Again, Aurora Serverless version numbers deviate and mask the actual MySQL minor versions used.
- All Amazon Aurora Serverless clusters run as highly-available.
- Storage is not pre-provisioned.
- Amazon Aurora Serverless has it’s own native cluster snapshot method which you can use on your clusters. You can create cluster snapshots, then restore fresh clusters from your cluster snapshots. Snapshots are region-local, but can be copied to other regions.
Microsoft Azure
Microsoft Azure’s MySQL service is called Azure Database for MySQL.
- Azure currently supports MySQL versions 5.6 to 8.0. Minor versions cannot be selected.
- All MySQL servers on Azure are configured for high-availability, a stand-alone option does not exist.
- Azure MySQL servers can be backed up using a native method. Backups are geo-redundant.
Google Cloud Platform
Google Cloud Platform’s MyQL service is called Cloud SQL for MySQL.
- GCP currently supports MySQL versions 5.6 and 5.7. Minor versions cannot be selected.
- For high-availability, you can choose from stand-alone instances or replicated instances.
- Native backups can be created from your MySQL instances. By default, backups are not geo-redundant, but with some command-line commands, they can be.
Comparisons
Price
Comparing the hourly cost in “US East” regions, GCP comes away with the least expensive way to run a MySQL server.
If you’re doing development, make sure you stop your database servers when they’re not in use. Amazon RDS and Aurora supports this. Amazon Aurora Serverless can reduce itself to 0 Aurora Capacity Units if not in use.
Amazon RDS for MySQL | Amazon Aurora | Amazon Aurora Serverless | Azure | GCP | |
---|---|---|---|---|---|
Cheapest Hourly Cost | $0.017 | $0.041 | $0.06 | $0.034 | $0.015 |
Machine Type | db.t3.micro | db.t3.small | 1 Aurora Capacity Unit | Basic | db-f1-micro |
Version
As of this writing, the current version of MySQL server is 8.0.19.
Amazon RDS for MySQL provides the most choices of MySQL versions. It also is the easest to choose specific minor versions.
Amazon RDS for MySQL | Amazon Aurora | Amazon Aurora Serverless | Azure | GCP | |
---|---|---|---|---|---|
Minimum Version | 5.5.46 | 5.61 | 5.61 | 5.62 | 5.62 |
Maximum Version | 8.0.16 | 5.71 | 5.61 | 8.02 | 5.72 |
1 Aurora server versions are different than the MySQL version. This can make it unclear which minor version of MySQL is being used.
2 Minor versions are not selectable.
High-Availability
For databases, high-availability means redundancy, data replication, and failover availability.
When getting started, a stand-alone database will provide the least expensive option. That’s great for development, but it’s not enough for a higly-available, production environment.
The high-availability method used by Amazon RDS for MySQL, Azure, and GCP is to have two MySQL servers synchronized: a primary server, and a hot standby. Data is synchronously replicated from the primary to the standby. When a failure happens on the primary, their roles swap, and the standby becomes the primary.
Amazon Aurora and Aurora Serverless do it differently. Instead, the data storage is separated from the operating server. Data is always replicated (4 of 6 quarum), even in a single-instance scenario. Readers and writers all share the same data storage (within the same region). If a server fails, a new server can be created to replace it, and it will simply access the same data layer.
All services allow you to create read-replica servers to help distribute the reading load off the primary servers.
Amazon Aurora can operate in a multi-master scenario. This means that you can have multiple writers writing to the same database.
Amazon RDS for MySQL | Amazon Aurora | Amazon Aurora Serverless | Azure | GCP | |
---|---|---|---|---|---|
Standalone | Yes | No | No | No | Yes |
High-Availability | Yes | Yes | Yes | Yes | Yes |
Read-Replicas | Yes | Yes | Yes | Yes | Yes |
Multi-Region Read-Replicas | Yes | Yes | No | Yes | No1 |
Multi-Master | No | Yes | No | No | No |
1GCP documentation does not indicate that multi-region read-replicas are possible. However, the Google Cloud Console UI seems to indicate that either it’s possible in a scenario that I have not found yet, or it may be possible in the future.
Storage
As previously mentioned, the traditional way to provide high-availability is to duplicate the data between a primary server and a hot standby server. This requires twice the storage along with synchronous replication. Each read-replica also required it’s own copy of the data, which adds to the storage costs.
Amazon Aurora instead keeps the data separate from the operating servers. So there is only a single data plane to pay for. It’s still replicated, but you don’t see that.
Also, traditionally, storage was pre-provisioned. Which meant you needed to plan ahead about the potential amount of data your database will need to hold. Today, all offerings support automatic storage growth. So if you run out of storage, it can expand the allocated storage. This means you can start small, and grow as you need to.
All services offer to store your data encrypted.
Amazon RDS for MySQL | Amazon Aurora | Amazon Aurora Serverless | Azure | GCP | |
---|---|---|---|---|---|
Replicated | Yes, in Multi-AZ setup | Yes | Yes | Yes | Yes, in HA setup |
Data storage is off-instance | No | Yes | Yes | No | No |
Data storage is pre-provisioned | Yes | No | No | Yes | Yes |
Available data storage can grow automatically | Yes | Yes | Yes | Yes | Yes |
Data storage is encrypted | Optional | Optional | Optional | Yes | Yes |
Backups
All services support a native backup method. This lets you create backups and restore new servers from the backups.
Some backups are geo-redundant automatically. This means that your backup is replicated in two or more regions. Amazon allows you to copy your backups between regions as needed.
Amazon Aurora and Google Cloud SQL have a built-in method to export your data to cloud storage. Aurora’s is an SQL command, whereas Cloud SQL’s is an API command.
Amazon RDS for MySQL | Amazon Aurora | Amazon Aurora Serverless | Azure | GCP | |
---|---|---|---|---|---|
Native Backups | Yes | Yes | Yes | Yes | Yes |
Geo-Redundant | No, but can be copied | No, but can be copied | No, but can be copied | Yes | Optional |
Can Be Copied | Yes | Yes | Yes | No | No |
Native Export | No | SQL command | No | No | API command |
DevOps
All services allow you to manage your MySQL servers using native infrastructure-as-code tools, such as AWS CloudFormation, Azure Resource Manager, and Google Cloud Deployment Manager.
All services are also supported by third-party services, such as Terraform.
Amazon RDS for MySQL | Amazon Aurora | Amazon Aurora Serverless | Azure | GCP | |
---|---|---|---|---|---|
Native Infrastructure-as-code Support | Yes | Yes | Yes | Yes | Yes |
Terraform Support | Yes | Yes | Yes | Yes | Yes |
Security
Since it’s MySQL afterall, all services allow you to use MySQL authorization and authentication. Amazon RDS and Amazon Aurora though also add IAM authorization. So you can link database access to your AWS account access users/roles.
All services provide infrastructure protection using IAM authorization.
And all services provide optional SSL support with optional enforcement to keep data private during transmission.
Amazon RDS for MySQL | Amazon Aurora | Amazon Aurora Serverless | Azure | GCP | |
---|---|---|---|---|---|
Data Protection | MySQL or IAM authorization | MySQL or IAM authorization | MySQL authorization | MySQL authorization | MySQL authorization |
Infrastruture protection | IAM authorization | IAM authorization | IAM authorization | IAM authorization | IAM authorization |
SSL Support | Optional | Optional | Optional | Optional | Optional |
Enforce SSL | Yes | Yes | Yes | Yes | Yes |
Disclosure
For Skeddly, I’m using an Amazon RDS for MySQL db.m5.xlarge
MySQL instance in a Multi-AZ configuration.
Final Thoughts
If starting a new project today, I’d start with Amazon Aurora (or Aurora Serverless). But due to the risk of behaviour differences, I wouldn’t migrate an existing database unless there’s a need.
For the remainder of the “true MySQL” options, I don’t see a clear winner over the others. It’s going to depend on which features you care about (or don’t care about), and if you’re already using a particular cloud provider.
About Skeddly
Skeddly is the only all-in-one scheduling and automation service for your cloud. Only Skeddly can lower your cloud bills and manage your cloud backups in one place. Customers are happier knowing that Skeddly is working for them in the background.
Start managing your AWS, Azure, and GCP accounts today. Sign-up for our 30 day free trial or sign-in to your Skeddly account to get started.
ByMatt HouseronJan 14, 2020inComparisons,MySQL,Amazon Web Services,Azure,Google Cloud Platform| Permalink
FAQs
How does GCP compare to AWS and Azure? ›
AWS vs Azure vs GCP Pros.
AWS is a Stablish market leader. Azure is Open to Hybrid Cloud systems. GCP specializes in high compute offerings like Big data, Machine Learning. High Transfer Stability: Minimal data loss during server and storage transfer.
Azure SQL is a set of managed, secure, and intelligent SQL Server database solutions that run in the Azure Cloud. MySQL, on the other hand, is a popular Relational Database Management System (RDBMS).
Which MySQL database is fully managed by AWS? ›AWS supports MySQL in a variety of ways, including a fully managed database service, Amazon Relational Database Service (RDS) for MySQL. Amazon Aurora with MySQL compatibility is also built using MySQL, and Amazon RDS supports the popular MySQL fork project, MariaDB.
What is the difference between GCP and AWS database? ›Compared to AWS, GCP will provide you the most basic instance, containing two virtual CPUs and 8 GB of RAM, at a 25 percent cheaper rate. So, it will cost you around US$52/month. The largest instance offered by AWS that includes 3.84 TB of RAM and 128 vCPUs will cost you around US$3.97/hour.
What are the advantages of GCP over AWS and Azure? ›With an intuitive interface, lower costs, preemptible instances and flexible compute options, GCP is an attractive alternative to both AWS and Azure. Google uses full-scale encryption of all data and communication channels including the traffic between data centers.
What are the key differences between AWS vs Azure vs Google Cloud? ›Key Differences: AWS vs Azure vs Google Cloud
AWS provides instances of virtual servers and virtual machines, while Azure provides virtual hard disks, and Google Cloud provides virtual machine instances. AWS instances can be purchased in any of the following models: On-demand, Reserved, and Spot.
The most significant difference from SQL Database and SQL Managed Instance is that SQL Server on Azure Virtual Machines allows full control over the database engine.
What is the difference between Azure managed database and Azure SQL Database? ›Azure SQL managed instance provides integration of native virtual network while azure SQL database enables the access of restricted virtual network by using endpoints of Vnet.
What is the equivalent of MySQL in Azure? ›Azure Database for MySQL is paas DB with mysql storage engine and Azure SQL Database is paas DB with SQLServer storage engine.
Which AWS services are managed database services? ›- Amazon RDS.
- Amazon DocumentDB.
- Amazon Keyspaces.
- Amazon ElastiCache.
What is the maximum storage size for AWS RDS MySQL? ›
You can now create Amazon RDS for MySQL and Amazon RDS for MariaDB database instances with up to 64TB of storage when using R5 instance types. Previously, R5 instances supported 16TB of storage. The new storage limit is available when using the Provisioned IOPS (IO1) and General Purpose (GP2) storage types.
How much capacity does Azure database have for MySQL? ›Attribute | Basic | General Purpose |
---|---|---|
vCores | 1, 2 | 2, 4, 8, 16, 32, 64 |
Memory per vCore | 2 GB | 5 GB |
Storage size | 5 GB to 1 TB | 5 GB to 16 TB |
Database backup retention period | 7 to 35 days | 7 to 35 days |
GCP is, however, better for those who prefer to pay a fixed price for all the services they need. Such a pricing model often makes GCP a less expensive option than AWS. For those who want a simple pricing model and don't mind committing to using the services for a certain period, GCP is an excellent choice.
Which has more services currently AWS or GCP? ›AWS has across 93 availability zones and 29 geographic regions worldwide. GCP is present in more than 200+ countries and 106 zones across the globe.
What is the difference between GCP cloud SQL and MySQL? ›Google Cloud SQL can be classified as a tool in the "SQL Database as a Service" category, while MySQL is grouped under "Databases". "Fully managed" is the top reason why over 12 developers like Google Cloud SQL, while over 778 developers mention "Sql" as the leading cause for choosing MySQL.
What are the weaknesses of GCP? ›However, there are some disadvantages to using GCP, including security risks, cost concerns, reliability issues, privacy concerns, availability concerns, and performance issues. Before using GCP, businesses should carefully consider these disadvantages and weigh them against the advantages of GCP.
Which is more in demand AWS or Azure or GCP? ›AWS holds the largest share of the cloud market. AWS consists of many different cloud computing products and services including compute, storage, analytics, databases, networking, mobile, developer tools, management tools, and IoT.
What are the disadvantages of Azure? ›- Lack of Hyper-V Snapshot Support. ...
- Inability to Upload Custom Images. ...
- Provisioning Virtual Machines in the Cloud Takes Longer than On-Premise. ...
- Lack of Integrated Backup. ...
- Poor Management GUI and Tools. ...
- No Access to Windows Client Images.
Key Differences Between AWS and Azure
AWS provides temporary storage that is assigned when an instance is launched and destroyed when it is terminated. In contrast, Azure provides temporary storage via block storage with page Blobs for VMs and Block Blobs for object storage.
Amazon Web Services (AWS) has an average salary of $106,210 USD across all jobs. Google Cloud (GCP) has an average salary of $105,454 USD across jobs. Microsoft Azure has an average salary of $96,649 USD across jobs.
What is the best cloud platform? ›
- AWS Cloud.
- Google Cloud.
- Microsoft Azure.
- Oracle Cloud.
- Red Hat Cloud.
- IBM Cloud.
- NetApp Cloud Services.
- Alibaba Cloud.
Up to 280, unless the instance storage size or Azure Premium Disk storage allocation space limit has been reached. 32,767 files per database, unless the instance storage size limit has been reached. Maximum size of each data file is 8 TB. Use at least two data files for databases larger than 8 TB.
What is the advantage of SQL managed instance in Azure? ›SQL Managed Instance provides additional security isolation from other tenants on the Azure platform. Security isolation includes: Native virtual network implementation and connectivity to your on-premises environment using Azure ExpressRoute or VPN Gateway.
What features are unsupported in Azure SQL? ›Specifically, Azure SQL Edge doesn't support SQL Server components like Analysis Services, Reporting Services, Integration Services, Master Data Services, Machine Learning Services (In-Database), and Machine Learning Server (standalone).
What are the 3 system properties of Azure tables? ›- PartitionKey property.
- RowKey property.
- Timestamp property.
Azure File storage is not optimized for high-performance transactional workloads. Uses the NTFS file system, which is the same file system used by Windows. Azure Disk storage provides block-level storage for Azure VMs and is suitable for high-performance transactional workloads that require low latency and high IOPS.
What is the difference between Azure SQL Managed Instance and Cosmos DB? ›Azure SQL is based on SQL Server engine, you can easily migrate applications and continue to use the tools, languages, and resources that you're familiar with. Azure Cosmos DB is used for web, mobile, gaming, and IoT application that needs to handle massive amounts of data, reads, and writes at a global scale.
What is the benefit of Azure Database for MySQL? ›Azure Database for MySQL is cost effective and easy to set up, operate, and scale. Enjoy advanced security, same-zone or zone-redundant high availability, and a service-level agreement (SLA) of up to 99.99 percent. Learn how to migrate your on-premises MySQL database to Azure with this migration guide.
Which database type is best for MySQL? ›InnoDB. If you work on applications based on MySQL now, InnoDB will most likely be your storage engine. It ensures all options that a database would require, and is the most popular choice for the absolute majority of developers. InnoDB supports transactions and foreign keys constraints.
Which of the following is not available in Azure Database for MySQL? ›The MySQL service doesn't allow direct access to the underlying file system. Some data manipulation commands aren't supported.
Which are managed database services available in GCP? ›
Fully managed MySQL, PostgreSQL, and SQL Server. Simplify migrations to Cloud SQL from MySQL, PostgreSQL, SQL Server, and Oracle databases with Database Migration Service. Set up easy-to-use, low-latency database replication with Datastream.
Which managed databases are available on Azure? ›Purpose-built Azure databases
Develop high-performance applications of any size or scale with a fully managed and serverless distributed database supporting open-source PostgreSQL, MongoDB, and Apache Cassandra as well as Java, Node. JS, Python, and . NET.
- RDS (Relational Database Service)
- Redshift.
- Aurora.
- DynamoDB.
- ElastiCache.
- Benefits of Amazon ElastiCache.
An Amazon RDS DB instance in the storage-full status doesn't have enough available space to perform basic operations, such as connecting to or restarting the instance. To resolve this issue, do the following: Confirm that the DB instance status is storage-full. Increase the allocated storage of your DB instance.
How many DB instances can run on RDS? ›By default, customers are allowed to have up to a total of 40 Amazon RDS DB instances. Of those 40, up to 10 can be Oracle or SQL Server DB Instances under the "License Included" model. All 40 can be used for MySQL, Oracle, SQL Server, or PostgreSQL under the "BYOL" model.
How many databases can be created in MySQL RDS? ›Note that RDS for SQL Server has a limit of up to 100 databases on a single DB instance to learn more see the Amazon RDS for SQL Server User Guide.
What is maximum limit for databases for Azure SQL DB? ›Compute size (service objective) | GP_S_Gen5_1 | GP_S_Gen5_8 |
---|---|---|
Max concurrent workers | 75 | 600 |
Max concurrent logins | 75 | 600 |
Max concurrent external connections 4 | 7 | 60 |
Max concurrent sessions | 30,000 | 30,000 |
The default max size for all TempDB data files on the new SQL Managed Instances is -1 which stands for unlimited. The default max size for TempDB log file is 120 GB on the General Purpose managed instance and 2 TB on the Business Critical managed instances.
What are the Azure MySQL service tiers? ›Azure SQL Database offers several service tiers to target different workloads: Basic, Standard (General Purpose), Premium (Business Critical), and HyperScale.
Is GCP going to overtake AWS? ›The Obvious: Google Is Not Surpassing AWS
Amazon continues to have the advantage as the biggest and most successful cloud provider in the market. While AWS is growing at a smaller rate now than both Google Cloud and Azure, Amazon still holds the largest market share of all three.
Which is cheaper GCP or AWS? ›
In addition to the world's largest networks, Google Cloud is cheaper than AWS and Azure. The bill is on minute-level increments, only charging for the computing time that is used. Depending on the instance, GCP is 25-50% cheaper than AWS.
Why is GCP less popular? ›Why isn't Google Cloud Platform as popular compared to AWS and Azure? In my view, they are not popular because they don't offer any Microsoft related solutions such as Windows compute unit or SQL Server. So if a company has any Microsoft based workload, they can not move these resources to the GCP.
Why choose GCP over AWS and Azure? ›With an intuitive interface, lower costs, preemptible instances and flexible compute options, GCP is an attractive alternative to both AWS and Azure. Google uses full-scale encryption of all data and communication channels including the traffic between data centers.
Why is GCP better than Azure? ›Summary: Azure provides a well-rounded set of storage services and features, but can have a steep learning curve, especially for users without a background in Microsoft technology. Google offers fewer features but shines in storage pricing and ease of its use.
Who is market leader AWS or Azure? ›According to a Statista report from the fourth quarter of 2021, AWS has a 33% market share, Azure has a 22% market share, and Google Cloud has a 9% market share.
Which feature of MySQL is unsupported in GCP? ›Unsupported MySQL features for Cloud SQL
The following feature is unsupported for Cloud SQL for MySQL 5.6 and 5.7: The SUPER privilege Note: Because Cloud SQL is a managed service, it restricts access to certain system procedures and tables that require advanced privileges.
Cloud SQL for MySQL is a fully-managed database service that helps you set up, maintain, manage, and administer your MySQL relational databases on Google Cloud Platform.
What is the comparison between Google Cloud and Microsoft Azure? ›Summary: Azure provides a well-rounded set of storage services and features, but can have a steep learning curve, especially for users without a background in Microsoft technology. Google offers fewer features but shines in storage pricing and ease of its use.
Why GCP is better than AWS? ›You can also save more as the Billing for AWS is done on Per-Hour basis, whereas Google Cloud Platform provides billing on a Per-Second basis. Moreover, Google Offers additional discounts for Long-Term usage and there are no Upfront Costs too.
What are the disadvantages of GCP? ›However, there are some disadvantages to using GCP, including security risks, cost concerns, reliability issues, privacy concerns, availability concerns, and performance issues. Before using GCP, businesses should carefully consider these disadvantages and weigh them against the advantages of GCP.
Is GCP tougher than AWS? ›
It is easier to run Kubernetes on GCP because Google has been involved in the development of Kubernetes from its inception. Elastic Kubernetes Service in AWS provides no resource monitoring tool compared to Stackdriver by GCP.
Why to choose AWS over Azure? ›While Azure has more functionality in general than AWS, it is simpler to use. AWS can be complex and is known for lots of documentation, whereas Azure uses technologies that you and your users are already accustomed to using, like Windows, Active Directory and Linux, so the transition to the cloud is less obvious.
What is GCP best for? ›Google Cloud Platform (GCP) is a widely used cloud computing platform for several reasons, including their convenient, easy-to-use tools and services. Our comprehensive guide will explore Google Cloud Platform in more detail, which also serves as an introduction to cloud computing technology in general.
Why GCP is the best cloud? ›Achieving 99.99% Uptime
A massive advantage in choosing Google Cloud hosting solutions is their commitment to achieving uptime upwards of 99.99%. This is reflected in their Compute Engine Service Level Agreement (SLA), where any dip below a monthly uptime of 99.99% will result in financial credit.