I have an application that uses Selenium web-driver.
I would like to make it a web application, and considering the following cloud-computing services:
- Google App Engine (GAE)
- Google Compute Engine (GCE)
- Amazon Elastic Computing (EC2)
Option 1:
GAE would be my first choice, because it's free to begin with.
However, I am not so sure that I can run Selenium web-driver (i.e., open a remote browser) on it.
According to https://stackoverflow.com/a/19940165/1382251 I can't, because it does not support creating threads and it does not support native code (and browsers need both).
This answer doesn't have any up-votes though, so I would like to assert that:
- Regarding the threading issue - is it not possible to open a process (Firefox) and access it from another process (my application), as I do when running locally?
- Regarding the native code issue - if I use Selenium web-driver source code instead of a JAR file, will it not solve this problem?
Options 2 and 3:
- At present, I do not require any extra computation power or memory space. My application does not need to store anything on disk either. So in terms of optimizing the price-per-hour only, which one is better - GCE or EC2?
- In GAE, I know that my server instance is "alive" only when an HTTP request is received, and only for a limited period of time afterwards. So I'm guessing that GAE wraps it with some kind of general service that listens to the requests before passing them on to the application itself. Does the price-per-hour on GCE and EC2 refer to the "live time" of my server, or is it fixed per hour from the moment I upload it?