What is Azure Database for PostgreSQL?

Abstract image of stacked white discs on a green background to symbolise a database

What do Microsoft, Apple, Accenture, Skype, Reddit, Twitch, Spotify and the International Space Station all have in common?

Despite being very different companies working in a range of sectors, they all run essential workloads with the same open source database system: PostgreSQL.

PostgreSQL is considered to be the most sophisticated open source database system. It was launched over 25-years-ago as the successor to the Ingres databases, which was developed in the 1970s by a team of scientists from the University of California.

Now, while the original PostgreSQL is a free and open source relational database management system, there is also Azure Database for PostgreSQL, which is a tool that allows users to build massively scalable PostgreSQL apps. It's based in Microsoft's flagship Azure cloud service, and makes it possible to develop apps using PostgreSQL tech without actually needing to take full control for the instances. It's also available in different deployment modes and can be on-premises on any infrastructure the customer likes.

To fully understand how versitle Azure Database for PostgreSQL is, we need to break down its tiers and pricing models.

Deployment types for Azure Database for PostgreSQL

Azure Database for PostgreSQL – Single Server

The main deployment method for PostgreSQL databases on Azure is the Single Server model, and very closely resembles the conventional PostgreSQL. Users can also take advantage of the on-premise version to create a single PostgreSQL server as the main host for multiple databases.

The Single Server model also offers a fully managed service that can boast 99.99% performance guarantee, and includes several additional features, such as encryption.

This configuration can also be handled through the Azure portal as well as the Azure command line interface (CLI), as can the majority of Microsoft’s cloud services. The Single Server deployment can also let developers have a single database per server, which means they can make the most of resource usage and even share resources across several databases.

Administrators on Azure Database for PostgreSQL don’t always have full superuser permissions, unfortunately, with the highest privileges available going to the azure_pg_admin. The managed service will always retain the superuser attributes, assigned to azure_superuser, and regular users aren’t able to access this role or its privileges.

Azure Database for PostgreSQL - Hyperscale (Citus)

RELATED RESOURCE

Understanding the economics of in-cloud data protection

Data protection solutions designed with cost optimisation in mind

FREE DOWNLOAD

If you have a database which is over 100GB and requires maximum performance, you might want to consider Azure's newest PostgreSQL deployment model. Also known as the 'Hyperscale (Citus)' hosting type, this method uses technology from Citus Data, a company that Microsoft acquired in January 2019.

Hyperscale (Citus) uses database sharding technology, which splits data into smaller component parts and distributes them across a large number of compute nodes which are grouped together into a cluster. This cluster offers more storage capacity and CPU utilisation than a standard single-server PostgreSQL deployment would be able to.

Big companies like Facebook and Google use database sharding within their data centres, but one of the advantages of Hyperscale (Citus) is that sharding is handled automatically, without the tenant application needing to be taught how to do it. The system parallelises SQL queries and other operations across available servers, with a central 'coordinator node' handling query routing, aggregation and planning, and 'worker nodes' storing data.

When the coordinator receives a request from the application, it routes the query to the relevant worker node(s), depending on where the data in question is stored. Caveat emptor, however; as Hyperscale (Citus) is in public preview, it does not offer an SLA at the time of writing.

How much does Azure Database for Postgresql cost?

There are three pricing tiers available for the single server version of Azure Database for PostgreSQL, with each setting out the various provisions that a customer may expect from these packages. These are termed Basic, General Purpose, and Memory Optimised.

While all tiers offer computing power provisioned in virtual cores, or vCores, and each uses fifth-generation chips based on Intel’s Broadwell 2.3 GHz processors, the number of cores and the memory available varies.

The entry-level tier, for instance, offers either one or two rentable vCores, combined with 2GB memory, for £0.026 per hour and £0.051 per hour each. General Purpose and Memory Optimised configuration both offer far more memory and vCores, and are priced more steeply, with the maximum configuration available for £4.179 per hour.

Elements of the servers’ configuration can be changed and adjusted after they’re established, however, and there are a number of factors that combine to influence how much the system will end up costing. You could, for example, ramp up the number of vCores deployed, the storage capacity, and the length of time that backups are retained. Users can also interchange between the different pricing tiers, between General Purpose and Memory Optimised setups, for example.

The final pricing also depends on the type of package you take out and how you want to pay for it, whether it be pay-as-you-go, or annual billing, which generally cost less as you pay more upfront. This annual discounting is not available on the basic level, however. The full breakdown of available tiers is listed below, with fuller pricing information available on through Microsoft.

Understanding the pricing tiers

Single Server

Swipe to scroll horizontally
Pricing tierBasicGeneral PurposeMemory Optimised
Compute generationGen 5Gen 5Gen 5
vCores1, 22, 4, 8, 16, 32, 642, 4, 8, 16, 32
Memory per vCore2-4GB10-320GB20-320GB
Storage capacityUp to 1TBUp to 16TBUp to 16TB

Flexible Server

Swipe to scroll horizontally
Pricing tierBurstableGeneral PurposeMemory Optimised
InstanceB1ms, B2sDv4, Dv3, Ddsv4, Dsv3Ev4, Ev3, Edsv4, Esv3
vCores1, 22, 4, 8, 16, 32, 642, 4, 8, 16, 32, 64
Memory per vCore2-4GB8-256GB16-504GB
Storage capacityUp to 16TBUp to 16TBUp to 16TB

Hyperscale (Citus)

Swipe to scroll horizontally
Pricing tierBasicStandard
vCores2, 4, 84, 8, 16, 32, 64
Memory per vCore8-32GB32-432GB
Storage capacity128-512GB0.5-2TB

Each tier provides a free back up of up to 100% of your provisioned server storage. You can increase your backup retention period, however, this will increase the amount of backup storage consumed by the server, and so you will be charged extra.

Basic

The entry-level tier is primarily designed for low-priority workloads that don't require a great deal of performance. This can include test/dev environments or intermittently-accessed applications.

General Purpose

As the name suggests, the general-purpose tier is where most workloads will naturally fall, and encompasses most enterprise PostgreSQL use-cases. It offers a balance of performance and economy.

Memory Optimised

The highest tier is reserved for applications like financial transaction databases or analytics engines where low latency is paramount. For this reason, it makes heavy use of in-memory computing.

While the Basic tier does not provide an IOPS guarantee, other tiers have IOPS scale with the provisioned storage size in a 3:1 ratio.

Burstable

Somewhat self-explanatory, this pricing tier is exclusive to the Flexible Server deployment and is best suited for businesses that make use of cloud bursting to optimise their resource usage.

Standard

This pricing tier is only available with Hyperscale (Citus) deployments and covers different variables such as worker node size, coordinator node size, and storage per node.

Benefits of Azure Database for PostgreSQL

The database cloud service has a number of advantages.

Built-in high availability: The service provides built-in high availability with no additional setup, configuration or extra cost. This means there is no need to set up further virtual machines and configure replication to guarantee high availability for a PostgreSQL database.

Security: All data including backups are encrypted on disk by default. Also, the service has SSL enabled by default, so all data in-transit is encrypted.

Scalability: The service allows users to scale compute on the fly without application downtime in one step.

Automated backups: Users do not need to independently manage storage for backups. The service offers up to 35 days retention for automated backup.

Connor Jones
Contributor

Connor Jones has been at the forefront of global cyber security news coverage for the past few years, breaking developments on major stories such as LockBit’s ransomware attack on Royal Mail International, and many others. He has also made sporadic appearances on the ITPro Podcast discussing topics from home desk setups all the way to hacking systems using prosthetic limbs. He has a master’s degree in Magazine Journalism from the University of Sheffield, and has previously written for the likes of Red Bull Esports and UNILAD tech during his career that started in 2015.