cost management
35 TopicsGenerally available: Enhanced Cost Management exports
We’re thrilled to announce the general availability of the enhanced Cost Management exports experience across all Azure regions and clouds. This release is designed to empower FinOps professionals by simplifying workflows, improving data accessibility, and unlocking deeper insights into cloud costs and usage.120Views1like1CommentMaximize efficiency by managing and exchanging your Azure OpenAI Service provisioned reservations
When it comes to AI, businesses confront unprecedented challenges in efficiently managing computational resources. That’s why Azure OpenAI Service is a critical platform for organizations seeking to leverage cutting-edge AI capabilities, and it makes provisioned reservations an essential strategy for intelligent cost savings. Business needs change, of course, and flexibility in managing these reservations is vital. In this blog, we’ll not only explore what makes Azure OpenAI Service provisioned reservations indispensable for organizations seeking resilience and cost efficiency in their AI operations, but also follow a fictional company, Contoso, to illustrate real-world scenarios where exchanging reservations enhances scalability and budget control. The crucial role of provisioned reservations in modern AI infrastructure Azure OpenAI Service provisioned reservations help organizations save money by committing to a month- or yearlong provisioned throughput unit reservation for AI model usage, ensuring guaranteed availability and predictable costs. As mentioned in this article, purchasing a reservation and choosing coverage for an Azure region, quantity, and deployment type, reduces costs as compared to being charged at hourly rates. Actively managing and monitoring these reservations is paramount to unlocking their full potential. Here's why: Optimizing utilization: Regular monitoring ensures that your reservations align with your actual usage, preventing wasted resources. Adapting to business changes: As business needs shift, reservations can be adjusted to accommodate evolving requirements. Avoiding over-commitment: Proactive management helps prevent over-purchasing reservations, which can lead to unnecessary expenses. Enhancing cost control and accountability: By tracking reservation usage and costs, organizations can maintain better control over their AI budgets. Leveraging AI usage insights: Analyzing reservation utilization provides valuable insights into AI application performance and usage patterns. The value of exchanging provisioned reservations One of the most powerful aspects of provisioned reservations is the ability to exchange them. This flexibility allows businesses to adapt their commitments to better align with their evolving needs. Exchanges can be initiated through the Azure Portal or via the Azure Reservation API, offering seamless adjustments. Consider Contoso, a global technology firm leveraging Azure OpenAI Service for customer support chatbots and content generation tools. Initially, Contoso’s needs were straightforward, but as their business expanded, their AI requirements changed. This is where the exchange feature proved invaluable. Types of provisioned reservations exchanges Contoso leveraged several types of exchanges to optimize their Azure OpenAI Service usage: Region exchange: Contoso initially committed to a reservation in the East US region. However, as their operations expanded into Western Europe, they needed to shift their AI workloads. By exchanging reservations, they were able to apply their discounted billing to the West Europe region, ensuring optimal performance for their growing user base. Deployment type exchange: There are three types of deployment: Global, Azure geography (or regional), and Microsoft specified data zone. Contoso initially reserved regional deployments for their inference operations, but because of growing demand they switched to global deployment. This means their Azure OpenAI Service prompts and responses will now be processed anywhere that the relevant model is deployed. By exchanging reservations from regional to global, they were able to apply their reservation savings ensuring seamless cost savings for their critical application. Term exchange: Contoso initially committed to a one-month reservation. However, they soon realized their need for ongoing service and wanted to allocate resources more efficiently. By exchanging reservations, they switched to a one-year term, allowing them to budget more effectively. Payment exchange: Contoso started with an upfront payment model. However, for better cash flow management, they transitioned to a monthly payment plan through a payment exchange. Changing the scope of provisioned reservations As Contoso’s use of Azure OpenAI Service expanded across multiple departments, they needed to modify their reservation scope. Azure offers the ability to scope reservations to individual resource groups or subscriptions, to subscriptions within a management group, or to all subscriptions within a billing account or billing profile. Contoso used Microsoft Cost Management to modify the scope of their reservations, ensuring that each department had the necessary resources. Setting up automatic renewals for provisioned reservations To prevent service disruptions and maintain budget predictability, Contoso enabled automatic renewal for their reservations. Automatic renewals offer several benefits: Continuous service: Ensures uninterrupted billing for Azure OpenAI Service. Budget predictability: Maintains consistent costs over time. Reduced administrative overhead: Eliminates the need for manual renewal processes. Enabling auto-renewal in the Azure Portal is a straightforward process, ensuring that Contoso’s AI operations continue uninterrupted. Reviewing the provisioned reservation utilization report Contoso’s finance and IT teams regularly review their provisioned reservation utilization report to ensure they are getting the best value from their investment. These reports, accessible through Azure Cost Management, provide insights into reservation usage and help identify areas for optimization. Analyzing utilization reports allows Contoso to: Identify underutilized resources. Adjust reservations to match actual usage. Optimize costs and improve efficiency. Setting up utilization alerts To proactively monitor their reservation usage, Contoso configured reservation utilization alerts in Microsoft Cost Management. These alerts notify them if usage drops below a set threshold, allowing them to take timely action. By setting up utilization alerts, Contoso can: Receive real-time notifications of usage changes. Adjust reservations to avoid waste. Maintain optimal resource utilization. Best practices for managing Azure OpenAI Service provisioned reservations Azure OpenAI Service provisioned reservations offer a powerful way to control costs, but proactive management is essential for maximizing their value. As we have seen, Contoso implemented several best practices to maximize the benefits of provisioned reservations: Regular usage monitoring: Continuously tracking usage to identify trends and optimize resource allocation. Strategic adjustments and exchanges: Adapting reservations to match evolving business needs. Implementing governance policies: Establishing clear policies for reservation management and usage. Automating alerts and reporting: Configuring alerts and reports to proactively monitor reservation usage. By leveraging the flexibility of reservation exchanges and implementing best practices, any business can optimize their AI investments and drive long-term efficiency. Embracing these strategies will empower your organization to fully capitalize on the transformative potential of Azure OpenAI Service. Find out more by completing the Azure OpenAI Service provisioned reservation learn module. Additional Resources: What are Azure reservations? Save costs with Microsoft Azure OpenAI Service provisioned reservations Azure OpenAI Service provisioned throughput units (PTU) onboarding Azure pricing overview89Views1like0CommentsUnderstanding AI workload cost considerations
Like all good pricing questions, if you ask how much AI will cost, the answer is “it depends.” Assuming you are building an AI-enabled application, your design decisions will influence that cost - including both traditional architecture components and your choice of AI models. This article looks at application architectures, tokens, and carbon emissions. What does an AI application look like? When thinking about an AI application, AI is just one component. Good architecture design starts with clear requirements and right-sizing the entire application stack to meet business needs. If your application is mission critical and/or customer facing, you’re likely to incur additional costs from design choices that improve resiliency, availability and redundancy, including geo-redundancy, load balancing etc. Example 1: This application provides a front end for customers and store admins, REST APIs for sending data to RabbitMQ message queue and MongoDB database, and console apps to simulate traffic. https://learn.microsoft.com/azure/aks/open-ai-quickstart Example 2: A reference .NET application implementing an e-commerce website using a services-based architecture with .NET Aspire. https://github.com/dotnet/eshop https://github.com/Azure-Samples/eShopOnAzure Example 3: An application that provides text transcripts from podcast audio files. https://learn.microsoft.com/azure/architecture/ai-ml/idea/process-audio-files You might be familiar with how architecture components like AKS, PostgreSQL, Azure Functions or Azure Storage are priced, but you’ll need to add estimated costs for your AI services. This starts with understanding how AI services are charged. AI service pricing structures Azure OpenAI Service – pricing examples Apr 2025 USD The first thing to note is that AI models usually work on a cost basis related to the number of “tokens” that are used. Tokens are the billing meter of AI models. I say “usually”, because text-to-speech models are based on the number of characters processed. Fine-tuning models also have hourly rates, from the moment of deployment, with no way to suspend them/power them down like you can a virtual machine. Tokens are the way an AI model interprets characters, of both input (i.e. prompts) and output (responses). We use tokens because they are consistent, whereas the conversion from characters to token varies. Newer models are more efficient at breaking words into tokens, for example recognising “I’m” as one token instead of two “I” and “’m”. Token counts also vary between different languages (e.g. English or Spanish). AI models don’t see words like humans do but look at common sequences of characters and predict the next token in a sequence. OpenAI provides a tokenizer where you can insert a sample of text, and it will convert it to tokens. In the example video below, we’ve generated a sample of a conversation that someone might have with a website chatbot regarding products for hiking. By generating a token number, we could multiple that by how many current website users we have, how many we think may interact with a chatbot, and a little room for growth. Note: this math is just based on input tokens – the characters submitted by the human, not the AI response (which is charged as output tokens). It’s advantageous to optimize the number of tokens processed by the AI service, and we’ll discuss that in more detail in a later post. That’s not the only AI service that Microsoft offers though. As another example, Azure AI Search has a more familiar SKU approach, with SKUs having a combination of storage, indexes and scale out limits, at an hourly rate per scale unit: Azure AI Search – Pricing example Apr 2025 USD Additional pricing for Custom entity lookup skill, Document cracking (image extraction), Semantic ranker. Architecture, usage and cost considerations For all workloads, including AI, the FinOps Framework capabilities of architecting for the cloud and planning & estimating are key. This is a combination of understanding architectures & usage patterns, understanding the impacts of architecture change, and defining the scope and requirements of your estimates. You can’t figure out how much AI will cost if you don’t understand how it is billed. And you may make design decisions that are not cost optimized if you don’t consider how to optimize or cache tokens (input/output). It also helps to accurately estimate how much your AI workload will be used, but especially if AI hasn’t been adopted in your organization yet, this may require a smaller launch group or proof of concept to test your usage assumptions. Carbon Emissions Whether your organization has formal Environment, Social and Governance (ESG) reporting requirements or not, most people understand that AI services need significant computing power. That’s not something that’s visible on a pricing sheet. The FinOps Foundation includes guidelines for considering sustainability, setting targets and making data visible. And now the Azure Carbon Optimization reporting in the Azure Portal allows you to understand in depth the emissions resulting from your use of Microsoft Azure services. Learn more at aka.ms/AzureCarbonOptimization or try our interactive guide on the Azure Carbon Optimization tool. Coming up next Next time, we’ll explore cost controls for AI services - what exists to help us limit our AI costs, or get more visibility of them at a granular level? Learn more Managing the cost of AI: Leveraging the FinOps Framework Microsoft Azure Pricing Calculator Azure OpenAI pricing Plan to manage costs for Azure OpenAI Service Plan and manage costs of an Azure AI Search service FinOps Foundation FinOps for AI Community: Community calls, resources and conference sessions FinOps Foundation Cloud Sustainability Community Microsoft eBook: Managing Environmental, Social, and Governance goals through FinOps Best Practices337Views1like0CommentsA guide to Azure Storage and Virtual Machines cost optimization
In this blog, we will explore various techniques to optimize costs for Azure storage accounts and virtual machines, while also highlighting some important caveats to keep in mind. Where do we begin? Before diving into specific cost optimization strategies, it's essential to understand where your money is being spent. Microsoft Cost Management is a powerful tool that provides comprehensive insights into your cloud spending. By leveraging this tool, you can identify cost drivers, monitor spending patterns, and make informed decisions to optimize your expenses. Let's take a closer look at the Cost Management graph below to see how we can break down and analyse our expenses. The graph above shows the daily costs incurred by different services over a period of time. The x-axis represents the dates, while the y-axis represents the cost in USD ($). Different colors represent various services such as Virtual Machines, SQL Databases, Storage, etc. By analyzing this data, you can identify which services are driving your costs and take appropriate actions to optimize them. This foundational step is crucial for any cost optimization strategy and ensures that you are making data-driven decisions to maximize your cloud investments. Optimizing costs for storage accounts When it comes to Azure storage accounts, understanding where most of your money is being spent is crucial for effective cost optimization. Azure offers various storage options, each with its own pricing model and use cases. By analyzing your storage usage and implementing cost-saving strategies, you can significantly reduce your expenses. Again, Azure Cost Management is our savior :) you can find the cost breakdown of a storage account per meter, which will give us a better view of where to start our optimization from. Also, breakdown view of different tiers Let's dive deeper... Major cost drivers Let's understand the major cost drivers and areas for optimization Storage tiers: Azure provides different storage tiers, including Hot, Cool, Cold, and Archive. The Hot tier for frequently accessed data and expensive. The Cool and Archive tiers are more cost-effective for infrequently accessed data. Storage transactions: Every operation on your storage account, such as read, write, and delete, incurs a transaction cost. High transaction volumes can lead to significant expenses. Data redundancy options: Azure offers several redundancy options, such as Locally Redundant Storage (LRS), Zone-Redundant Storage (ZRS), Geo-Redundant Storage (GRS), and Read-Access Geo-Redundant Storage (RA-GRS). Higher redundancy levels provide better data protection but come at a higher cost Managed disks: Azure managed disks are block-level storage volumes that are managed by Azure and used with Azure Virtual Machines (VMs). They are designed to provide high durability, availability, and scalability for your applications. Not using appropriate disk type will lead to higher cost Let's take a closer look at the optimization approach for each cost drivers including caveats and considerations. Storage tier recommendations: Hot to cold tier First analyse the read/write transactions & data storage utilization to understand the frequency of read/write transactions and the amount of data stored Leverage Cold tier to lower cost when there is less read and write operations with more data storage cost For instance, moving data storage from the hot tier, which costs $0.195 per GB for the first 50TB/month, to the cold tier, which costs $0.0045 per GB for the first 50TB/month, can result in significant cost savings. Specifically, this transition can save approximately 97.69% on storage costs In summary, less storage cost but more transaction costs Caveats & considerations: Hot to cold tier When you change the storage tier from hot to cold, azure charges for write operations. Specifically, the cost of tiering down from hot to cool can be estimated by the number of write operations required, which is calculated per 10,000 operations. You will need to pay the cost due to write operations when migrating their storage account from the hot tier to the cold tier. This is a one-time cost incurred during the migration process. After the initial migration, the ongoing storage costs in the cold tier should be lower compared to the hot tier, leading to long-term savings Benefits: The long-term savings will be realized over time as the daily storage costs in the cold tier are lower compared to the hot tier. Storage transactions recommendations: V2 to V1 Please be mindful the use of V1 storage account from V2 should be considered very carefully, though it's not an ideal approach, it can be a viable option to explore. Leverage V1 type when you pay more for transactions with less data storage cost This recommendation is particularly beneficial when transactions costs are a significant portion of the overall storage expenses This option can be leveraged when you don’t leverage most of V2 storage features, migrating to V1 would trigger significant saving In summary, less transaction cost but more data storage cost Caveats & considerations: V2 to V1 Transition from V2 to V1 is not a straightforward approach, it requires the creation of a new storage account with V1 type. As of today, you cannot create a V1 account from azure portal, this can be created via IAC (bicep, powershell, terraform...). Post the account creation, you must move all the historical data to the new account. Migrating historical data from existing accounts will incur one time data migration costs as per V1 write transaction cost. General-purpose v1 accounts do not provide access to Cool or Archive storage. Since V1 storage accounts do not support Lifecycle Management policies. To manage data retention, you must create a solution to archive the data that has not been accessed in a while. Benefits: The long-term savings will be realized over time as the daily transaction costs in v1 are lower compared to v2. Data redundancy recommendations: Choosing the right option It's crucial to balance the need for redundancy with budget constraints. While higher redundancy options like Geo-Redundant Storage (GRS) provide better data protection, they come at a higher cost. Higher redundancy options may introduce latency due to data replication across regions. This can impact the performance of applications that require low-latency access to data By carefully evaluating the redundancy requirements a substantial savings can be seen. Managed disks recommendations: Managed disks can significantly impact your overall storage costs if not planned and utilized properly. Premium disks are designed for high-performance and low-latency workloads. However, due to their higher cost compared to standard disks, it's essential to use them judiciously and ensure they are allocated based on actual performance needs Analyse the usage of premium disk on their virtual machines (VMs). Specifically, focus on VMs that are primarily used for read-only caching. Understand the performance requirements and whether the premium disks can be changed to standard disk as you don't need intensive write operation to perform Consider moving premium disks to standard disks in lower environments, such as development and testing environments, if possible. Consider using ephemeral disks for AKS node pools. Ephemeral disks are temporary storage that is directly attached to the VM and provides high performance at a lower cost. If you don't need data persistence for your stateless workloads, ephemeral disks would be right choice. Finally, identity & remove orphan disks – disks that are not attached to any VMs. These disks can incur unnecessary costs. Orphan disks can be identified by many ways you can have a script, and other option would be using an azure workbook that can be handy to find orphan resources. dolevshor/azure-orphan-resources: Centralize orphan resources in Azure environments Caveats & considerations: Premium to standard Premium disks offer higher IOPS (Input/Output Operations Per Second) and lower latency compared to standard disks. Moving to standard disks may result in reduced performance, which could affect applications that require high-speed data access Make sure to analyze your usage patterns and see if moving from premium to standard disks is the right choice for your specific use case Optimizing costs for Azure virtual machines Managing virtual machine costs effectively is crucial for profitability and sustainable growth. Over-provisioned resources often lead to unnecessary expenses, but optimizing resource usage and reducing unnecessary VMs can result in substantial savings and positive environmental impacts. Above image is a representation of different SKU used and the wasted cost on that SKU’s. Segregation of virtual machines are on SKU basis and each SKU cost is the sum of multiple VM’s in a particular SKU. Major cost drivers Let us understand the major cost drivers and areas for optimization Stock keeping unit (SKU): The selection of the right Stock Keeping Unit (SKU) is a critical factor in optimizing costs. Different SKU types serve various needs: B Series: Ideal for small, non-critical environments with low resource consumption. F Series: Suitable for CPU-intensive workloads requiring high computational power. E Series: Best for memory-intensive applications needing substantial RAM. D Series: A general-purpose SKU that is often the default choice but might not always be the most cost-efficient. Avoiding the default selection of D Series and choosing the appropriate SKU based on specific application requirements can significantly reduce costs and improve efficiency. This image is representing the CPU utilization of Different virtual machines under a particular Subscription. By analyzing the usage, you can define the appropriate SKU for your Virtual Machine. Recommendations: - Choosing correct SKU series: First, start monitoring CPU and memory utilization of virtual machines to identify the exact load on virtual machines. Create a workbook to monitor the utilization or use if there are any tools to monitor the CPU and memory utilization. if the workload is for a small environment and not critical then please use B series. if it is more CPU intensive then choose F series and if it is memory intensive then choose E series. Basis on the load and cost please choose the best SKU, also use the latest version of SKU. For memory intensive Virtual machines i.e. Standard_D16_v3 will cost around $1.504 per hour and moving it to E series i.e. Standard_E8_v5 will cost around $0.872 per hour may lead to save ~ 60 % of cost. Using the latest version of SKU will also lead to save cost i.e. Standard_D16_v3 will cost around $1.672 per hour and using the latest version i.e. Standard_D16_v5 will cost around $1.632 per hour. Databricks VM SKU recommendations Balance cost efficiency and performance when selecting Databricks VM SKUs. Monitor CPU and memory utilization to choose the appropriate series (B for low cost, F for CPU-intensive, E for memory-intensive tasks). Consider upgrading to the latest SKU versions for potential cost savings. Use automation on data bricks VM to save extensive cost. Use reserved instances for 1-3 years to save ~ 60 % cost. Reservations for virtual machines Reserving virtual machines can help optimize resource usage and reduce operational costs. Committing to a reservation plan allows businesses to take advantage of significant discounts compared to pay-as-you-go pricing. This approach is particularly beneficial for workloads with predictable and consistent usage patterns. Auto-shutdown of virtual machines Auto-shutdown of virtual machines saves energy costs and frees resources, enhancing both performance and sustainability. It also limits unauthorized access, aiding in compliance with data privacy regulations. Shutdown and Deallocation of Virtual Machines: - Virtual machines not used for long time can be deallocated to save the extra cost of resources/ components attached to the virtual machine. Virtual machines used for a particular time can be auto shutdown to save the unwanted charges. Orphaned disks (unattached disks) Orphaned Disks: Storage disks that remain unattached to any virtual machine (VM) within the cloud environment, leading to unnecessary costs and resource inefficiencies. Identification and Management Use tools like Azure workbooks to detect unattached disks. Use resource graph explorer query to get the details of orphaned disks. Implement policies and alerts for prompt notifications. Establish routine clean-up practices to either reattach or delete orphaned disks. Efficient management minimizes costs and optimizes resource utilization. Resource Graph queries Below are the resource graph queries that were particularly handy for the storage & VM findings. To find premium disk with read-only caching: resources | where type == "microsoft.compute/virtualmachines" | join kind=inner ( ResourceContainers | where type == "microsoft.resources/subscriptions" | project subscriptionId, subscriptionName = name ) on subscriptionId | mv-expand dataDisks = properties.storageProfile.dataDisks | extend osDisk = properties.storageProfile.osDisk | project resourceGroup, subscriptionName, location, diskName = dataDisks.name, caching = dataDisks.caching, diskType = "DataDisk", sku = dataDisks.managedDisk.storageAccountType | union ( resources | where type == "microsoft.compute/virtualmachines" | join kind=inner ( ResourceContainers | where type == "microsoft.resources/subscriptions" | project subscriptionId, subscriptionName = name ) on subscriptionId | project resourceGroup, subscriptionName, location, diskName = properties.storageProfile.osDisk.name, caching = properties.storageProfile.osDisk.caching, diskType = "OSDisk", sku = properties.storageProfile.osDisk.managedDisk.storageAccountType ) | where caching == "ReadOnly" To find Storage V2 account with Hot tier for cold migration: Resources | where type == "microsoft.storage/storageaccounts" | join kind=inner ( ResourceContainers | where type == "microsoft.resources/subscriptions" | project subscriptionId, subscriptionName = name ) on subscriptionId | project subscriptionName, name, kind, location, resourceGroup, sku.tier, Tier = properties.accessTier, replication = sku.name | where kind == 'StorageV2' and Tier == 'Hot' To find ephemeral & managed disks attached to VMSS (AKS Nodepool): resources | where type == "microsoft.compute/virtualmachinescalesets" | join kind=inner ( ResourceContainers | where type == "microsoft.resources/subscriptions" | project subscriptionId, subscriptionName = name ) on subscriptionId |project subscriptionId, subscriptionName, name, instancesCount = tolong(sku.capacity), location, sku = sku.name, diskSize = properties.virtualMachineProfile.storageProfile.osDisk.diskSizeGB, storageType = properties.virtualMachineProfile.storageProfile.osDisk.managedDisk.storageAccountType, caching = properties.virtualMachineProfile.storageProfile.osDisk.caching, diskType = iif(isnull(properties.virtualMachineProfile.storageProfile.osDisk.diffDiskSettings), "Managed", "Ephemeral") | where storageType contains "Premium" | where name contains "aks" To find the orphaned disks: Resources | where type == "microsoft.compute/disks" | join kind=inner ( ResourceContainers | where type == "microsoft.resources/subscriptions" | project subscriptionId, subscriptionName = name ) on subscriptionId | where isnull(properties.diskState) or properties.diskState == "Unattached" | project name, id, location, resourceGroup, properties, subscriptionId, subscriptionName To find the details of VM: Resources | where type == "microsoft.compute/virtualmachines" | join kind=inner ( ResourceContainers | where type == "microsoft.resources/subscriptions" | project subscriptionId, subscriptionName = name ) on subscriptionId | project vmName = name, vmId = id, subscriptionId, subscriptionName, location, resourceGroup, sku = properties.hardwareProfile.vmSize, osType = properties.storageProfile.osDisk.osType To find the VM details not containing Data bricks VM: Resources | where type == "microsoft.compute/virtualmachines" | join kind=inner ( ResourceContainers | where type == "microsoft.resources/subscriptions" | project subscriptionId, subscriptionName = name ) on subscriptionId | project vmName = name, vmId = id, subscriptionId, subscriptionName, location, resourceGroup, sku = properties.hardwareProfile.vmSize, osType = properties.storageProfile.osDisk.osType | where resourceGroup !contains "databricks" and resourceGroup !contains "adb" References: Azure workbook to find orphan resources - dolevshor/azure-orphan-resources: Centralize orphan resources in Azure environments Azure workbook to find the CPU utilization - Azure Workbooks overview - Azure Monitor | Microsoft Learn1.3KViews1like0CommentsMicrosoft Cost Management: Billing & trust relationships explained
As a Microsoft Cloud Solution Architect supporting our global enterprise customers on FinOps and Microsoft Cost Management topics I am often involved in conversations with customers explaining the different relationships existing in Microsoft Cost Management. In this article I will shed some light on key relationships for commercial enterprise customers to provide clarity. The knowledge provided in this article can be especially helpful for those customers currently planning to transition from a Microsoft Enterprise Agreement contract towards a Microsoft Customer Agreement. Building blocks for Cost Management relationships Before we start looking into the individual relationships, we need to understand the building blocks of these Cost Management relationships: Billing contracts – Enterprise Agreement (EA) and Microsoft Customer Agreement (MCA) providing legal and commercial terms as well as certain technical capabilities like Billing Roles. Microsoft Azure Consumption Commitment (MACC) as a contractual agreement where an organization commits to spending a certain amount on Azure services over a specified period and might gets a certain discount on their usage. Billing roles provided by each contract like Enterprise Administrator or Billing Account Owner to manage the contract. Tenants based on Microsoft Entra ID providing entities access to Billing Roles and Azure Resources Azure subscriptions as containers to deploy and manage Azure Resources at specific cost. Azure customer price sheet (CPS) determining the current Customer prices for specific Azure Resources. Key Cost Management relationships in EA and MCA contracts Customer to contract Customer Organizations can sign multiple contracts with Microsoft. Even though it is generally advised to have a 1:1 relationship between Customer and Microsoft contract, Customer can theoretically use multiple contracts at the same time. Examples Best example for this is during a transition period from EA to MCA, where the customer has an active EA and an active MCA contract. During M&A activities a customer organization might end up with multiple EA or MCA contracts. Contract to price sheet Every contract is associated with a customer specific price sheet determining the individual customer prices in the agreed billing currency. In MCA the default associated price sheet basically equals the Azure Retail price list in USD. The price sheet can be accessed in the Azure portal. Contract to Microsoft Azure Consumption Commitment (MACC) Customers can sign a MACC. There is usually a 1:1 relationship between a contract and a MACC. As a benefit of this commitment, Customers might get discounted pricing on Azure Resources (usage). This potential discount will be reflected in the price sheet associated with the contract. Contract to billing roles Both EA and MCA provide Customers with roles, that can manage certain aspects of the contract. These roles are called billing roles. Billing roles differ from EA to MCA and are described in detail here for EA and here for MCA. A key difference between EA and MCA is, that Customers can associate any valid work, school, or Microsoft account to EA billing roles but only work accounts of an approved tenant for MCA. Contract to tenant To manage billing roles customers must associate exactly one Entra ID tenant with the contract. This happens at contract setup. Identities within this Tenant can be assigned to billing roles within the contract. Example User Dirk from the contoso.com tenant can be assigned to the EA admin role in Contoso’s EA contract. In MCA this tenant is called the primary billing tenant. Only users from this tenant can be assigned to billing roles within the MCA contract. CAUTION: The tenant global administrator role is above the billing account administrator. Global administrators in a Microsoft Entra ID tenant can add or remove themselves as billing account administrators at any time to the Microsoft Customer Agreement. If you want to assign identities from tenants other than the primary billing tenant, you can add associated billing tenants. NOTE: Even though customers should strive for a single tenant, there is no restriction in how many tenants a customer can create within a contract. Contract to subscription An Azure subscription is a logical container used to provision and manage Azure resources. Resource access is managed by a trust relationship to an Entra ID tenant and billing is managed by a billing relationship to a Microsoft contract (EA or MCA). Every subscription can only have one billing relationship to one contract. This billing relationship can be moved to a different contract based on certain conditions (e.g. in EA/MCA transition scenarios or M&A scenarios). Every contract can manage 5000 subscriptions by default. NOTE: The billing relationship determines the prices for the consumed resources within the subscription. If you have a subscription that is associated with a contract that uses Azure retail prices you pay the retail price. If the associated contract has customer specific prices (e.g. by signing a MACC with applicable discounts), the resources within this subscription will be charged at these prices. Subscription to tenant Every subscription has a 1:1 trust relationship to an Entra ID tenant. This trust relationship determines, which identities can manage the resources within the subscription. Tenant to subscription Every tenant can manage trust relationships with virtually unlimited number of subscriptions. These subscriptions can use billing relationships to multiple contracts which might lead to different prices for resources deployed to these subscriptions. Example Contoso is using a single Entra ID tenant, has just signed a new MACC agreement and is migrating to MCA. At signing the MCA contract, the MACC is associated with the MCA account and not with the EA contract. During an EA to MCA transition period, some subscriptions still have a billing relationship to the old EA contract and others are already moved to the MCA contract. In this situation the same VM in the same region might be charged differently, depending on the subscription the VM is deployed to. If the subscription is still using the EA billing relationship, the price might be different (e.g. due to lack of applied discounts). Summary & key takeaways Relationships on a page Let’s summarize the described relationships: Fully understanding the described relationships can be very helpful in a variety of scenarios, especially when you are currently discussing the transition from an Enterprise Agreement contract towards a Microsoft Customer Agreement. Key takeaways Three key takeaways: Tenants do not determine the price of an Azure resource! Only the billing relationship between a subscription and a contract determines the price of a resource! Customers can use multiple tenants to manage their Azure resources. Only for managing billing roles there is usually a 1:1 relationship between the contract and an Entra ID tenant. Next steps If the provided information was helpful for you: Share this article within your FinOps, Finance and Cloud Competence Center teams. If you need in-depth support for planning the proper relationships and billing structures for your organization, please reach out to your local Microsoft representative. If you have a unified support contract, you can ask your Customer Success Account Manager (CSAM) to reach out to our global team of FinOps experts from the Culture & Cloud Experience (CCX) practice. This article lays the foundation for an upcoming post about how to manage the transition from EA to MCA from a FinOps perspective.767Views4likes1CommentLearn to manage investments and cost efficiency of Azure and AI workloads
As your business and workloads grow, cloud costs can increase. That’s why it’s vital to learn to manage investments and cost efficiency in every step of your Azure workloads, empowering your team with the right skills to manage cloud spending. With self-paced learning in our new Plan on Microsoft Learn titled Manage Azure and AI investments for Cost Efficiency, you’ll be guided through learning milestones to help you build financial best practices into your AI and cloud computing management process and build a culture of cost efficiency. In this blog, we’ll share what you’ll learn in the modules of this Microsoft Learn Plan and show you how to put learning into action with Azure tools that help you combine pricing offers, create a customized cost efficiency plan, and monitor your costs. Azure savings plans help The Carlsberg Group Many industry leaders are already taking advantage of savings plans to help them design and manage cost-optimized workloads across their whole organizations. Take the Carlsberg Group, who built cost efficiency into their migration process resulting in significant savings. With a presence in 150 markets, multinational brewer The Carlsberg Group required a cloud migration process with zero downtime to avoid any production slowdown. By taking advantage of Azure pricing offerings, not only did they save between 40-65% on compute services, but they also built a culture of cost efficiency using FinOps principles and Azure cost management tools. Build a cost efficiency culture with FinOps Learning FinOps best practices gives your organization autonomy over your financial health, allowing you to manage and optimize your cloud spend. FinOps best practices spread cost efficiency responsibilities across your entire organization and requires skilling to be effective. “The solution supports financial awareness,” said Sonal Gupta, Senior Manager of FinOps and Hosting Service Delivery at The Carlsberg Group. “Everyone feels accountable for their cloud spend and avoids additional costs. We can budget and forecast, investing in just what we need, without cost spikes.” With the FinOps focused modules in our Plan on Microsoft Learn, Manage Azure and AI investments, you’ll explore how to get started with FinOps and then apply your learning to adopt FinOps principles on Azure. With an interactive guide in the Microsoft Learn modules, you’ll see how to manage cost and usage in the Azure Portal. Learn about opportunities to save Beyond FinOps best practices, Azure offers a variety of cost-saving options, from Azure Reservations to Azure Savings Plan for Compute to Azure OpenAI Service Provisioned Reservation, that allow you to optimize your cloud budget based on your workload needs, and Azure Hybrid Benefit, that builds savings into your migration process. Let’s look at each offering and see how to best match them to your business needs. Azure Reserved Instances Azure Reserved Instances are a great way to lock in a price and save for your compute workloads that are stable and have specific requirements like VM type or region. The Carlsberg Group, for example, optimizes Azure costs through a strategic mix of three-year Reserved Instances for stable workloads, one-year Reserved Instances for moderately flexible needs, and three-year Savings Plans for dynamic or seasonal requirements. Learn more with the “Save money with Azure Reserved Instances” module, with guidance on: How to use Azure Advisor and the Cost Management app to identify use patterns and get purchase recommendation. View and manage your reservations on Azure Create and analyze reports Azure Savings Plan for Compute For customers that want to save on their workloads but need flexibility across their compute resources or regions, Azure savings plan for compute is a great way to optimize spend. Learn more about Azure savings plan for compute with the “Purchase Azure savings plan for compute” module, which will guide you through: Determining if Azure Savings plan for compute matches your business needs Preparing for and purchasing Azure savings plan for compute Managing and monitoring Azure savings plan for compute Azure Hybrid Benefit Azure Hybrid Benefit is an Azure offer that allows organizations to maximize savings in their migration journey by giving a discount on server licenses and subscriptions and granting outsourcing and hybrid capabilities. The skilling module provides you with step-by-step guidance on how to use AHB, including: Identifying if you are eligible for AHB and understanding how it can benefit you Understand how to apply and manage AHB Combine AHB with other savings programs to get the best price Azure OpenAI Service Provisioned Reservations For Azure OpenAI Service customers, provisioned reservations are an opportunity for additional savings. Customers can save up to 70%* compared to pay-as-you-go with Azure OpenAI Service provisioned reservations. You can learn how to use PTU reservations with the “optimize spend and performance with Azure OpenAI Service provisioned reservations” module. It is designed to help you: Chose when to use a provisioned model Decide how many PTUs to reserve Manage and deploy your reservations Monitor costs with Microsoft Cost Management Cost information is an important factor for any cloud decision and Microsoft Azure has tools to help you pick the best offerings for your organization and continually monitor and optimize them. Learn how to make informed budget decisions with cost management training on: Cost management on Azure: Use the pricing calculator to estimate the cost of your workloads on Azure. Learn the functions of Microsoft Cost Management like monitoring your budget and sending you alerts when you are close to exceeding it and visualizing your Azure spending. Use resource tags to organize your cloud resource and manage costs. Introduction to analyzing costs and creating budgets with Microsoft Cost Management: Apply cost management principles using Microsoft Cost Management. Learn how to use cost analysis to find trends in your cloud spending. Build a budget and create alerts to help you manage your expenses. Get started Whether you’ve just started your migration journey or want to reduce your cloud costs, Azure has cost savings offerings and trainings. Manage Azure and AI investments Learn Plan walks you through building a FinOps culture, selecting and combining Azure strategic pricing offerings, and using Microsoft Cost Management to monitor and manage your budget. _________________________________________________________ * The 70% savings is based on the GPT-4o Global provisioned throughput hourly rate of approximately $1/hour, compared to the reduced rate of a 1-year reservation at approximately $0.3028/hour. Azure pricing as of January 1, 2025 (prices subject to change. Actual savings may vary depending on the specific Large Language Model and region availability.)538Views3likes0CommentsMicrosoft Cost Management updates—March 2025 (summary)
Here's a quick run-down of the Cost Management updates for March 2025: Optimizing Azure Kubernetes Services (AKS) costs Cost Management AWS connector deprecation Exchange of Azure OpenAI Service provisioned reservations Help shape the future of cost reporting Documentation updates for shared billing meter regions, EA invoices, Microsoft Entra ID Free, and Fabric capacity reservations. This is just a quick summary. For the full details, please see Microsoft Cost Management updates—March 2025.413Views0likes0CommentsMicrosoft Cost Management updates—February 2025 (summary)
Here's a quick run-down of the Cost Management updates for February 2025: Cost details datasets now include AccountId and InvoiceSectionId columns to support more cost allocation scenarios. Note: These columns are already available in FOCUS exports. Copilot is now one click away from the Cost Management overview with new sample prompts that can help you get started with Copilot for Azure. Learn about the FinOps Open Cost and Usage Specification with the Learning FOCUS blog series. New ways to save money with Microsoft Cloud: Generally available: Changes to instance size flexibility ratios for Azure Reserved Virtual Machine Instances for M-series. Generally available: Azure NetApp Files now supports minimum volume size of 50 GiB. Public preview: Reduce costs with Hibernation in Azure DevTest Labs. Public preview: Troubleshoot disk performance using Microsoft Copilot in Azure. Public preview: Azure Monitor integrates performance diagnostics for enhanced VM troubleshooting. Public preview: Introducing the new AKS Monitoring Experience—Unified Insights at your fingertips. Documentation updates for Cost Management API modernization, programmatically creating MCA subscriptions, and more. This is just a quick summary. For the full details, please see Microsoft Cost Management updates—February 2025.517Views0likes0Comments