Optimize Storage Costs
Start course

Microsoft Azure provides a variety of cloud services in a variety of cloud service models: IaaS, PaaS, and SaaS. When businesses migrate to the cloud, they must choose which model is best suited to their needs and is the most cost-effective. This course is designed to assist Cloud Architects in identifying their current Azure expenditures and providing greater awareness of the costs associated with each deployment model as well as each aspect of an Azure deployment.

Optimizing Azure costs begins with knowing your current Azure expenditures. This course introduces you to the tools built into the Azure Portal that can help you understand the total overall expenditures in Azure as well as break down those costs by area: Compute, Network, Storage, Identity, and App/Cloud Services.

The remainder of the course drills down on specific costs associated with each area of Azure identifies the costs associated with each service and provides very clear and concise methods for reducing Azure expenditures. Many of the cost savings methods will require minimal changes to your Azure deployment and will take just minutes to implement while other cost savings methods may take a shift in your Azure strategy, such as moving from Iaas to PaaS. By the end of this course, you will have gained a thorough understanding of how charges are incurred, how to reduce or even avoid some of the charges, and you will have learned how to significantly reduce overall Azure expenditures and get the most out of what is spent in your Azure deployment.

Learning Objectives

  • Identify current Azure expenditures
  • Optimize compute costs
  • Optimize network costs
  • Optimize storage costs
  • Optimize identity costs
  • Optimize App Service and Cloud Service costs

Intended Audience

  • Azure architects who are exploring options for reducing their Azure spending


  • Good understanding of Azure administration and management



Azure storage is billed on a per gigabyte per month basis. Therefore, your strategy for reducing or least controlling Azure storage costs is to ensure that what is being stored in your storage account is being used. If you are using Azure to host IAAS virtual machines, you know that you have two choices for disk storage, unmanaged and managed disks. Unmanaged disks are stored as Page Blobs in your storage account. The cost for Page Blobs depends upon the amount of Page Blob storage used, IOPs per Page Blob, throughput per Page Blob and on the type of disk; Premium SSD or Standard HDD. The challenge with unmanaged disks is that if you are hosting several IAAS virtual machines, you may have to spread the disks across multiple storage accounts. Should they collectively exceed the limits of a single storage account. The complication of managing unmanaged disks is why Microsoft recommends that IAAS virtual machines always use managed disks. The cost for managed disks is comparable to unmanaged disks but there are two lower priced tiers, P4 and P6. Assuming the use of managed disks, it is still possible to control disk storage costs by carefully considering which type of disk to use. 

There are three storage tiers; Premium SSD, Standard SSD, and Standard HDD. The Premium SSDs offer the highest disk throughput, but at a higher cost. Standard SSDs are a lower cost SSD offering, that are optimized for entry-level production workloads and they're half the cost of Premium SSDs. The Standard HDD disks are a low cost HDD based tier, that are best suited for development and production, or infrequent production workloads that can tolerate varying level of performance. Given this information, instituting a policy that development and testing environments utilize Standard HDDs can help control costs. Careful analysis of the disk throughput of your current workload can help you decide on a case by case basis if you really need the high performance of Premium SSDs. If you've already deployed your IAAS virtual machines to Azure, it is worth nothing that if your IAAS virtual machines are using managed disks, you can switch between the storage types with minimal downtime. If your IAAS virtual machines are using unmanaged disks, it is possible to convert an unmanaged disk to a managed disk. Converting to a managed disk is non-reversible and will require a reboot of the virtual machine to complete the process. While on the subject of IAAS virtual machines, another easy way to reduce Azure storage costs is to delete any unused, unattached disks that remain in storage. 

It's important to realize that when a virtual machine is deleted, any disks that were attached to that virtual machine are not deleted. You will still incur charges for these orphan disks that remain in your storage account. Moreover, disk charges are based on the allocated size of the disk and not the amount used. For example, if you allocated a 128 gigabyte Premium disk, the charge is based on 128 gigabytes, even though it may only contain 50 gigabytes of data. Deleted these unattached disks can significantly reduce your storage costs, particularly storage accounts used for development and testing where virtual machines are frequently created and deleted. You can discover and deleted unattached disks from a storage account by using the PowerShell script at this URL. Many companies use Azure disk snapshots on blob to enable point in time recovery capabilities. While this is certainly a fine option to leverage, these snapshots should be monitored closely to avoid excessive billing costs for storage of these snapshots. A single snapshot isn't costly but over time these can get out of control, particularly when snapshots is configured to be taken automatically on a daily basis. 

If you use snapshots on blobs, monitor the snapshots and delete those which are outdated or no longer needed. A even better way to avoid the costs associated with snapshots is to implement a comprehensive backup solution by deploying an Azure Recovery Vault. With the proper retention policy for your backups, you can effectively eliminate the need for snapshots in most cases. In addition to choosing the type of disks used for your VM storage, you can also choose a storage tier for a blob storage in General Purpose v2 accounts. There are four tiers to choose from; Premium, Hot, Cold, and Archive. The Premium tier stores data on high-performance solid-state drives that are optimized for lower latency and higher transactional rates compared to traditional hard drives. But it's only available for block blob storage. The Hot tier has the highest cost for storage but the lowest cost for access. This tier is ideal for frequently read and written data, or staged data that will eventually be moved to Cold storage. 

The Cold storage tier has a lower storage cost but higher access cost compared with the Hot tier. This tier is best for data that will remain in this tier for at least 30 days, such as short term backups or any infrequently accessed data. The Archive tier has the lowest storage cost but the highest access cost of the four tiers. It is best suited for long term back up storage, compliance, or archival data that is rarely accessed. By placing data stored in blob storage in the correct tier, you'll save on storage costs while maintaining the accessibility you need. Azure Blob Storage lifecycle management offers a way to automate the tiering of data in blob storage accounts and in General Purpose v2 accounts. With lifecycle management, you can create policies that transition blobs to cooler storage, delete blobs at the end of their lifecycle, create rules to apply to your blob storage account on a daily basis, or set the rules to apply to specific containers or subsets of blobs. Currently, there is no cost for using lifecycle management, only the cost normally associated with your storage account. So this is an ideal way to automate the management of data in blob storage to continuously save on storage costs. To round out the discussion on storage, I'd like to discuss the Recovery Vault, which I previously introduced. 

The Azure Recovery Vault is a storage location separate from a Storage Account and dedicated to storing backups of virtual machines and files and folders. The Recovery Vault should be properly managed to contain costs, backups of virtual machines are charged per instance, based on size and for the actual storage it consumes. Files and folders are charged strictly based on the space consumed. The cost per gigabyte per month is about two cents. Manage your backups by having a comprehensive retention policy and by deleting backups as they are aged out of your policy. Some of the tools used to perform server backups can automate this process of enforcing your retention policy.

About the Author

Jeff is a technical trainer and developer residing in Arizona, USA. He has been a Microsoft Certified Trainer for the past 18 years, providing in-house development and training on Microsoft server operating systems, PowerShell, SQL Server and Azure.  When he’s not developing and delivering courses on Azure, he’s photographing galaxies, nebulae and star formations from his computer-automated observatory in Chino Valley, Arizona using a 14” Schmidt Cassegrain telescope.