Let’s talk about lifting and shifting your SQL Server workloads into the cloud! This blog post is going to discuss running your database server in a public cloud, which AWS/Azure/GCP products are available, and how to accomplish it.
What is a public cloud? Public cloud is effectively someone else’s computer that you are renting out that you can stop at any time. The main practical advantage of a public cloud (from a technology perspective) is in it’s a pay-as-you-go (effectively pay by minute) model which allows to:
- Reduce upfront technology cost (see Fig #1)
- Shift the cost from OpEx to CapEx (OpEx vs. CapEx)
- Simplify business buy-in into the latest and greatest tech
- Shorten time of product ideation
Which AWS/Azure/GCP products are available?
You will have to choose from the following public cloud offerings: IaaS (infrastructure as a service) or PaaS (platform as a service) service.
Examples of IaaS (“less-managed”):
- Amazon Elastic Compute Cloud (aka AWS EC2)
- Azure Virtual Machine (aka Azure VM)
- Google Cloud Platform Compute Engine (GCP Compute Engine)
Examples of PaaS (“more-managed”):
- Amazon Relational Database Service (aka AWS RDS) – most likely a Database as a Service (DBaaS)
- Azure SQL Managed Instance (aka Azure SQL MI)
- Google Cloud Platform (aka GCP Cloud SQL)
In layman’s terms, IaaS service is your on-demand “leased” virtualized server where the public cloud provider is only responsible for both network and machine while PaaS is fully (minus database maintenance) managed and cloud provider is responsible for the database service up and running (Fig #2).
In terms of SQL Server parity, IaaS is virtually 100% compatible while PaaS is not (check out my SQL Server feature parity blog post). Obviously, the safest bet is to migrate your on-premises SQL Server workloads to IaaS products like AWS EC2, Azure VM, GCP Compute Engine than to PaaS products like AWS RDS, Azure SQL, GCP Cloud SQL.
How to accomplish it?
The following steps are providing some general steps to move your SQL Server workload into IaaS products:
- Sign up with your preferred public cloud (AWS/Azure/GCP account)
- Setup Network (AWS VPC/ Azure VNET/ Google VPC)
- Choose instance type and fire-up AWS EC2 / Azure VM / GCP Cloud Engine instance
- AWS Security Group / Azure Subnet
- Utilize AWS DMS / Azure DMS to migrate the data
This blog post is partially based on the following resources: