In App Engine I'd like to make http fetch calls to a web server running on an Compute Engine instance, created within the same Google cloud project, and I'm wondering if I can make such calls to the instance without enabling an external IP for it? Are App Engine and Compute Engine instances, from the same project, within the same network and can I call a Compute Engine instance by name from App Engine?
11
votes
I don't know the answer, however there may be some overlap with this App Engine VM-based Backends groups.google.com/forum/#!topic/google-appengine/gRZNqlQPKys
- Tim Hoffman
Thanks, Tim, for pointing this out. App Engine VM-based Backends may in fact be exactly what I'm looking for, because I need to use Java libraries that depend on classes that are outside App Engine's sandbox (whitelist) and that brought me to consider GCE but those appengine-vm-backends might be a better fit if I can communicate in a more internal way than using the URLFetch API and public IPs. I've now signed up as a tester and await reply.
- Bjorn Thor Jonsson
2 Answers
5
votes
6
votes
The best way to solve that in the short/medium term is to deploy the VM as a VM-based backend (we are accepting TT applications). You can deploy the VM backend as a different App Engine module of the app. Then you can urlfetch "mymodule.myapp.appspot.com" from the frontend and it will hit your VM without going through the public IP.
You can also serve your app straight from the VM backend. There you can load classes that are blocked by the normal App Engine sandbox (and well as have full access to all App Engine APIs!). The downside with VM backends is that we don't have auto-scaling yet.