One of the most common workloads that MSPs support for their customers are line-of-business applications with a SQL Server database back-end. This also happens to be one of the more popular Azure workloads. Microsoft has created several SQL offerings in Azure, including Azure SQL and SQL Managed Instance. However, most MSPs prefer to start out with a traditional VM in Azure running a full version of SQL Server just like it does on-premises.
In this article, we will review all available SQL options in Azure with a special focus on licensing considerations when running SQL Server on a Windows VM. We’ll clear up some common misconceptions and focus on cost implications of each licensing scenario.
There are three common ways to host a SQL database in Azure:
- Azure SQL database
- SQL Server on Azure VM – Microsoft Managed Instance
- SQL Server on Azure VM – MSP managed
We will focus primarily on #3 – SQL Server on an MSP-managed Azure VM.
A fully-managed SQL database engine based on the latest stable Enterprise Edition of SQL Server.
This is a relational database-as-a-service (DBaaS) hosted in the Azure cloud that falls into the category of Platform-as-a-Service (PaaS).
If you are developing a new application or re-architecting an existing one, this is the option that you should use first. There are no VMs involved and Microsoft manages the entire back-end for this PaaS, including patching, updates, and high-availability. The cost is relatively low compared to a full license of SQL Server -- especially the Enterprise version. However, there are a small number of feature limitations and you are locked into the latest version of SQL Enterprise without admin rights.
SQL Server on Azure VM – Microsoft Managed Instance
Managed Instance is a new deployment option of Azure SQL Database, providing nearly 100% compatibility with the latest SQL Server on-premises (Enterprise Edition) Database Engine. This provides a native virtual network (VNet) implementation that addresses common security concerns, and a business model favorable for on-premises SQL Server customers.
The Managed Instance deployment model allows existing SQL Server customers to lift and shift their on-premises applications to the cloud with minimal application and database changes. The managed instance deployment model is designed for customers looking to migrate a large number of apps from on-premises (or IaaS), self-built, or in an ISV provided environment, to fully managed PaaS cloud environment with as low migration effort as possible.
With Managed Instance, Microsoft manages the VM, SQL Server installation, patching, updates, high-availability, etc. MSPs and customers do not have administrative access to the managed instance. This is an interesting deployment model for some scenarios, but in our experience uncommon among MSPs and their customers.
SQL Server on Azure VM managed by MSP
This is by far the most common deployment model for customers looking to lift-and-shift their existing LOB applications into Azure without re-architecting them. The VM is set up and managed by the MSP or customer’s IT team, and any SQL Server version can be installed just like on a regular on-premises server.
Many MSPs also choose to migrate existing SQL servers to Azure without rebuilding the VM and reinstalling SQL Server. They simply use Azure Site Replication (ASR) or another data transfer tool to move a server from on-premises into Azure as a VM.
With Nerdio’s Hybrid AD functionality, this allows the migrated VM to work without any modifications since Active Directory spans both the on-premises network and the Azure deployment where the VM now resides. With Windows Server 2008 and SQL Server 2008 nearing end of support, Microsoft is providing three years of extended security updates to those who move the SQL Server VMs into Azure.
We’ve created a step-by-step guide on how to migrate your Windows Server 2008 workloads into Azure to take advantage of extended security updates. Click here to check it out.
Paying for your license
Despite SQL Server on Azure VM being the most popular deployment model, it generates a lot of confusion around the valid and most efficient way to pay for the license.
Let’s review the available options.
1. Rent SQL Server via Azure (Pay-as-you-go)
The easiest way to deploy a VM running SQL Server in Azure is to select it as an image from the Azure image library. A new VM will be created with SQL Server pre-installed on it and Microsoft will bill for the SQL license as part of the VM price.
This is one of the more expensive SQL licensing options but provides the most flexibility.
- List price for SQL Server license only:
- SQL Standard – $146/month per two CPU cores (4 cores minimum per VM)
- SQL Enterprise - $548/month per two CPU cores (4 cores minimum per VM)
- Payment model: Hourly, pay-as-you-go with no commitment or upfront payments
- Deployment model: Only from Azure image library
2. Bring your own SQL Server Volume License with Software Assurance (License Mobility)
Many Enterprise customers already own SQL Server licenses under an existing license program with Microsoft such as EA or Select. These licenses can be used in Azure due to the License Mobility benefit that is part of the Software Assurance subscription. Without active Software Assurance, an existing SQL Server license cannot be used in Azure because it is a multi-tenant hosting environment.
SQL Server license with SA can be used by enabling Azure Hybrid Usage on a VM where SQL is installed. If the VM was provisioned as a SQL VM from the Azure image library, it can be converted to “bring-your-own SQL license” mode. Alternatively, SQL Server can be installed on a clean VM or the entire VM can be imported from on-premises with SQL Server already installed. In all these scenarios, having a SQL Server license with active Software Assurance will cover the license obligation for SQL.
This is not a common scenario for most MSPs, as customers don’t often maintain active Software Assurance on SQL Server licenses, and therefore rarely used when deploying SQL in Azure.
3. SQL Server licensed via CSP Software Subscription
Purchasing SQL Server via CSP Software Subscriptions is the most cost-effective option but requires an upfront investment and pre-payment for a 12- or 36-month license. This license can be returned for a full refund within 60 days of purchase but cannot be returned after the 60-day mark.
MSPs can use a CSP Software Subscription to SQL Server under any VM deployment scenario. If the VM was migrated via Azure Site Replication (ASR) from on-premises, deployed as a Windows VM and then had SQL installed on it, or deployed from Azure image library as a SQL VM and was then converted to “bring-your-own license”, a CSP Software Subscription license can be used.
- List Price for SQL Server license subscription:
- SQL Standard 12-month subscription: $130/month per two CPU cores (4 cores minimum per VM)
- SQL Standard 36-month subscription: $118/month per two CPU cores (4 cores minimum per VM)
- SQL Enterprise 12-month subscription: $498/month per two CPU cores (4 cores minimum per VM)
- SQL Enterprise 36-month subscription: $454/month per two CPU cores (4 cores minimum per VM)
- Payment model: Upfront, 60-day full refund
- Deployment models:
- Migrate existing VM with SQL installed to Azure
- Deploy a new Windows VM in Azure and install SQL
- Deploy a new SQL VM in Azure, convert to “bring-your-own” license
What about SPLA?
MSPs often ask if they can use their existing SPLA agreements to license SQL Server in Azure. The answer is yes and no.
Yes, you can license SQL via SPLA using the SAL (Subscriber Access License) model, which is where you pay for each user who connects to the SQL Server. However, you cannot use SPLA to license a per-core SQL model, which is by far the most common way to license SQL Server.
The reason for this is the “DCP Eligibility” of SQL Server product in SPLA. DCP stands for Data Center Provider and DCP Eligibility is a benefit of SPLA that allows certain services to be brought to other providers with Azure being a DCP. SQL SAL licenses are DCP Eligible, while SQL Core licenses are not DCP Eligible (you can read more about that here).
In summary, the PAYG SQL license is flexible from the payment perspective, expensive, and must be deployed from an Azure library. SQL via CSP Software Subscriptions is the least expensive, most flexible in terms of deployment options, but requires an upfront payment. SQL Server with Software Assurance is the least common option since many customers of MSPs don’t maintain active Software Assurance.
MSPs building a cloud practice in Microsoft Azure need to be aware of the various options for licensing SQL Server since it is often a large component of the overall cost of an Azure IT environment. Choosing the correct one can have a significant impact on an MSP’s overall margin for a particular customer deployment.
At Nerdio, our mission is to empower MSPs to build successful cloud practices in Microsoft Azure. We continue to stay up-to-date on all the latest developments with Microsoft licensing and help our MSP partners make the right choice when selecting among the multitude of alternatives.