I see a lot of questions online about Microsoft Fabric reserved instances—on LinkedIn, Reddit, in chat groups. There seems to be quite a bit of confusion about how they work and how they relate to Fabric capacities.
So let’s clear this up. In this post, I’m going to explain what reserved instances are, how they differ from capacities, and how you can use them to save approximately 40% on your Fabric costs.
Fabric Capacities vs Reserved Instances
Let’s start by understanding what each of these things actually is.
What Is a Fabric Capacity?
A capacity is a compute resource. It’s the piece of compute power—the hardware, if you will—that your Fabric workspaces run on.
A Fabric workspace is joined to a capacity and runs on that capacity. Think of the capacity as basically the virtual machine that your Fabric workspace is running on.
A Fabric capacity goes against your pay-as-you-go bill. This is the bill you get every month from Azure with all your cloud services usage—things like Fabric capacities, virtual machines, blob storage accounts, and so on.
You can buy a Fabric capacity in powers of two. So you can have an F2, an F4, an F8, and so on. It doubles every time. The number stands for the number of Capacity Units (CUs) that you get with that capacity.
What Is a Reserved Instance?
Now, here’s the important bit. A reserved instance is just a billing concept.
A reserved instance is not a special capacity that you can get. It’s something that Fabric doesn’t even know exists. It only exists in the Azure billing part, not in any compute allocation or whatever.
Let me repeat that: Fabric doesn’t know it exists. It is just a billing concept.
Essentially, a reserved instance is prepaid compute. When you buy the reservation, you buy an upfront commitment for a year to pay for a certain number of Capacity Units.
These Capacity Units are deducted from your pay-as-you-go bill. So you still have your regular Fabric capacity—your F2 or F4 or whatever F-number you have. The reserved instance CUs that you prepaid will be deducted from your PAYG bill.
You prepay for a year, either upfront or monthly. If you prepay monthly, you still have at least a yearly commitment. You cannot just stop billing.
Here’s something interesting: you can buy reserved instances per one CU. That means you can buy five CUs in a reserved instance. You cannot buy an F5 Fabric capacity, right? You have to buy an F4 or an F8, not an F5.
The price of your reserved instance is approximately 40% lower. That’s actually quite significant.
The Important Rule
One thing that is very important and sometimes forgotten: both the reservation (the reserved instance) and the Fabric capacity must be in the same Azure subscription, or it will not work.
How Reserved Instance Billing Works
Let me walk you through a few examples to show how the billing actually works with reserved instances.
Let’s assume we have a very small Fabric environment. We have two Fabric CUs in our reserved instance, and it’s prepaid for the year, so we don’t have to think about it.
Scenario 1: F2 Capacity for the Full Month
What if we have an F2 capacity that is on for the full month?
We have used two CUs for 30 days, which equals 60 Capacity Unit Days (CUDs). We also prepaid for 60 CUDs because we prepaid for those two CUs for the 30 days in the month.
Our total pay-as-you-go bill will be nothing. We pay the 40% discount rate on the reserved instance. We do not pay anything at the PAYG rate.
Scenario 2: F2 Scaled to F4 for 2 Days
Another scenario would be having an F2 capacity that is on for the full month, but scaled up for 2 days to an F4 capacity.
We will have used two CUs for 30 days and two additional CUs for 2 days. Mind you, we do not use four additional units for those two days because we already have the base capacity. We only bump up an additional two CUs.
In total, we will have used 64 CUDs during that month. We prepaid for 60 CUDs. So our total pay-as-you-go bill will be 4 CUDs.
Those 4 CUDs will be billed at the PAYG rate, which is the full rate, not the discounted rate you’re paying with the reserved instance.
Scenario 3: Adding a Second F4 Capacity
The last scenario: F2 capacity being on for the full month, and then we spin up another F4 capacity. Not the existing F2 upscaled to an F4—no, it’s a new capacity at F4 that we run for 5 days, then pause and delete.
We will have used two CUs for 30 days (the full-month F2 capacity) and four units for 5 days (the F4 for 5 days).
In total, we will have used 60 + 20 = 80 CUDs. We prepaid for 60 CUDs. So our total pay-as-you-go bill will be 20 additional CUDs, and those will be charged at the PAYG rate.
A Quick Note on Billing
Mind you, in these examples I noted usage in days. Actually, Fabric is billed in minutes, not days. It’s just that days are easier to explain.
Keep in mind that your Fabric capacities are billed by the minute. As soon as you start or resume the capacity, the meter starts running.
How to Create a Reserved Instance
Let me show you how to actually create a reserved instance in the Azure portal.
In my Azure portal, I have my playground with lots of testing stuff—Fabric, databases, VPNs, and so on. I have my “That Fabric Guy Demo” capacity here. It’s paused at the moment, and it doesn’t really matter that it’s paused.
What we’re looking at is an F2 capacity. Whether it’s paused or not doesn’t matter. The meter runs when we resume or start the capacity.
This has nothing to do with our reserved instances, right? The billing goes through the capacity, and the compute goes through this capacity as well. As soon as we resume it, we’re able to use this capacity and the workspaces running on it.
Those minutes (those Capacity Unit seconds) are billed to the Azure subscription. Only after that is done, we look at how many reserved instances we had and how many CU seconds can be deducted from the PAYG rate.
Finding Your Reservations
Now let’s look at how we can find the reservations. It’s actually very easy.
Look at the big search bar at the top of the Azure portal and search for “Reservations”. When you start typing, you’ll see Reservations with a nice clock icon.
On this screen, you’ll find your existing reservations. In my case, I have a reservation for Fabric capacities with auto-renewal set to on, a quantity of two, and it’s 100% used over the last day and the last 7 days.
This tells us whether we’re actually using our reserved quantity. Let’s assume we would pause our capacity, start it again, pause it again, start it again—if those are the only two CUs we’re using, then the reservation would have a lower than 100% utilization rate. We wouldn’t be making full use of our prepayment.
Now, we get a 40% discount. So a little under 100% is still fine. As long as we’re not dipping below maybe 60-70% utilization, we’re still in the green. We’re still paying less than what we would have paid in a fully pay-as-you-go system.
Creating a New Reservation
If you want to create a new reservation, click on “Add”. You’ll find the service you can create a reservation for.
As you can see, it’s not just Microsoft Fabric. There are lots of things you can reserve—virtual machines, SQL databases or managed instances. There are many Azure services you can reserve for a discount.
Click on Microsoft Fabric. In here, you can configure your reservation.
You have to set the region to the region where you have your capacities. I set it to West Europe. It can be any region you’re working with.
Select one of the products, and it will start loading the price. I’ve chosen the one-year upfront option, and it gives us $1,146 (even though we’re in West Europe, we pay in dollars). That’s a 40% estimated saving.
If we click on monthly billing frequency, it gives us $95.50 per month. Mind you, this is exactly the same price as the yearly upfront option.
If you want less administrative hassle, go for the upfront option. If you want to preserve your cash flow a little bit, it doesn’t hurt to go with monthly. It’s just that you get a monthly bill instead of a yearly bill—a little bit more work.
What About Three-Year Reservations?
You might think that a three-year capacity would give you more discount than a one-year capacity.
Indeed, you’re right. It’s a 41% estimated saving. So there’s really no significant benefit at this time for a three-year reservation.
I know that for some Microsoft services like virtual machines, sometimes a three-year saving can bump your savings from 40% to maybe 60%. For Fabric, it doesn’t make sense at this time to get a three-year reservation.
The only way it makes sense is if prices go up in the future. Then you might buy the same reservation next year and the year after at higher prices. A three-year reservation might have locked you in at a lower price today.
Completing the Purchase
From here, if you’ve selected a product and waited for the price to load, you can add the product to the cart.
You’ll see the recommended quantity is set to zero. If you have an active Fabric capacity without a reservation, it will actually show a number that Microsoft advises you to buy a reservation for. In my case, I already have a reservation covering my entire Fabric capacity, so the recommended quantity is nothing.
Click “View Cart” and you’ll see your shopping cart. It’s really just shopping around for a software reservation.
You can give it a name, toggle auto-renewal on or off, choose the billing frequency (upfront for the year or monthly), and set a quantity.
As you can see, you can buy one CU in a reserved instance. You can buy nine as well. This makes sense if you have a capacity that scales up and down—you might be able to buy a reservation at that midway point.
Do your calculations, do the math yourself, and make good use of the flexibility you get here.
Once you’ve purchased the reservation, it’s active instantly. From that moment, from that minute on, it will be covering all your usage in your Fabric capacities.
Wrapping Up
I hope this made things clearer. Fabric reservations should be clear by now. It’s not a difficult topic, but it is a very important one to keep costs under control.
Remember: reserved instances are just a billing concept that gives you approximately 40% discount on your Fabric compute costs. They must be in the same Azure subscription as your capacity, and they’re billed in minutes.
If you’re running Fabric capacities for more than 60-70% of the time, reserved instances make financial sense.
Are you using reserved instances for your Fabric environment? What’s your experience been? Let me know in the comments below!