0

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:

  1. Google App Engine (GAE)
  2. Google Compute Engine (GCE)
  3. 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?
Community
  • 1
  • 1
barak manos
  • 29,648
  • 10
  • 62
  • 114

1 Answers1

3

Can't answer all your questions, as I am not familiar with Google's cloud offerings, but as far as EC2, you pay by the full hour for every hour (or part of an hour) that you leave the instance running - whether or not it is doing anything - think of ec2 as a server sitting on the desk next to you; every time you power it on, you are getting billed by the hour until you power it off. Depending on how you power it off, you may also pay storage fees for the non-running server (i.e if you do the equivalent of 'turning it off', you will pay storage fees, if you do the equivalent of throwing it away when you power it off, you wouldn't need to pay those storage fees - not a perfect analogy, but close enough.

Also keep in mind the cost of 'storing' a non-running server is only pennies, so should be a non-issue in most cases - most of your ec2 costs will be related to the running cost per hour charges, which can range from less than a penny per hour to several dollars per hour for a very powerful machine.

Whenever possible, you should purchase reserved instances which save you a tremendous amount per hour, if you are able to commit yourself to a 1-3 year term.

E.J. Brennan
  • 45,870
  • 7
  • 88
  • 116