I’ve followed Amazon Web Services since its unveiling because I saw it as a really disruptive service that enabled startups to get off the ground for much less capital.
- “Dynamic webserving, with full support of common web technologies” – for now, the only language they support is Python.
- “Persistent storage (powered by Bigtable and GFS with queries, sorting, and transactions)”- Amazon came out of the gate without the querying, sorting and transactions, and it hurt them initially. Web apps need databases, period. I don’t just say that because I’m a DBA, I say that because I’ve also written (crappy) web apps. Google’s Bigtable is obviously proven, since they use it for web indexing, but there could be a learning curve for new developers.
- “Automatic scaling and load balancing” – to me, this is one of the two biggest feature advantages Google has over Amazon. Amazon’s EC2 will scale, but it’s manually done, and third party companies have built solutions just to handle the scaling & load balancing. This is the expensive part of building a .com – the infrastructure.
- “Google APIs for authenticating users and sending email” – whoa. Sure, this is cool from a developer perspective, but think about it from a business perspective. New web apps built on the Google App Engine will most likely use Google’s authentications, and at that point, people will be logging into the web app with Google usernames & passwords. That means Google suddenly has deep hooks into every new web app, because the web app’s authors will be very reluctant to move their apps elsewhere. The move would suddenly be obvious, because end users would have to log in with different usernames/passwords. Presto, lock-in. Brilliant move on Google’s part because they can say they’re just offering a service, and you don’t HAVE to use it. Everybody will, and everybody will hope their awesome App Engine web app gets bought out by Google.
- “Fully featured local development environment”
Humina humina humina – that’s a lot of power in five bullet points.
Amazon still has advantages because they’re more of a virtualization service provider than a shared web host provider. With Amazon EC2, the developer can run servers around the clock with running processes, whereas the Google App Engine specifies that:
“Application code only runs in response to a web request, and must return response data within a few seconds. A request handler cannot spawn a sub-process or execute code after the response has been sent.”
That’s probably due to their automatic scaling and load balancing stuff – they spin up web apps on demand, and they don’t want to leave the web server running for hours on a bunch of different boxes. Amazon has an edge here because developers can use background processes to churn through data or do queue-based stuff. Speaking of queues, Amazon has more features than just EC2: they have Mechanical Turk, Simple Queueing Service, and now their Fulfillment Service. They’re doing a lot more than just web hosting.
Building a pure web app? Use Google App Engine. Building a business with lots of moving parts? Amazon Web Services still probably makes more sense. Either way, it’s such an exciting time to be a developer.
The cost on all this: free for sites that host up to around 5 million page views per month. Free. Frrrrree. It rolls off the tongue.