Moving your SQL Server databases from on-premises to the cloud is a solid plan if you’re looking to increase scalability, flexibility, and cost savings. But before you make the leap, you have a few decisions to make.
First, you will need to pick the cloud platform that best meets your organization’s needs. Microsoft Azure and Amazon’s AWS are the current front-runners in the cloud services field, so for the purpose of this article, when it comes to specifics, we’ll stick to discussing features found in the Azure and AWS platforms.
Once you have committed to a cloud platform, you’ll have to decide whether to run your SQL Server database on your chosen platform’s cloud virtual machines (VM) or utilize its managed cloud database. In Azure and AWS world, Azure VM and Amazon Elastic Compute Cloud (EC2) are your virtual machine options while Azure SQL Database and Amazon Relational Database Service (RDS) fill the managed cloud role.
VMs and managed cloud databases each have their inherent strengths and challenges, so there isn’t necessarily a “right” choice. To give you a feel for which option is the best fit for your SQL Server database cloud migration, we’ve put together a quick comparison of cloud VMs and managed cloud databases.
Cloud Virtual Machines
Right off the bat, it’s important to know that running your database on a cloud VM requires about the same level of administration expertise as running it on-premise. So even though you are running your infrastructure in the cloud, you will still need someone on staff who can perform OS/DBA tasks, manage backups and patches, and implement your high-availability solution.
You will also still need to factor in scheduled downtime while changing CPU/storage resources, which can be inconvenient for users.
In general, cloud VMs offer more flexible configuration options than managed cloud databases. For example, with Azure VMs, you have full control over the SQL Server engine, which supports all the same on-premises capabilities.
EC2 virtual machines can be configured with versions of SQL Server pre-installed. Because you retain access to the operating system, you can add more storage and configure database file locations as needed. In fact, you can use any features available for whatever edition of SQL Server you choose.
Cloud VM access is restricted by IP address, which, in the case of Azure, makes the VM more secure than the Azure SQL Database. In Amazon EC2, you can set up security groups, define the ports you need open, and designate the source IP addresses that are allowed access to your instances.
Although cloud VMs are highly scalable, it’s important to note that scaling is a static process, not a dynamic one. That means you can only specify the resources the VM will use when you create it. If you want to make changes to the resources after the VM is running, you will need to spin up a new VM with the new configuration.
When it comes to scalability, one big advantage that EC2 has over Azure VM is the ability to provision an EC2 instance for each AWS account. Azure restricts provisioning of a VM to a specified SQL Server database.
Best Use Cases
Cloud VMs are the best choice if you are migrating an existing database or supporting a hybrid cloud infrastructure and you have a DBA on staff to manage and administer the VMs.
When migrating an existing SQL Server database to an Azure VM, you get full parity with your on-premises SQL Server as well as the ability to deploy applications or services on the SQL Server’s host. SQL Server in Azure VM matches your on-premises environment exactly, so migrating to the cloud VM isn’t much different than moving the databases between on-premises servers.
If you are adopting a hybrid cloud infrastructure to maintain compliance and regulatory standards, cloud VMs offer the best support for applications that run partly in the cloud and partly on-premises. For example, you can extend your on-premises network and Active Directory domain to the cloud via Azure Virtual Network.
Managed Cloud Databases
Because managed cloud databases are ... well ... managed, organizations don’t necessarily need a dedicated DBA on staff. Managed cloud services take care of infrastructure provisioning and include maintenance such as backups, patching, and recovery.
Managed cloud databases also assign necessary resources such as CPU and storage to individual databases, eliminating the need to manually adjust resources in response to changes in load.
Managed cloud databases are not as configurable as those on a VM because you give up a lot of control when you employ a third party to manage your infrastructure. One of the big implications of not having access to the OS is that you lose native backups and will need to back up and restore from a bucket.
Managed cloud databases, especially those housed on Azure or AWS, benefit from built-in advanced intelligence and security. With the mega-resources of Microsoft and Amazon powering these cloud services, both physical and cybersecurity measures exceed what most enterprises can afford to provide on their own.
For example, Amazon RDS offers three main security features, including:
- Encryption at rest and in transit: Data stored at rest in the underlying storage is encrypted, as are its automated backups, read replicas, and snapshots. Data in transit is secured via SSL.
- Network isolation: Allows you to isolate your database in your own virtual network and connect to your on-premises IT infrastructure using industry-standard encrypted IPsec VPNs.
- Resource-level permissions: Integrates with AWS Identity and Access Management to control the actions that users and groups can take on specific Amazon RDS resources.
Managed cloud services offer pay-as-you-go scalability with options to scale deployments up or down with a few clicks. You also benefit from expandable storage capabilities that automatically respond to increased storage needs.
Best Use Cases
Managed cloud databases are the best option for organizations that don’t have resources for a dedicated DBA or those that are creating new databases vs. migrating existing SQL Server databases to the cloud.
SQL Server and managed cloud technology don’t always play well together during migration, and not all SQL Server features are available on managed cloud databases, so it is preferable to create new databases in the managed cloud and migrate existing databases to a cloud VM.