Advertisement

Question about cloud computing, Goggle App Engine or Amazon?

Started by February 11, 2011 08:02 PM
6 comments, last by BeanDog 13 years, 8 months ago
Hello friends!

I'd like to create a server with a database that uses REST to communicate with an iPhone app I'll create.

My question is, what do you think is better, Google App Engine (App) or Amazon EC2?

By the way, do you know any good forum about cloud computing?

Thanks a lot for help.
I've seen things you people wouldn't believe. Attack ships on fire off the shoulder of Orion. I watched C-beams glitter in the dark near the Tannhauser gate. All those moments will be lost in time, like tears in rain. Time to die.
If GAE restrictions don't cause an issue with your application then it's hard(impossible) to beat.

Pro's versus EC2:

1) You only pay for the part you use, including bandwidth, process time, datastore etc.. EC2 bills you for the number of instances you have access to.

2) No admin - really, none. EC2 is closer to the metal and thus requires the typical set up and admin.

3) Automatically scales. New server power spins up as your users consume it. You_must_do_nothing. EC2 requires you to log in and spin up additional capacity.


Cons versus EC2:

1) Python or Java server-side only. EC2 supports most every framework.

2) https requires the .appspot sub-domain in the url.

3) there's a dearth of good frameworks for GAE while EC2 is compatible with most of the mainstream frameworks.

4) you can't write to files on GAE, datastore, cookies, and memcache are your writeables. EC2 doesn't have this restriciton.

5) GAE does not have a relational datastore. This requires a rethink of how you structure your data and also limits your data access layer to either built in classes or GQL. EC2 supports all the typical DAL's.

6) No service level agreement.

This list is hardly exhaustive. I'm a fan of GAE. It requires a re-think of your development and workflow but this also allows it to scale massively.
"Let Us Now Try Liberty"-- Frederick Bastiat
Advertisement

If GAE restrictions don't cause an issue with your application then it's hard(impossible) to beat.

Pro's versus EC2:

1) You only pay for the part you use, including bandwidth, process time, datastore etc.. EC2 bills you for the number of instances you have access to.

2) No admin - really, none. EC2 is closer to the metal and thus requires the typical set up and admin.

3) Automatically scales. New server power spins up as your users consume it. You_must_do_nothing. EC2 requires you to log in and spin up additional capacity.


Cons versus EC2:

1) Python or Java server-side only. EC2 supports most every framework.

2) https requires the .appspot sub-domain in the url.

3) there's a dearth of good frameworks for GAE while EC2 is compatible with most of the mainstream frameworks.

4) you can't write to files on GAE, datastore, cookies, and memcache are your writeables. EC2 doesn't have this restriciton.

5) GAE does not have a relational datastore. This requires a rethink of how you structure your data and also limits your data access layer to either built in classes or GQL. EC2 supports all the typical DAL's.

6) No service level agreement.

This list is hardly exhaustive. I'm a fan of GAE. It requires a re-think of your development and workflow but this also allows it to scale massively.




Thanks a lot Dreddnafious, very helpful.

Do you know any good forum where I can ask cloud computing question? I mean, a general forum, I already know Amazon and GAE forums.

Thanks.
I've seen things you people wouldn't believe. Attack ships on fire off the shoulder of Orion. I watched C-beams glitter in the dark near the Tannhauser gate. All those moments will be lost in time, like tears in rain. Time to die.

[quote name='Dreddnafious Maelstrom' timestamp='1297475935' post='4773161']
If GAE restrictions don't cause an issue with your application then it's hard(impossible) to beat.

Pro's versus EC2:

1) You only pay for the part you use, including bandwidth, process time, datastore etc.. EC2 bills you for the number of instances you have access to.

2) No admin - really, none. EC2 is closer to the metal and thus requires the typical set up and admin.

3) Automatically scales. New server power spins up as your users consume it. You_must_do_nothing. EC2 requires you to log in and spin up additional capacity.


Cons versus EC2:

1) Python or Java server-side only. EC2 supports most every framework.

2) https requires the .appspot sub-domain in the url.

3) there's a dearth of good frameworks for GAE while EC2 is compatible with most of the mainstream frameworks.

4) you can't write to files on GAE, datastore, cookies, and memcache are your writeables. EC2 doesn't have this restriciton.

5) GAE does not have a relational datastore. This requires a rethink of how you structure your data and also limits your data access layer to either built in classes or GQL. EC2 supports all the typical DAL's.

6) No service level agreement.

This list is hardly exhaustive. I'm a fan of GAE. It requires a re-think of your development and workflow but this also allows it to scale massively.




Thanks a lot Dreddnafious, very helpful.

Do you know any good forum where I can ask cloud computing question? I mean, a general forum, I already know Amazon and GAE forums.

Thanks.
[/quote]

I don't know one in particular. Were I you I'd go to stack overflow and/or hacker news and ask whatever questions you had to their site specific search.

That should get your questions answered as well as provide tons of links to read regarding the subject.
"Let Us Now Try Liberty"-- Frederick Bastiat


but this also allows it to scale massively.


Just beware of the cost. If it scales massively, GAE will bankrupt you. And as always, there is no free lunch. For anything "massively", nothing will scale just out of box. Most cases where such scaling is talked about would run quite happily on a single multi-core box on a dedicated server.

Another thing to consider is that in case of problems with GAE, unless you're a big customer, you're likely out of luck. Amazon tends to be somewhat better.

[quote name='Dreddnafious Maelstrom' timestamp='1297475935' post='4773161']
but this also allows it to scale massively.


Just beware of the cost. If it scales massively, GAE will bankrupt you. And as always, there is no free lunch. For anything "massively", nothing will scale just out of box. Most cases where such scaling is talked about would run quite happily on a single multi-core box on a dedicated server.

Another thing to consider is that in case of problems with GAE, unless you're a big customer, you're likely out of luck. Amazon tends to be somewhat better.
[/quote]

Not to pick a fight but that's counter to the information I have in both regards. GAE is cheaper than EC2 in every meaningful metric. It does "just scale" out of the box. There are some development hurdles to over come because the topology requires you to alter your workflow such that it WILL scale.

I did mention no SLA, it's a decision you have to get comfortable with before you decide to go GAE.
"Let Us Now Try Liberty"-- Frederick Bastiat
Advertisement
I'm running LucidChart (see sig) on EC2. Here are a few pro's from an active fan of EC2 with a few years' experience in it:
  • EC2 instances are just Linux machines when you get down to it, and you have root access. So anything that will run on Linux will run on EC2.
  • That means that if you want to migrate away from EC2 later due to cost, reliability, or whatever might arise for your particular use case, you can just move to any hosting provider who offers vanilla Linux servers (which is everyone).
  • The "interchangeable parts" mentality of EC2 is freaking awesome. You can create storage volumes ("EBS" volumes) up to 1TB which you can mount as devices on any of your servers. Want to migrate to a larger database server? Even with a naive setup, all you have to do is launch a bigger instance, be sure the software you want is installed, and detach your database storage from the old server and attach it to the new one. And the IP addresses are even reassignable, so you can keep your same DNS settings and have a sub-1-minute swap out of a database server.
  • Amazon offers a pretty solid load balancer for a very low cost, and even offers a way to auto-scale the number of servers you have running. Obviously, this means you have to set up a server image that can be fired up and ready to go without any human intervention, and that takes some careful thought. But we have it working great at LucidChart--whenever the CPU usage of our web servers goes above a 75% average for 60 seconds, new web servers come online two at a time until it gets below that threshold. If average CPU usage drops below 20%, one server at a time is dropped until we're above 20%. Nights and weekends just got much cheaper for us :-)
  • Snapshots. Snapshots. Snapshots. We take hourly backups of our entire main database partition with zero downtime for our users. You can back up EBS volumes with point-in-time backups with a single command. So to back up a MySQL database, you FLUSH TABLES WITH READ LOCK, do an xfs_freeze on the filesystem to be sure everything's written to disk, then start the snapshot, then xfs_unfreeze and unlock the tables. The backup process runs in the background, and only stores (and therefore only charges you for) incremental changes to the filesystem. This is the greatest thing to happen to MySQL administration, ever.
    Of course, there are downsides:
    • Entry cost for getting a setup like ours is pretty high. Amazon offers a "free tier" through the end of the year that will get you a little server and a little storage for free, but you're not getting any real benefits over going somewhere else for hosting. To get two web servers load-balanced, with monitoring, auto-scaling, separate database server with snapshot setup, etc., you're looking at least around $500/month, probably more. But those costs increase in a very friendly way, only per hour/GB/etc. of usage, and the prices are quite reasonable.
    • Engineering time. It just takes a fair amount of effort to get set up well, and you need someone who has some domain knowledge to get you set up right. Especially auto-scaling takes a lot of careful thought and good admin work to get working right.
      There are a fair number of decisions I wish I could go back and change about the way we built LucidChart, but EC2 is not one of them. Pre-EC2, our setup would have been self-managed, fragile, and about ten times more expensive.
BUT: Given that you're writing a server backend for an iPhone app, you're probably fine using almost any service. Your server needs are pretty rudimentary; you're probably fine running any budget VPS for $20-$50/month. I like MediaTemple for this kind of project.

This topic is closed to new replies.

Advertisement