Live data from Hacker News

AWS Elastic Beanstalk now supports Python

aws.typepad.com

11–20 of 35 posts

Re: AWS Elastic Beanstalk now supports Python

#11
post #3

Has anyone here used Elastic Beanstalk? What were your experiences?

I'm using Elastic Beanstalk with PHP and overall the experience has been fairly positive. I don't really have any ops experience, so I wanted something that could get me up and running quickly. There are some gotcha's, but it's been great. If you use git, there's a git CLI that deploys directly to Beanstalk which is very convenient. Deploying an environment or deploying a new instance of your code to an environment is really a piece of cake. You can set autoscale rules, interface with load balancers, add some other configs, etc. right from the beanstalk interface in just a few clicks. Support from Amazon has been solid, and the documentation/forums are not bad.

Fair warning, Beanstalk is still young so there might be some growing pains, but for someone with little ops experience, it's been pretty awesome. One very important fact to note, is that it's just a layer on top of other AWS services (with no extra fees, you only pay for the underlying resources), so if there's something you can't do on beanstalk, you can do it with whatever resources are beneath it (EC2, RDS, Cloudwatch, etc).

I'd recommend if you're interested in it, or feel AWS is burdensome/complicated, it's worth a try. You have to scope out if it's right for you or your project.

Re: AWS Elastic Beanstalk now supports Python

#12
post #9
post #5

A couple friends and I just spent the past 48 hours building an app that recreates a lot of this functionality. Some key things to note with this is that you're stuck with RDS, and locked in to amazons platform choice. If anyone is interested in the work we did this weekend, https://github.com/jawnb/badatcomputers

Can't you use RDS like any MySQL database? And since you're writing a standard WSGI app, it seems like there is very little lock-in. This seems to basically automate the provisioning of EC2 instances for the web app and the DB. and since you just have a standard app, you're free to move it around as needed. Or is there something that I'm missing with the Elastic Beanstalk? (I've only used raw EC2)

Yes RDS is like any MySQL db. The key word there being MySQL. If you want to use another data store like say, postgres or even some NoSQL solution. You're outta luck.

As for platform lock-in, my comments were less towards the web services level and more about system level concerns. It's not entirely clear how you would run persistent background tasks (read: celery). This doesn't even get into the headaches of learning yet another DSL to define OS packaging requirements.

That being said, IMO this would be great for simple apps, with no strenuous requirements. In addition, anything that allows more people to easily deploy their django apps is a good thing.

Re: AWS Elastic Beanstalk now supports Python

#13
post #9
post #5

A couple friends and I just spent the past 48 hours building an app that recreates a lot of this functionality. Some key things to note with this is that you're stuck with RDS, and locked in to amazons platform choice. If anyone is interested in the work we did this weekend, https://github.com/jawnb/badatcomputers

Can't you use RDS like any MySQL database? And since you're writing a standard WSGI app, it seems like there is very little lock-in. This seems to basically automate the provisioning of EC2 instances for the web app and the DB. and since you just have a standard app, you're free to move it around as needed. Or is there something that I'm missing with the Elastic Beanstalk? (I've only used raw EC2)

Yes, RDS works with MySQL. And you're right about the provisioning for the EC2 instances for beanstalk, but it doesn't do much for RDS, that needs to be set up independently.

Re: AWS Elastic Beanstalk now supports Python

#15
post #14

Does anyone know if this has explicit support for a task queue like Celery?

I never tried it but I guess you can use SQS for queues on AWS. http://aws.amazon.com/sqs/

If you go with SQS, keep in mind it doesn't guarantee that messages will be received exactly once[1]. I've used SQS for large projects and this was killer because we had to implement message locking ourselves to prevent messages from being processed twice. Since then, this has been a deal breaker for using SQS again (now use Celery).

[1] http://aws.amazon.com/sqs/faqs/#How_many_times_will_I_receiv...

Re: AWS Elastic Beanstalk now supports Python

#16

What are some advantages of using something like Elastic Beanstalk versus Heroku, if any?

as the others have said price mostly. You are cutting out the middle man. Heroku has an awesome service, but they are just running on AWS. Elastic Beanstalk is basically the same Platform as a Service idea but you get rid of the middle man. I'm happy to see python supported as I was just getting started with a project and debating using heroku vs dealing with the hassle of doing it myself on aws. Now i get the best of both worlds.

Re: AWS Elastic Beanstalk now supports Python

#17
post #12
post #9

Earlier quoted context omitted.

Can't you use RDS like any MySQL database? And since you're writing a standard WSGI app, it seems like there is very little lock-in. This seems to basically automate the provisioning of EC2 instances for the web app and the DB. and since you just have a standard app, you're free to move it around as needed. Or is there something that I'm missing with the Elastic Beanstalk? (I've only used raw EC2)

Yes RDS is like any MySQL db. The key word there being MySQL. If you want to use another data store like say, postgres or even some NoSQL solution. You're outta luck. As for platform lock-in, my comments were less towards the web services level and more about system level concerns. It's not entirely clear how you would run persistent background tasks (read: celery). This doesn't even get into the headaches of learnin…

RDS isn't just MySQL - you can also use Oracle or SQL Server, if you don't want MySQL.

For NoSQL, look at the other stuff that doesn't have 'Relational' in the name :) (DynamoDB, SimpleDB, etc.)

Re: AWS Elastic Beanstalk now supports Python

#20
post #3

Has anyone here used Elastic Beanstalk? What were your experiences?

I'm also using Beanstalk for a (big) PHP application, it was a bit of a mess rewriting all data saving to S3, email via SES, routing with Route 53 and such stuff.

Beanstalk is not 100% matured, you see this in some unexpected behaviors like :

- changing some environment vars give unexpected troubles with the load balancers in one environment, but not in another. - restarting an app server sometimes crashes the environment. -etc.

the automatic procedure is that beanstalk starts replacing it's EC2 instances from your Auto Scaling Group, which sometimes has to be repeated for 2-3 times in a row which can take up to 30 mins.

in the meantime you should switch to a backup environment ( which is a must have! )

but all in all im positive because it's getting better all the time and the benefits are despite the disandvantages great.

check out the beanstalk forum : https://forums.aws.amazon.com/forum.jspa?forumID=86

Post reply on HN