2
votes

I have an ASP.NET web app that I've been running in AppHarbor until now.

I'll like to move it to Azure. The site is used only a few hours a month.

Is deploying the app to App Service will bill me only for the time the site was used (like Google App Engine) or will I be billed for the whole month regardless of how many hours the app was actually been used?

This is App Engine pricing model with the important quote of

services are billed at hourly rates based on uptime. Billing begins when an instance starts and ends fifteen minutes after a manual instance shuts down or fifteen minutes after a basic instance has finished processing its last request.

3

3 Answers

1
votes

Is deploying the app to App Service will bill me only for the time the site was used (like Google App Engine) or will I be billed for the whole month regardless of how many hours the app was actually been used?

You will be billed for the number of hours the app has been deployed. You're not billed for the number of hours the app is actually used by the users. If you know the time during which your app will have to be online, you can deploy it for that duration only and once the work is done, you can simply delete that deployment.

Other thing you could do is deploy the app in "Free" mode. There Azure restricts the usage of the app but as long as you're in those limits, you will not be charged anything for that app.

0
votes

So no equivalent to AppEngine pricing?

As far as I know, the azure web app will billed only for the hour the app service plan was used.

Azure provides multiple service plan tire. One service plan could run multiple web application services.

For example, the basic web service plan is like below:

enter image description here

If you run the B1 web service plan half a month, it will cost 22.9$.

Besides, the app service plan support scale out. If you scale out to 2 instances. It will cost 111.6$ per month.

More details, you could refer to below article:

App Service Pricing

Azure App Service plans in-depth overview

0
votes

TLDR: The previous answers seem correct, but are worded in a way that's misleading. Both services charge based on usage, but Google has a level which lets you scale usage down to 0 and Microsoft Azure doesn't. This makes Google MUCH cheaper for apps with intermittent usage (though scaling to 0 can introduce a startup delay). Apps that have a minimum scale (i.e. must keep instances running constantly) would be much more comparable between services.

Long version: As of mid-2021, the Azure pricing is not comparable to Google for intermittent usage. You are indeed charged only for your usage in both cases, but Google has a tier which allows the app to turn off, whereas on any non-dev/testing tier Azure lets you scale down to only 1. The Microsoft sales rep pointed me to this page, with this FAQ question at the bottom:

Question: Am I charged for apps while they are in stopped state?

Microsoft Answer: Yes. Rates listed apply to apps in stopped state. Please delete apps that are not in use or update tier to Free to avoid charges.

This means you get charged for every hour of the day even if you manually stop your apps. i.e. if they're not deleted you're getting charged.

By comparison, Google notes:

When an application is not being used at all, App Engine turns off its associated dynamic instances, but readily reloads them as soon as they are needed. Reloading instances can result in loading requests and additional latency for users.

and the pricing page explains about instance hours (the unit for which you are charged):

Accrual of instance hours begins when an instance starts and ends as described below, depending on the type of scaling you specify for the instance:

Basic or automatic scaling: accrual ends fifteen minutes after an instance finishes processing its last request. Manual scaling: accrual ends fifteen minutes after an instance shuts down.

Scaling to 0/off seems to be available only for the Basic scaling type in App Engine though; Automatic scaling is more comparable to Azure since Google notes:

An instance of an auto-scaled service is always running.