Hacker News new | past | comments | ask | show | jobs | submit login
Introducing AWS Elastic Beanstalk (aws.typepad.com)
209 points by jluxenberg on Jan 19, 2011 | hide | past | favorite | 57 comments



Wow. The benefits of Google App Engine without the limitations? Sure, an app on GAE is probably cheaper in terms of monthly expense, but factor in the development costs for a Java team unfamiliar with App Engine and Beanstalk is probably a far better investment.


no, with different limitations I believe, e.g. no cool google storage, but only SDB or RDB (which may be ok anyway)


If you can use JDBC or SQL in your Java app with these Amazon solutions and not have to learn a new datastore API that's a pretty huge advantage.


Sure... until your database is your bottleneck.


Exactly, which for many apps will be quite a while or will never happen.


AWS is not without it's "cool" storage: SimpleDB, S3, RDS. Not to mention, being within AWS with full control of your machines, you can setup any database you'd like.


To me, the limitations of App Engine are things like having to use a crippled version of the programming environment (as you don't get your own computer, so they've neutered things down to something "safe") and a bunch of limitations on CPU time, request length, and background processing.

(edit: I had somehow read what you said to mean, "no, but with these new limitations", so arguably I should just delete my response here, but I think that a specific list of things might be valuable still)


On the pro side, GAE gives you a pretty big free quota - http://therealurl.appspot.com handles >1m requests/day for about $4 a week.


I agree. It's definitely meh without a useful and truly scalable database. That's the hard part. SimpleDB isn't particularly useful, and RDB isn't particularly scalable.


Don't worry, by the time you'll be so big that you scale out of RDS, you'll be able to build your own datastore.


Use MongoDB. It's web-scale.


It's easy to find holes in this announcement: Beanstalk doesn't have X, or they compare unfavorably to AppEngine and Heroku in certain areas. The bigger news here is that Amazon has staked a flag in the ground and decidedly shown their intention to enter the PaaS arena.

What has AWS done in the past? They've introduced a new product, then over time:

1) Made it easier to manage 2) Made it more automated 3) Added additional bits of functionality

Why would we not expect them to do the same with Beanstalk?


Just to assist with cross-referencing, there's another, slightly older discussion of this here:

http://news.ycombinator.com/item?id=2118778


I'm not sure how useful this really is. It just handles the application layer, leaving you on your own for dealing with the database. Now, Amazon has some services to help you out (RDS, SimpleDB), but SimpleDB is kind of crap, and RDS is expensive.

More importantly, that loses some of the simplicity, meaning that you still have to think about infrastructure to a degree.

Heroku is git push to deploy, and if you have a standard Rails app, that's it.

Whereas to deploy a standard Rails app, after you package up your app as a .war with JRuby (and deal with possible gem incompatibilities), you have to spin up an RDS instance too. And change the config in your Rails app so that it knows how to talk to the RDS instance. And if your RDS instance crashes, they backed it up for you, but you still have to manually restore from the backup.

And once you're already thinking about infrastructure to that degree, you've lost a lot of the benefit of a PaaS.


RDS pricing appears competitive to Heroku's dedicated databases. It's hard to compare them directly since RDS separates instance type, on-demand and reserved instances, provisioned storage, replication (crossing availability zone boundaries), and number of requests. Heroku on the other hand provides a fixed amount of storage (and one that's twice the max one can provision for RDS), a mix of instance types, and a connection cap limit. It's not clear if Heroku provides multiple availability zone instances similar to RDS.

Ignoring provisioned storage and request costs one can have a small on-demand RDS instance for ~$80/month. Heroku's instance (RAM/CPU) equivalent (Ronin) is $200/month.


As one of the two people working on something similar to Heroku or GAE (we're called ep.io), Beanstalk is simultaneously worrying and quite interesting - while it is an interesting player into the market, it's not _that_ hands-off, from what I can see, especially when it comes to databases, or things like Redis, which it's nice to have managed for you as well.

It's possible we'll see people springing up on EC2 offering those as separate services, however.

The other interesting part is that, since they don't do shared hosting but make you use a whole EC2 instance, there's potential for it to cost considerably more for smaller sites, but only once you get past that free plan of theirs (then again, the disk I/O on the Micro instances is truly awful)


AWS never fit into my definition of a "cloud" solution. It's a VPS with a rich API and a lot of addons (load balancer, EBS, S3...).

From what I'm reading, Beanstalk changes this and clearly puts AWS in the category they've long claimed to be in. Not that their service wasn't great/unique before. This just puts them that much further ahead.

It's along the lines of what Heroku does with their routing mesh layer (as far as I understand it).


Can we please all agree to disagree that there is no formal definition for cloud? I tripped across an article the other day where they were suggesting that these "PaaS" offering's weren't considered a "Cloud" by purists, and only "IaaS" (Infrastructure) - servers, cpus, network, storage - should be considered such. I was one of the original employees at Loudcloud - we certainly considered "Databases", "Applications Servers" to be cloud services.

Cloud = "That service/infrastructure/platform that you need that will be hosted by someone else in their data center"

If we wanted to be precise, we could refer to it as "Storage Clouds", "App Server Clouds", "Database Clouds", etc...


Amazon's execution with EC2 over the past few years has been excellent. If Amazon makes a Rails version of Beanstalk, Heroku should be worried as Beanstalk could take some market share from Heroku.


According to press release

“We’re working with AWS to provide an Elastic Beanstalk Ruby on Rails container that leverages the optimized Engine Yard stack which has been battle-tested by thousands of high-growth companies.” John Dillon, CEO of Engine Yard

http://www.businesswire.com/news/home/20110119005591/en/Amaz...


I was curious why Amazon let Heroku be acquired by Salesforce late last year. Now I know it's because they were already working on Beanstalk.


Heroku will probably still have the advantage of being git-based. I doubt Amazon will support git with beanstalk.

Now, Amazon may start siphoning off python users that switched to rails just to use Heroku.


What's your definition of a "cloud" solution?


automatic scaling would be a good benchmark for the true definition of cloud.

a lot of "cloud" services these days are nearly identical to VPS services of yore, with the added new ability to create/destroy VPS nodes whenever you want. very few of the big "cloud" providers actually handle auto scaling (as it's difficult in a world where all apps are not made the same).


automatic scaling would be a good benchmark for the true definition of cloud.

You can do this with EC2. You can set up monitors based on CPU usage over a time period and it'll start new nodes if required.

S3 is 'autoscaling' for serving files. Just upload your files and pay for what you use.


you'll still have to build your application in such a way that supports these new nodes, though. Sessions, load balancing etc.

a "true" cloud would just handle all that stuff transparently.


Is there a "cloud" environment in which designing your application like this isn't necessary?


Google AppEngine


With GAE you have to write your application from the ground up to use Google's APIs and the design they force upon you. I'm not sure it's a fair comparison; in either situation you have to be cognizant of the environment your application will be running in if you want to take advantage of the environment.


"a "true" cloud would just handle all that stuff transparently."

Be wary of leaky abstractions.

http://www.joelonsoftware.com/articles/LeakyAbstractions.htm...


but storage cannot be scaled like this, you have to design your own mechanic to handle it.


Not necessarily. If you have a popular website you can put all your images and big content on S3 and just include the URLs in your HTML. It'll magically automatically scale then.


upvoted, but since I'm the OP, just wanted to say that yes, this is what I meant.


Questions: What does Elastic BeanStalk mean for me?

1. Can my database auto-scale?

2. Can my JVM heap auto-scale beyond 2 GB without GC pauses?


It's built on EC2, so no and no.


Just to be clear, this is only for Java apps right? This does not include PHP or Python?


At the moment that appears so.

If you wanted something similar for Python or PHP then you could use VMWares VApp stuff which gives you the PaaS solution on top of hardware hosted by Colt which gives you the IaaS solution.

The reason that the VMWare offer gives you Python, PHP or other stuff, is that under-the-hood VMWare are using Chef and you can run your own custom Recipes, hence you could deploy whatever you want as a managed platform... though you would lose the Eclipse right-click deploy (though honestly if you're deploying from CI you're probably not going to be using this anyway).

Edit: It being almost impossible to just find simple and clear documentation on the VMWare site, this is the info link I've managed to unearth: http://www.vmware.com/products/vcloud-director/overview.html

The key point is that you could create a virtual datacenter, hosted with a 3rd party like Colt, and then use Chef to manage it as a platform, and deploy directly to it as if you owned your own "Elastic Beanstalk".

As an aside, I for one am getting tired of the never-ending list of acronyms and strange product names that are coming out from every vendor.


Presumably Jython would be pretty easy to get running, and you can run eg Django on Jython: http://docs.djangoproject.com/en/dev/howto/jython/


From what I can gather the current beta version only supports Java (i.e., war packaged) apps, but the intention is to support other kinds of application containers in the future.

Conceivably one could use jython or quercos to deploy python or php applications.


Apache Tomcat in the cloud.


This is just the first step, according to techcrunch ruby is next.

http://techcrunch.com/2011/01/19/amazon-web-services-introdu...



The real question is: can this offering compete with the specialized PaaS services we have seen emerge in the last year - heroku, GAE, djangy.djangozoom/eldairon, various node.js services, phpfog, etc...

The specialized services will be less work to maintain for developers, and will offer unique additional features that Amazon will have a hard time keeping up with if they try to spread themselves too thin.


Because Iwork mainly in Python, I just checked out the offerings you mentioned for Python that aren't GAE. Both Djangy and Djangozoom are in private beta still, so I can't imagine they're that far along. Eldarion doesn't look self serve, although maybe that's just their site.

It seems likely that, not only can Amazon compete, but could probably dominate. Heroku is a big outlier and really the first to demonstrate that the need/power of a PaaS. It doesn't look like there's anything nearly as mature for Python. Don't know about other languages/frameworks, but if it's like Python, Amazon has a big opportunity here.


Agreed - the only one I have actually used is GAE, and I was definitely not trying to endorse the other services as "too good to beat." Just trying to say that with all the different stacks out there for different languages and purposes there will be a benefit to specialization, which might not benefit from amazon's skillset as much as the provisioning of VPS's and other infrastructure has.

For python hosting, GAE is probably the only real competition at this point. There is a HUGE opportunity to eliminate sysadmin work on all these stacks for smaller developers especially. I am just not sure if Amazon will domiate both the infrastructure and platform layer.


I'd also like to see a Python (WSGI) solution for AWS.

I've had the opportunity to play around with andrewgodwin's ep.io and while also in private beta, is worth some attention.


This is cool, but not earth shattering. It is essentially a management stack/abstraction layer/deployment tool on top of existing AWS services: EC2, CloudWatch, load balancing, route 53, autoscaling, AMIs. It is a PaaS sort of... but single-tenant and not in the same sense as a multi-tenant, higher level PaaS like AppEngine or Heroku. Elastic Beanstalk gives you flexibility (full root access - do whatever you want), but with that comes more responsibility from a management perspective, and more opportunities to shoot yourself in the foot.


Cool new feature. Not too tough to see this coming though. One of the biggest barriers of entry to AWS has always been scaling/deployment. With companies like Cloudkick and Scalr helping to alleviate this, but being somewhat platform agnostic (Cloudkick supports aws, rackspace cloud, etc) Amazon would want to have an all-encompasing solution that has more of a vendor-lock in to their products. With solutions like Beanstalk and their free web tier, AWS is becoming easier to step right into each day. I predict that in a few years there will be no such thing as shared web hosting...


Sounds like a great idea, though the naming is a bit unfortunate, there might be some confusion between the Git hosting and collaboration application: beanstalkapp.com.


An Amazon marketer might say that's Beanstalkapp's problem now


There's still plenty of room for competition. Beanstalk is limited in its ability to innovate because it is simply a management layer on top of AWS, which will restrict its potential feature offerings.

I think smaller developers stand to reap huge productivity benefits from easier to use and more feature-rich platforms such as Heroku.


Why is being a "simple" management layer atop AWS limiting? Bear in mind that Heroku is, in your terms, simply a management layer atop AWS. Using it as a technical yardstick and considering Amazon's strong financial position and commitment, it stands to reason that there is a long runway for Beanstalk's innovation.


Would that make a good fit for an Apache Solr server? Put the index on EBS?


At the moment I'm able to launch applications in the US East region only. When will the other regions support Elastic Beanstalk?


Yes, US East region only for now. From their official FAQ, other regions in the future:

http://aws.amazon.com/elasticbeanstalk/faqs/#regions



"beanstalk is built using a number of existing AWS services, not from magic beans."




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: