Google App Engine request cost estimation

121 views
Skip to first unread message

Xavier Sanchez

unread,
Nov 29, 2011, 12:23:10 PM11/29/11
to google-a...@googlegroups.com

I'm trying to estimate the cost of requests in a prototype app deployed in Google App Engine (free, not billing enabled) and I'm having some questions and issues. Right now, just to see if I could get things working I've just deployed some JSPs that generate some HTML.

Issues:

  1. I'm logged as an admin but not getting the "X-AppEngine-Estimated-CPM-US-Dollars" header on JSP responses. Does this only work for explicitly registered servlets?
  2. I'm getting the "cpm_usd" value on admin console logs view, but not on dowloaded logs. Is this value valid? Anyone got it compared with the one on the headers?
  3. How does static files cost work? I get mostly the same "cpm_usd" value independently of file size or response code (200 or 304). I have not defined a caching policy yet.
  4. The "Quota Details" page says I have consumed 1% of my free "Incoming Bandwidth" but 0% of "Outgoing Bandwidth". That's just impossible. Only explanation I found is that there's a bug and the values are interchanged.
  5. It seems that full uptime instance time (with those extra 15 min) is only considered for billing, as my consumed free quota for that is 0% (so it must be processing time). Is that correct?

More general pricing questions:

  1. About Reserved/Prepaid Frontend Instances: how do you "purchase" them? How do they go along with the free 28 hours? Are resident frontend instances (minimum idle instances) paid as reserved? Shouldn't they be?
  2. About Backends: the free part is 9 hours or $0.72? (it's not the same depending on the backend class)

Finally, if someone has any good advice, strategy or formula for estimating costs on GAE, they are very welcome to share them.

Thank you.

Brandon Wirtz

unread,
Nov 29, 2011, 3:56:23 PM11/29/11
to google-a...@googlegroups.com

Like determining the TCO of any software, scalability and resource consumption estimation is a function of your dev team more than the platform.

 

You have to look at things your dev team has done on the platform and estimate based on that performance. Not on what others tell you, you can do something in.

 

DataStore for example you pay per transaction.  If you don’t optimize your queries what I can do in 3 operations might take you 9. Performance wise you might not even see the difference. 30ms difference per request on a 1200 ms per request app, but my cost would be 20% lower than yours.

 

Bandwidth In vs out, Well you don’t pay for the IN any more that’s free these days.  But lots of apps use more In than out. If you post data via a form and return something back chances are the Up was uncompressed and the down was gzipped considering text compresses about 70% you would have to up ¼ as much as you down for the numbers to be equal.

 

If you want to estimate your costs you need to outline your program logic, count the Datastore Ops that will be a lot of your budget, Determine how many users per second you are going to serve, and how fast you want those served for the Instance hours.   If you need 8 request per second and each request takes 2 seconds you need at least 16 instances if you don’t have concurrency, for estimation assume you don’t so that you have a worst case scenario.

--
You received this message because you are subscribed to the Google Groups "Google App Engine" group.
To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/tj2cUyryGlEJ.
To post to this group, send email to google-a...@googlegroups.com.
To unsubscribe from this group, send email to google-appengi...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.

Reply all
Reply to author
Forward
0 new messages