One of the challenges I had starting this article was how to present this in text. I may need to do a video/screencast inorder to do justice to this, I’m assuming you already have a number of resources on Azure. Later on I will share another article on how to get the best value for money before creating a new resource on Azure. Please bear in mind the suggestions shared here are actions I carried out to reduce my Azure spend and remain my personal recommendations.
My first question, How many App service (Azure App Service Plan is the container for hosting Web Apps, API Apps, Mobile Apps and Function Apps) do you have within your current subscription ?
Did you know that the charge for an App service is not significantly influenced by the number of web apps that you have within the same app service. What that means is that you can reduce your current cost by hosting a couple of your web apps in a App service plan. App service depending on the specific one that you choose (a couple of other factors like auto-scaling, CPU, storage) could allow you host as much as 20 web apps or more within a single app service plan. An app service is a virtual machine instance and could host a couple of apps in it, so no need to have multiple app services.
Azure app service is charged as a single unit cost i.e you will be charged based on the app service option that you choose.
Secondly, what Azure region are your services hosted/deployed at the moment ? Are they close to where your existing users are ?
Azure regions have different prices due to the varying cost for each region, cost of electricity in Europe is not the same as it is in Africa (South Africa North Region). So also the cost of land, construction and other necessary components required for the smooth running of a Data center. Together with varying Data center cost we also have the transfer data cost. Data transfer in and out of an Azure region away, where your users are is also another factor to consider. The closer the data center(where your resources are hosted) to your users the better.
One service in Azure that I Love a lot and always ensure I have it setup for as many services as possible is Application insights. Just as the name implies, it gives a lot of insights into the running of apps and other services down to run-time analytics. This helps save me a lot whenever I need to do some debugging or some optimization. This article is not about Application insights, but with app insights(for short) you can know where your current users are from (Location and other parameters like operating system, browser and the likes) and use that to determine which Azure Region to redeploy you resources to. Don’t forget, the closer the data center/region (where your resources are hosted) the better (cost and latency wise).
Another factor to consider, decommission resources that are no longer in use. I had a couple of resources I was no longer using and this added to my bill monthly.
Auto-shutdown resources while they’re not in use should also be considered. I found this feature to be very useful with Virtual machines where I can easily schedule a VM to short-down during non-office hours and on weekends. You can also implement auto-scaling, you scale down during off-peak periods and scale up or scale out as at when needed.
Using the latest Azure resource for your solutions is also important. I was using a third party resource that allows you run Wordpress using Azure SQL as the database because Azure as of that time did not have Azure MySQL. The third party service worked well and still works well but comparing the cost with other service options available within Azure now makes running that old service to be expensive. Azure now has other WordPress service options that are cheaper.
Do you have other tips and ideas on how to reduce Azure spend and get value for money, please share your thoughts and suggestions in the comments section.