Azure Documentation

Azure Storage Account Tiers

This document explains the different access tiers available for Azure Storage accounts, specifically for blob storage. Understanding these tiers is crucial for optimizing costs and performance based on data access patterns.

Key Takeaway

Azure Blob Storage offers multiple access tiers (Hot, Cool, and Archive) that allow you to store infrequently accessed data cost-effectively. Choosing the right tier depends on your data's access frequency and latency requirements.

Understanding Access Tiers

Azure Storage provides three main access tiers for blobs: Hot, Cool, and Archive. Each tier has different pricing for storage, access, and operations, enabling you to optimize costs.

  • Hot Tier: Optimized for frequently accessed data. This tier offers the lowest access costs but the highest storage costs. Ideal for data that is accessed regularly, such as frequently used images, active application data, and frequently updated logs.
  • Cool Tier: Optimized for infrequently accessed data. This tier offers lower storage costs than the Hot tier, but higher access costs. Data stored in the Cool tier is expected to be accessed less than once every 30 days. It's suitable for data such as backups, older non-critical files, and disaster recovery data.
  • Archive Tier: Optimized for rarely accessed data. This tier offers the lowest storage costs but the highest retrieval costs and longest retrieval times. Data in the Archive tier is expected to be accessed less than once every 180 days. This tier is ideal for long-term archival, compliance, and historical data.

Choosing the Right Tier

The selection of an access tier should be based on the following factors:

  • Access Frequency: How often will the data be read or written?
  • Latency Requirements: How quickly does the data need to be retrieved?
  • Cost Sensitivity: What is the budget for storage and access operations?

Comparing Tiers

The following table summarizes the key characteristics of each access tier:

Feature Hot Tier Cool Tier Archive Tier
Access Frequency Frequent Infrequent (e.g., < 30 days) Rare (e.g., < 180 days)
Storage Cost Highest Medium Lowest
Access Cost (Read/Write) Lowest Medium Highest
Data Retrieval Time Milliseconds Milliseconds to Hours Hours
Minimum Storage Duration None 30 days 180 days

Managing Access Tiers

You can set the default access tier for your storage account when you create it. You can also change the access tier for individual blobs or for all blobs within a container. This can be done through the Azure portal, Azure CLI, PowerShell, or client libraries.

Rehydration from Archive Tier

Retrieving data from the Archive tier is a process called rehydration. This operation can take several hours, and there are associated costs. You can initiate a rehydration request to retrieve a blob to either the Hot or Cool tier.

Important Note on Costs

Be mindful of early deletion fees for Cool and Archive tiers. If you delete data before the minimum duration, you will be charged for the remaining duration.

Best Practices

  • Use lifecycle management policies to automatically transition blobs between tiers based on rules you define (e.g., move blobs older than 90 days to the Cool tier).
  • Monitor your storage costs and access patterns to ensure you are using the most cost-effective tiers.
  • For frequently accessed data, ensure it remains in the Hot tier. For long-term archival, leverage the cost savings of the Archive tier, understanding the retrieval time and costs.

Example: Lifecycle Management Policy Rule

Here's a conceptual example of a lifecycle management rule:


{
  "ruleName": "ArchiveOldData",
  "enabled": true,
  "type": "Lifecycle",
  "definition": {
    "actions": {
      "version": {
        "tier": {
          "to": "Archive"
        },
        "daysAfterCreationGreaterThan": 365
      },
      "baseBlob": {
        "tier": {
          "to": "Cool"
        },
        "daysAfterModificationGreaterThan": 90
      }
    },
    "filters": {
      "blobTypes": [
        "All"
      ],
      "prefixMatch": [
        "logs/"
      ]
    }
  }
}
                

This rule would move all blob versions older than 365 days to the Archive tier and all base blobs modified more than 90 days ago to the Cool tier, specifically for objects within the 'logs/' container.