I'm trying to understand how to interpret the Azure Calculator for different resources. In this case I am looking at the Azure Cloud Service
resource.
At some point it says:
1 Virtual Machine x 730 hours = $137.24
I understand that there are ~730 hours in a month.
From what I have read they say that if you need the resource to be 100% available, then fill in 730 hours.
But what do they mean with "available"?
Of course I want my Cloud Service application (Web role) to be 24/7 available. But it won't be receiving calls (http requests) every minute of the day. Does this make any difference?
Let's assume the following:
- The Web Role app will process an HTTP request in exactly 1 second
- It will receive exactly 3600 calls per day
- Which is a total of 1 hour of processing per day
- Which results in a total of 30 hours of processing per month
Does that mean I can change the "Hours" part in the calculator to "30 Hours" to get a more realistic calculation?
Of is that not how it works?
CodePudding user response:
The way to understand pricing for Cloud Services is to look at the duration for which Azure has provisioned the resources for you and not how those resources are utilized.
When you deploy a Cloud Service, Azure provisions some VMs (resources) for you and you are charged for the amount of time these VMs are provisioned.
This falls more under the Consumption
model where you are charged for the resources you (as Azure customer) consumed and not how your customers consumed the services making use of those resources. Majority of the Azure services fall under this model.
Other model is the Serverless
model where again you are charged for the resources you consumed however the resources are deployed on demand and destroyed (in a way) when there is no demand for those resources. Azure Functions is a great example of this model.
Coming back to your question, 730 hours is a more accurate way of calculating the pricing for Cloud Services even though the resources may only be used for a portion of that time.
If you have to go with Cloud Services, a way to reduce the cost would be to provision and deprovision the resources on demand. That would mean creating the deployment when you need it and delete it when you don't. However a better solution for this kind of scenario would be to go with something like Azure Functions where Azure takes care of this provisioning/deprovisioning for you.