I am currently using google app engine as my mobile application back end. I have a few tasks that can not be performed in the gae environment (mainly image recognition using opencv). My intention is to retain gae and use AWS to perform these specific tasks.
Is there a simple way to pass specific tasks from gae to AWS? E.g. A task queue?
The AWS Elastic Beanstalk platform is used to deploy applications. It is designed for web applications. Initially, Elastic Beanstalk used Apache Tomcat as the J2EE runtime environment. Google App Engine is a similar framework for web applications.
"Quick and reliable cloud servers", "Scalability" and "Easy management" are the key factors why developers consider Amazon EC2; whereas "Easy to deploy", "Auto scaling" and "Good free plan" are the primary reasons why Google App Engine is favored.
App Engine applications are easy to build, easy to maintain, and easy to scale as your traffic and data storage needs grow. AWS Lambda can be classified as a tool in the "Serverless / Task Processing" category, while Google App Engine is grouped under "Platform as a Service".
AWS Vs Google Cloud: Pricing Models In the case of AWS, a very basic instance that includes two virtual CPUs and 8 GB of RAM will cost you around US$69 per month. Compared to AWS, GCP will provide you the most basic instance, containing two virtual CPUs and 8 GB of RAM, at a 25 percent cheaper rate.
You could either push tasks from GAE towards AWS, or have your AWS instances pull tasks from GAE.
If you push tasks from GAE towards AWS, you could use URLFetch
to push your data towards your AWS instances.
If you prefer to have your AWS instances pull tasks from GAE, you could have your GAE instances put their tasks in the GAE Pull Queue
, and then have your AWS instances use the Task Queue REST API
to lease tasks from the queue.
In either case, the AWS instance could report back the processing result through a simple POST request to your GAE servlets, or through inserting tasks via the abovementioned REST API
which would later be leased by your GAE instances. The latter could be useful if you want to control the rate of which your GAE app process the results.
Disclaimer: I'm a lead developer on the AppScale project.
One way that you could go is with AppScale - it's an open source implementation of the App Engine APIs that runs over Amazon EC2 (as well as other clouds). Since it's open source, you could alter the AppServer that we ship with it to enable OpenCV to be used. This would require you to run your App Engine app in AWS, but you could get creative and have a copy of your app running with Google, and have it send Task Queue requests to the version of your app running in AWS only when you need to use the OpenCV libraries.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With