Deploy Azure SQL Elastic Pools as Sage X3 Database

Azure SQL Elastic Pools is heavens-send for a lot of partners and customers who are looking for an affordable, yet scalable SQL Database service for their Sage X3 projects. Making sure you are compliant with Microsoft's rather complicated SQL licensing terms has always been a big concern for our partners and customers for the following reasons:

1- Microsoft's preputial SQL licenses cannot be deployed on elastic cloud computing platforms such as Amazon EC2 due to the License Mobility restrictions on these licenses. You will need to purchase the Software Assurance package on top of your SQL license to gain the License Mobility benefit.

2- SQL Server License comes in two flavors: Core Based and Client Access License. The Core license means you will pay for each vCPU in your server with a minimum of four cores to be purchased. The CAL license type allows for unlimited number of cores, but you will need to purchase a CAL license for each user who connects to your application, e.g., Sage X3.

3- The upfront cost and the ongoing subscription payments as well as making sure we're compliant with the terms above adds a lot of complexity which needs a thorough license management workflow.

Another alternative we have had so far has been using managed SQL services such as Amazon RDS or AWS AMIs that ship with SQL License built-in, so in practice, outsourcing the licensing burden to Amazon. This is rather convenient, but also quite an expensive initiative.

Sage X3's recent release, i.e., 2022 R4 adds support for Azure SQL Elastic Pools. Azure SQL Database elastic pools are a simple, cost-effective solution for managing and scaling multiple databases that have varying and unpredictable usage demands. The databases in an elastic pool are on a single server and share a set number of resources at a set price. This means that partners can now deploy multiple customers databases to the same server and let Azure Elastic Pools managed the needed capacity to maintain the desired performance. Read more about Elastic Pools here: Manage multiple databases with elastic pools - Azure SQL Database | Microsoft Learn

In this article, I will show you how to setup a basic SQL Database in Elastic Pools. In my next article, I will walk you through the steps to install Sage X3 using this new service as your database. 

Create a Resource Group if you do not have one:

Create a Virtual Network and Subnet for containing all the resources needed for your new Sage X3 environment. These include the Virtual Machines, SQL Databases, etc.

For better Security, it would be best to connect to your Sage X3 Virtual machines via a BastionHost rather than exposing them to the Internet via Public IP addresses. You have the option to create a BastionHost in the Create Virtual Network wizard. For this purpose, I will go with this configuration for my Virtual Network:

You need to assign a Public IP address to your Bastion Host in this step.

You can now proceed with the wizard to deploy your new Virtual Network.

Deploy the SQL Elastic Pools Database

  1. Assign a Name to the Pool and create a new SQL Server to be assigned to the Pool

You can choose a different server and storage size based on your performance requirements and budget. Once you are happy with the choices, press Review+Create.

You will need the following details when configuring your Sage X3 solution, so make sure you take note of them:

  • Elastic Pool Name
  • Server Name
  • Server admin login & Password

Next, we will discuss how to configure your X3 Solution to connect to the Elastic Pool as its database resource.