Microsoft Azure Storage is a cloud-based storage service that provides organizations with a variety of storage solutions. Azure Storage provides:
- Cloud-based file sharing
- Message storage
- NoSQL storage
- Virtual machine disk storage
- Highly scalable object storage
All storage products offered through Azure Storage are designed for high availability and redundancy. The underlying hardware that supports Azure Storage provides redundancy in the event of a temporary hardware failure, while various replication options provide protection against local and regional outages. Azure provides high-performance storage options for workloads that require high throughput, such as Azure database services.
To support enterprise-grade cloud security, Microsoft designed its infrastructure so that all data written to Azure Storage is automatically encrypted, both at rest and in transit. Fine-grained controls are available so organizations can control who has access to what data.
Because Azure Storage is a managed service, Microsoft is responsible for the maintenance, regular service updates, and troubleshooting of the Azure Storage service. This allows organizations to eliminate the ongoing maintenance and provisioning of storage equipment and servers. However, customers are still responding to correctly configure access and security, and ensure they back up their data.
Data in Azure Storage can be accessed from any location via several methods:
- HTTP or HTTPS access
- REST API
- SDKs for programming languages including .NET, Java, Node.js, Python, and PHP
- Azure PowerShell and Azure CLI scripts
- Graphical UI via Azure Storage Explorer and Azure portal
Azure Storage is charged based on storage capacity, number of transactions stored, and amount of data transferred. Azure Storage pricing consists of three main components.
The first component is storage volume, also known as capacity. This is the total amount of data you move to Azure Storage. Azure sums the number of blobs, entities, messages, applications, and metadata it stores to determine total capacity. Storage is typically computed per GB-month, and the exact fee can depend on the following factors:
- Azure region in which storage runs
- Azure account type
- Redundancy and replication
The second component is bandwidth, which represents the data transfer rate to the storage account location. If you collocate Azure Storage services with the compute resources that need to access them, you enjoy free bandwidth. However, when you access storage services remotely, you’ll pay a fee for access bandwidth usage. There is also a fee for data egress – data transfer outside Azure Storage.
The third component is the number of requests to the storage account, known as transactions. All REST requests for any type of storage (blobs, tables, queues, etc.) are billed.
Here are a few best practices that can help you optimize Azure storage costs. See this blog post for an in-depth look at Azure cost optimization across all services.
Azure Storage provides three different access tiers for storing blob object data. It is important to move data to cold or archive tiers if it is not frequently used, to conserve costs.
- Hot access tier: Suitable for data that is actively used or accessed frequently, and requires read/write operations. Also, if your organization processes data and eventually needs to move to a cold access tier, the hot access tier is a good choice. This tier has the highest storage cost but the lowest access cost.
- Cool access tier: Suitable for infrequently accessed data, or datasets that are not used often, but should be easily accessible when needed. Data should be stored for at least 30 days. Otherwise, a prorated early deletion fee is charged. Cold storage is also a cost-effective option for short-term data backup and disaster recovery. It has a lower storage than the hot tier, but a relatively high access cost.
- Archive access tier: Optimized for data that remains in storage for at least 180 days, is rarely accessed, and does not require low latency. Retrieving data stored in this tier typically takes several hours, depending on the restore priority you specify. There are additional charges for early deletion. This tier has the lowest data storage cost but the highest data access cost.
When storing files on Azure Files, you have four storage tiers:
This lets you tailor your file shares to your performance and pricing needs. To choose a tier, consider your performance and usage requirements:
- If workloads require single-digit latency, or if you use SSD storage media locally, the premium tier may be your best bet.
- If low latency is not an issue, standard storage will be more cost-effective.
You can tune and balance Azure disk IOPS, throughput, and latency by choosing the performance tier that suits your needs:
- Higher I/O applications such as database servers and online transaction processing systems require higher IOPS.
- Most computing applications can perform well with a limited amount of IOPS.
Special events involving peak loads, such as seasonal promotions, might temporarily require higher performance. If you need to meet higher performance requirements to optimize cost, you can change the performance tier of premium SSD disks without increasing the disk size.
You can use Azure Storage Reserved Capacity to save on storage costs for blob data. When you commit to a one-year or three-year reservation, Azure provides a discount for block blobs or Azure Data Lake Storage Gen2 data. Reservations require you to commit and pay for a certain amount of storage capacity for the duration of the term.
Reserved capacity in Azure Storage can significantly reduce capacity costs. The savings will depend on the duration of your subscription, the total capacity you choose to reserve, the access tier you choose for your storage account, and the type of redundancy needed. Keep in mind that reserved capacity only provides a discount and does not affect the performance or features of your storage services.
In this article, I explained the basics of Azure Storage and showed a few ways to optimize and reduce your costs:
- Leveraging cold or archive storage tiers in Azure Blob Storage for infrequently accessed data
- Leveraging non-premium or cold storage tiers in Azure Files for files that do not require low latency access
- Using non-IOPS-optimized Azure Disks for workloads that don’t require high IOPS
- Reserving capacity for a term of one or three years to reduce storage costs
I hope this will be useful as you reduce the financial impact of your cloud storage investment.