Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 9 years ago.
Improve this question
I'm trying to estimate the pricing for a messenger iOS/Android app running under Google App Engine. However, the pricing info here doesn't really give me any usable information.
I plan on building the messenger via the XMPP API, but I will also share photos, conduct searches etc. I'd be able to calculate/guess the amount of messages, their sizes and the sizes of the photos, however I don't really understand the concept of Frontend Instance hours and how to estimate them.
Data to calculate with
100 000 users (profile with images - together cca 3 MB)
80 messages per user per day
2 photos per user per day (photo size: 200 KB)
Services (APIs)
Datastore API/High replication data storage (for sending pictures, user profiles)
Search API (searching for users)
Blobstore API (to store images in the user's profile)
XMPP API (messenger)
Now here is where it gets tricky for me... Does the XMPP per stanza price also add to the Instance Hours and Out/In network traffic? And what about the other APIs?
If I can approximate the number of requests, can I calculate the number of needed Instance hours?
The most important thing to realise - do I need to calculate the HOSTING (in/out traffic, instance hours, datastore) and API (XMPP, Search, Datastore) prices separately or are they inclusive? Meaning that for example for every message I will be charged twice, the XMPP stanza price and the in/out traffic price, or does the XMPP stanza price already contain all other costs (traffic+instance hours)?
As far as I researched, this isn't really explained in any of the documents. Most of the others trying to estimate the price just ended up with the trial & failure method - launching their system and observing the approximate monthly price... However that is not good enough for me :)
Out/In network traffic
XMPP:
https://developers.google.com/appengine/docs/python/xmpp/#Python_Quotas_and_limits
Network quota:
https://developers.google.com/appengine/docs/quotas#Requests
When the application will execute your code, then it will consume Instance Hours. Number of Instance Hours will depend on how complex the code. Max HTTP request is 60sec for Frontend Instance.
So, HOSTING and API prices are separately.
Tip 1: Start by calculating the cost of a single event (photo, message, etc).
Tip 2: From my experience the most difficult is estimate Datastore reads/writes and storage (in our app huge part of storage are indexes).
Related
I have a question about Gmail API limit.
About "Daily Usage" Quota of the URL below, Is this a per-project limit?
Is there a way to relax this limitation?
https://developers.google.com/gmail/api/v1/reference/quota
We currently develop services using the Gmail API for multiple Bussiness companies.
There is concern that it will exceed when the assumed total number of users becomes large, and I am asking such a question.
Is it possible to create different project for each customer and avoid the limit?
In that case, do I have to apply "OAuth Developer Verification" for each project?
https://support.google.com/code/contact/oauth_app_verification
Understanding the quotas can be a little hard. The way i remember is if the name has user in it its a user quota
This one is project based.
Daily Usage 1,000,000,000 quota units per day
This one is user based.
Per User Rate Limit 250 quota units per user per second, moving average (allows short bursts)
Some quotas can be increased you should check the quota section of the google developers console. under Enabled APIs and services click the api in question and go to the quotas tab in the new window. if there is a pencil icon you can increase it.
I am sorry if this is not the right place to ask this question, but Google has moved customer support for Bronze Tier to Community Forum aka Stackoverflow... So here I am, stuck with a bill that I can't figure out. Just to give you the context, I am running an Android app sending videos averaging 2 megabytes per video to users. There are around 70 daily users downloading 2 videos a day.
Image here: http://postimg.org/image/cytlw3rzx/ (Sorry I don't have 10 reputation yet)
As you can see, there are supposedly 516 Gibibyte of Cloud Storage Download APAC. However, I only have around 150 megabytes of data stored on the cloud. So it is mathematically impossible to have such traffic over this period of time. On top of this, here is the Usage History which suggests totally different usage.
Image here: http://postimg.org/image/5h1tzl49f/
Please help if you have any idea what is going on as I am stuck with no customer support and no helpful information on the internet...
The usage history you posted (your second picture) is only for the App Engine application, but does not include Cloud Storage usage. It also does not include any usage you may make of Compute Engine, Big Query etc.
That is why the usage history shows less than 1$ per day whereas your final bill shows additional charges for Cloud Storage.
You can ask billing-related questions to the Cloud Platform billing team here : https://support.google.com/code/contact/cloud_platform_billing
You can also find more info on your current usage here :
https://console.developers.google.com/project/YOUR_PROJECT_ID/billing/unbilledinvoice
If you have doubted about how your cloud storage buckets are used, set up access logging as explained here.
Greetings,
I'm creating a multi-player android game and thought it would be a interesting idea to have App Engine handle the server work.
The game consists of 4 players, each phone requests an update every 0.5 seconds.
These requests are very simple and lightweight so i shouldn't be over reaching any free quotas.
The problem i found was that App Engine only handles 500 requests per second, i would only be able to
have around 60 game sessions active before App Engine will start ignoring new requests?
"App Engine's quota system allows for efficient applications with billing enabled to scale to around 500 queries per second (qps) or more than 40 million queries per day."
Or should i just not use this platform because it is not made for this kind of usage?
I sent this same question to the discussion groups on google but after 4 hours it hasn't been posted, there was no response on whether it was a bad question or anything. Hopefully someone here can give me some advice.
Thank you kindly, i'm looking forward to an answer and or advice.
Greetings,
Rohan C
That's an interesting question, considering the only page where I can find that quote contains the answer in the same paragraph.
http://code.google.com/support/bin/request.py?contact_type=AppEngineCPURequest
App Engine's quota system allows for
efficient applications with billing
enabled to scale to around 500 queries
per second (qps) or more than 40
million queries per day. This is a
substantial amount of traffic and
should easily suffice for even the
heaviest of Slashdottings. But if you
expect your application will need to
handle even higher qps, please
complete this form so we can assist
you.
I've chosen google-app-engine because of its scalability, and now I try to understand how much I will have to pay once I release the product.
I've looked back and forth in the google app engine documentation to find an answer for question and couldn't find. I found few details in the "Quotas" page, I found how much I can get for free and how much is the Billing Default Quota.
In Billing Page there are number for CPU, etc with Resource and Unit and how much it cost. But no where could I find how much will it cost me per channel calls/created, etc.
I can't even try to make calculations with what's in the Admin console, because the current numbers there now are 0 (since there are 2 users which are the programmers).
How can I be ready for the releasing of the product that (hopefully) will have a huge number of channels created daily?
Is there a page I missed, or is there a tool for calculating?
Thanks!
EDIT:
Moishe, thanks for the quick and readable answer. So here are some more questions:
1. Do you think - if needed - that I will be able to get even more quota for the number of channels? I saw there's a special form to ask for more quotas, but I'm not sure that includes the Channel-API feature...
2. Are there any posts you've made for "how to use channel-API efficiently"? I saw some stuff about reusing the tokens per user. Is there more?
Thanks again.
Creating a channel costs about 2.7 CPU-seconds. A CPU-hour costs $0.10. So, each channel created costs
(2.7 / 3 600) * $0.10 = $7.5 × 10^-5
So creating 1000 channels will cost $0.075, or 7.5 cents.
You'll also get charged the normal outgoing bandwidth costs for any data sent over a channel.
The CPU cost probably isn't the biggest concern; you're more likely to run into quota caps then running out of money. Paid apps are limited to 86400 channel creations/day (1/second).
Could somebody give a good explanation for newbie, what does following phrase means:
1) workload throttling within a single cluster and 2) workload
balance across multiple clusters.
This is from overview of advantages of one ETL-jobs tool, that helps perform ETL (Extract, Transform, Load) jobs on Redshift database.
Many web services allocate a maximum amount of "interaction" that you can have with a service. Once your exceed that amount, the service will shift in how it completes its interactions.
Amazon imposes limitations on how much compute power you can consume within your nodes. The phrase "workload throttling" means that if you exceed the limits detailed in Amazon's documentation Amazon Redshift Limts, your queries, jobs, tasks, or work items will be given lower priority or fail outright.
The idea is that Amazon doesn't want you to consume so much compute power that it prevents others from using the service and, honestly, they don't want you to consume more power than it costs them to provide.
Workload throttling isn't an idea exclusive to this Amazon service, or cloud services in general. The concept can be found in any system that needs to account for receiving more tasks than it can handle. Some systems deal with being overburdened differently.
For example, some systems will defer you to alternate services in the case of a load balancer. 3rd party data APIs will delegate you a maximum amount of data per hour/minute and then either delay the responses you get back, charge you more money, or stop responding altogether.
Another service that you can look at that deals with throttling is the Google Maps Geocoding service. If you look on their documentation, Google Maps Geocoding API Usage Limits, you will see that:
Users of the standard API:
2,500 free requests per day, calculated as the sum of client-side and server-side queries.
50 requests per second, calculated as the sum of client-side and server-side queries.
If you exceed this and have billing enabled, Google will shift to:
$0.50 USD / 1000 additional requests, up to 100,000 daily.
I can't remember what the response looks like after you hit that daily limit, but once you hit it, you basically don't get responses back until the day resets.