I've been reading various documentation around this and was not able to clearly confirm my understanding, we are evaluating Azure Functions Premium Plan and want to have a clearer understanding on the costs.
My understanding is as follows:
In a Premium Plan, we can configure the minimum instances, and the burst size. This is min and max size of a reserved pool of Premium Plan instances (say it's SKU EP2). Let's say I set minimum instances to 3, burst size to 10.
The configured minimum (in this case 3) means there are 3 EP2's running at all times that I'm paying for even if they are not doing anything.
On my Function App, I specify that I want 2 pre-warmed function instances. I'm also paying for these to be pre-warmed and waiting for requests.
Requests start coming in, and now I'm also paying for the execution time (by cores and memory used) in the pre-warmed instances.
Is my understanding above correct? Would the total costs associated here be the following:
(3 EP2 fixed cost + up to 10 EP2 max burst) + (2 pre-warmed instances + additional Consumption instances) + (request executions)
How are we charged for the pre-warmed instances?
You need to pay for the Minimum Instances
, whether they run or not: https://docs.microsoft.com/en-us/azure/azure-functions/functions-premium-plan#plan-and-sku-settings
, The pre-warmed instances
is in the range of the Minimum Instances
. After exceeding the Minimum Instances
, the Premium plan will be expanded and charged like a consumption plan, and the instance buffer will no longer be retained.
Taking your example as an example, the cost of the Minimum Instances
3 must be paid (please consider this as a fixed cost), and the excess is charged according to the consumption plan. A tool to calculate costs: https://azure.microsoft.com/en-us/pricing/calculator/?service=functions#functionse9e50b69-a40b-49cf-acac-83786868417a
The above is the fee for the Minimum Instances
of the premium plan and the fee beyond the Minimum Instances
. In addition, for the Function, you have other charges that you need to pay attention to, otherwise it may bring unexpectedly large cost consumption.
The first is a deposit account. Each feature application requires you to have an associated universal Azure storage account, which is billed separately. This account is used internally by the Functions runtime. Function needs to be bound to a deposit account when it is created. Its use is divided into two parts. One part is to pass your function to the file share during deployment, this part is often negligible; the other part is the cost of using storage resources during your function operation.
The second is Application Insights. Function relies on Application Insights to provide a high-performance monitoring experience for your functional applications. He is not required. Related fees: https://azure.microsoft.com/en-us/pricing/details/monitor/
The third is the data transmission between different areas. You can avoid this by creating Azure services in the same region. If you accidentally formed a data transfer situation from one area to another, then there will be network bandwidth charges: https://azure.microsoft.com/en-us/pricing/details/bandwidth/
The final cost should be: the Minimum Instances
3 that must be spent + the consumption plan cost beyond the Minimum Instances
+ the cost of the storage account + the Azure Monitor cost + the network bandwidth cost (if the same region, this consumption is 0)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With