Amazon EC2 vs Beanstalk: What are the differences?
Developers describe Amazon EC2 as "Scalable, pay-as-you-go compute capacity in the cloud". Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable compute capacity in the cloud. It is designed to make web-scale computing easier for developers. On the other hand, Beanstalk is detailed as "Private code hosting for teams". A single process to commit code, review with the team, and deploy the final result to your customers.
Amazon EC2 and Beanstalk are primarily classified as "Cloud Hosting" and "Code Collaboration & Version Control" tools respectively.
Some of the features offered by Amazon EC2 are:
- Elastic – Amazon EC2 enables you to increase or decrease capacity within minutes, not hours or days. You can commission one, hundreds or even thousands of server instances simultaneously.
- Completely Controlled – You have complete control of your instances. You have root access to each one, and you can interact with them as you would any machine.
- Flexible – You have the choice of multiple instance types, operating systems, and software packages. Amazon EC2 allows you to select a configuration of memory, CPU, instance storage, and the boot partition size that is optimal for your choice of operating system and application.
On the other hand, Beanstalk provides the following key features:
- Setup and manage repositories- Import or create Subversion and Git repositories that are instantly available to your team.
- Invite team members, partners & clients- Restrict access to certain repos and provide read-only or full read/write permissions.
- Browse files and changes- Every version of every file you’ve committed to Beanstalk is just a click away. See a timeline of who made changes and view the differences between revisions. Syntax highlighting for over 70 languages.
"Quick and reliable cloud servers" is the primary reason why developers consider Amazon EC2 over the competitors, whereas "Ftp deploy" was stated as the key factor in picking Beanstalk.
Airbnb, Uber Technologies, and Netflix are some of the popular companies that use Amazon EC2, whereas Beanstalk is used by Accenture, Docplanner, and UNION. Amazon EC2 has a broader approval, being mentioned in 3607 company stacks & 1619 developers stacks; compared to Beanstalk, which is listed in 21 company stacks and 8 developer stacks.
What is Amazon EC2?
What is Beanstalk?
Need advice about which tool to choose?Ask the StackShare community!
Sign up to add, upvote and see more prosMake informed product decisions
What are the cons of using Beanstalk?
Sign up to get full access to all the companiesMake informed product decisions
Sign up to get full access to all the tool integrationsMake informed product decisions
A VPS gives the full access that I need, because most of what I do has complex integrations and there is plenty of legacy - very stable, highly tuned code developed over two decades - that I carry with me. My use is also limited to during development, so there is no point going for a full server.
Amazon EC2 is a VPS, except it is cheaper.
Additionally, I used to previously take the code developed on my VPS and deploy it to whatever server the client brought.
With Amazon EC2 the deployment is already done. All that remains it to scale up, add other products like dns, mail, storage and so on, and change the billing so that the client gets invoiced. That makes the process that much more predictable and seamless, and the end result much more stable.
Just started using EC2 myself, but it was the platform used by my previous employer, as well. They are getting easier to use, dashboard improvements over time were well done. Responded fast to outages. They offer a limited free tier which is perfect for my current project, allowing me time to build it to the point where I will need a paid solution. Overall, I'm liking it so far.
About a year and a half ago (written June 2013) we moved from dedicated servers over to AWS. Thanks to AWS, we no longer have to think on a server level. Instead, we think of everything as a cluster of instances, and an instance is essentially a virtual server where we don’t have to worry about the hardware. It’s a relief to not have to worry about the hardware behind the instances.
The clusters we have are: WWW, API, Upload, HAProxy, HBase, MySQL, Memcached, Redis, and ElasticSearch, for an average total of 80 instances. Each cluster handles the job that its name describes, all working together for the common goal of giving you your daily (hourly?) dose of image entertainment.
Below is a diagram of how they all work together:
We liked a lot of things about Heroku. We loved the build packs, and we still in fact use Heroku build packs, but we were frustrated by lack of control about a lot of things. It’s nice to own the complete stack, or rather as far down as AWS goes. It gave us a lot of flexibility and functionality that we didn’t have before. We use a lot of Amazon technology.
I like containers and all, but for zerotoherojs.com I am a one-man band, who also works full time. I don’t have any (dev)ops budget, and therefore I need the reliability and uptime of an actual virtual machine.
That’s where AWS EC2 comes in handy.
Docker containers will be hosted and run on a single Amazon EC2 instance. This will likely be the t2.small or t2.medium instance type as listed here: https://aws.amazon.com/ec2/instance-types/