Skip to content

Server and storage requirements

Mike Simpson edited this page Oct 22, 2024 · 5 revisions

EDITORS: Group

Cloud services suggested for running a Colouring Cities application.

Virtual Machines

For Colouring Britain, we use Microsoft Azure and find that the “burstable” instances are cost-efficient because the site sees uneven usage and goes through relatively quiet periods.

B series: https://docs.microsoft.com/en-us/azure/virtual-machines/sizes-b-series-burstable

For development, we use local desktops or laptops.

The current setup runs everything in a single virtual machine:

NodeJS application

PostgreSQL database

Nginx reverse proxy server

For internal demonstrations and testing, we have a “dev” virtual machine (B2s) which we only run for perhaps a few days in a month.

For deployment, we have a “staging” virtual machine (also B2s) which runs the latest version of the code, and can be used for testing before making an update live.


B2s specification:

2 cores

4GB RAM

30GB disk

For live, we have a “production” virtual machine (B4ms).

4 cores

16GB RAM

32GB disk

additional 256GB disk attached for local storage of backups and data extracts, before moving these to long-term blob storage


Blob Storage

Blob storage (Azure blob storage, Amazon S3 Simple Storage Service) is used for long-term storage of database backups and data extracts. This is a pay-what-you-use service with no need to specify storage space or bandwidth up front, and no practical limits on storage capacity (up to 5PiB).


Pricing

The pricing calculator is useful for estimates: https://azure.microsoft.com/en-gb/pricing/calculator/

A similar setup to the one described above on Azure would budget at around GBP 150-200 per month. The virtual machines are the largest component of that cost – the smaller B2S instances should be sufficient to start with, and 40-60% discounts are available if you can commit to a contract for a year or three years.

Other cloud providers have very similar services for similar prices.

Clone this wiki locally