1

I have developed and deployed a JSP/Servlet java web app on Google App Engine. The web app makes http requests to a third-party web site to retrieve data via REST services and show the data on the client side to the user who accesses my web app via "appspot". So it does not store any data on Google Cloud.

I would have to stick with the free plan of Google Cloud due to limited budget. The free plan allows up to 28 hours of frontend instance hours. According to the Google App Engine doc,

Instance usage is billed by instance uptime, at a given hourly rate. Billable time starts when an instance starts, and ends fifteen minutes after it shuts down.

I am wondering:

if an instance is able to handle multiple requests from the client side within the first fifteen mins of its uptime.

What is the maximum number of requests an instance can handle from its uptime?

How is that related to the "Frontend Instance Hours" (28 hrs) quota? What is the best practice to measure how many requests (users) my web app is able to handle per day?

In my particular case, are requests sent from the web app to the 3rd-party website included in the quota?

alextc
  • 3,206
  • 10
  • 63
  • 107

1 Answers1

1

What you're describing is an application that services a GET by making a blocking (socket) call to a 3rd party REST endpoint, then formatting the response in some way, returning HTML.

Constraints apply depending on how you're reaching the 3rd party endpoint. (See https://cloud.google.com/appengine/docs/quotas#UrlFetch if you're using UrlFetch, or https://cloud.google.com/appengine/docs/quotas#Sockets if you're using raw sockets.)

Whether you can get by with a single instance is an "it depends" thing. An instance can handle multi simultaneous requests within some very small delta of when it starts (assuming it's configured to be threadsafe). The maximum number of simultaneous requests an instance can handle depends on several factors. See https://cloud.google.com/appengine/docs/scaling (particularly the "Request Throughput and Latency" section). Memory is also an issue. In the Servlet framework, request handling takes a certain amount of memory per request. Simultaneous requessts might bump you up against the limits for the instance size you're using.

If your application is very lightly loaded, you might be able to live within free quota. But you're going to have to measure.

Dave W. Smith
  • 24,318
  • 4
  • 40
  • 46