342

Can someone please explain what is the difference between EC2 and Beanstalk. I want to know regarding SaaS, PaaS and IaaS.

To deploy a web application in Wordpress I need a scalable hosting service. If there anything better than my purpose, please let me know as well.

FYI - I want to host and deploy multiple Wordpress and Drupal sites.

I do not want to give more time for the server and focus on development. But the cloud hosting needs to be auto scalable.

Chuck Le Butt
  • 43,669
  • 58
  • 179
  • 268
blueray
  • 6,268
  • 2
  • 25
  • 46
  • 72
    I don't see how this is an opinion based question. There are definite differences between EC2 and ELB. They must have been designed to fill different niches or else why would AWS have them both? I think there is a place on this site for comparing and contrasting the two technologies. This shouldnt have been closed. – Jeff Apr 13 '15 at 17:16
  • 24
    "What's the difference between EC2 and Elastic Beanstalk" is definitely not an option-based question or answer. – Jason Swett Aug 25 '15 at 16:47
  • 29
    The bots running stack exchange need upgrades. This is not a coke-or-pepsi opinion question. – lonstar Jan 11 '16 at 22:29
  • 25
    I think it's an excellent question. – ardochhigh Apr 24 '16 at 11:50
  • 7
    @Ahmmad Ismail I guess a better title could have helped, like "Difference between EC2 and EB" rather than "EC2 vs EB". Anyway, asking for differences between two solutions is clearly not "opinion biased". – Balmipour May 13 '16 at 09:28
  • 7
    @Balmipour Excellent suggestion. And clearly _not_ opinion based. – sargas Oct 29 '16 at 03:06
  • 1
    Anyone wanna put this up for review? The opinion status is silly – Skyler May 07 '18 at 19:13
  • 3
    This is definitely not an opinion-based Q&A. It looks like the moderators haven't even read the question/answers before closing it as opinion-based. – Rodrigo May 26 '18 at 21:04

2 Answers2

367

First off, EC2 and Elastic Compute Cloud are the same thing.

Next, AWS encompasses the range of Web Services that includes EC2 and Elastic Beanstalk. It also includes many others such as S3, RDS, DynamoDB, and all the others.

EC2

EC2 is Amazon's service that allows you to create a server (AWS calls these instances) in the AWS cloud. You pay by the hour and only what you use. You can do whatever you want with this instance as well as launch n number of instances.

Elastic Beanstalk

Elastic Beanstalk is one layer of abstraction away from the EC2 layer. Elastic Beanstalk will setup an "environment" for you that can contain a number of EC2 instances, an optional database, as well as a few other AWS components such as a Elastic Load Balancer, Auto-Scaling Group, Security Group. Then Elastic Beanstalk will manage these items for you whenever you want to update your software running in AWS. Elastic Beanstalk doesn't add any cost on top of these resources that it creates for you. If you have 10 hours of EC2 usage, then all you pay is 10 compute hours.

Running Wordpress

For running Wordpress, it is whatever you are most comfortable with. You could run it straight on a single EC2 instance, you could use a solution from the AWS Marketplace, or you could use Elastic Beanstalk.

What to pick?

In the case that you want to reduce system operations and just focus on the website, then Elastic Beanstalk would be the best choice for that. Elastic Beanstalk supports a PHP stack (as well as others). You can keep your site in version control and easily deploy to your environment whenever you make changes. It will also setup an Autoscaling group which can spawn up more EC2 instances if traffic is growing.

Here's the first result off of Google when searching for "elastic beanstalk wordpress": https://www.otreva.com/blog/deploying-wordpress-amazon-web-services-aws-ec2-rds-via-elasticbeanstalk/

Nam G VU
  • 28,311
  • 62
  • 206
  • 338
Josh Davis
  • 5,801
  • 2
  • 23
  • 24
  • buddy i just modified my question according to your solution, can you please look at the changes and enlighten me further. – blueray Sep 21 '14 at 06:29
  • 7
    Just to be clear, you mean you want to spend more time on development rather than configuring servers and everything like that? – Josh Davis Sep 21 '14 at 06:31
  • yes, want to deploy multiple wordpress sites on cloud for scalability. Do not want to spend more time on server. – blueray Sep 21 '14 at 06:32
  • I would like to note that in the meantime there is also [Amazon EC2 Container Service](https://aws.amazon.com/ecs/). But unfortunately I can't tell the difference to Beanstalk. – Udo G Mar 07 '16 at 08:16
  • 7
    It's a common pattern these days for companies to build Docker images of their applications and deploy those to a container management tool (Kubernetes, Mesos, Docker Swarm) running on a pool of EC2 instances. EC2 Container Service is Amazon's managed replacement for running your own Mesos cluster. It's a good solution if you're running multiple applications, and simplifies management and billing. If you're running a single application, unless you just like the Dockerized model, Beanstalk is a better option. – Dathan Oct 02 '16 at 18:16
  • 5
    @JoshDavis To clarify your point at "Elastic Beanstalk doesn't add any cost on top of these resources that it creates for you", I would like to quote this "In fact, you aren't charged for Beanstalk itself--you are charged for the AWS resources you're using, such as S3, SNS, and EC2." from https://serverfault.com/a/401465/41015 – Nam G VU Apr 27 '17 at 09:10
  • 7
    Its a sad when the Amazon themselves cant explain their own products clearly. But it's true, they can't. – Epirocks Sep 15 '17 at 12:36
  • @NamGVU Thanks for clarifying. Although I think both sentences are clear but if your clarification helps someone, then that's great. – Josh Davis Nov 06 '17 at 20:30
  • if you are making a test and want it to keep totally free even if many users suddenly use your web, would just ec2.t2 be better? – Mr-Programs Jan 25 '19 at 03:07
  • If beanstalk is better and creates EC2 instances, then why EC2 option remains for juniors to struggle with it. Why can't they shut down EC2 options and just let users deal with beanstalk that creates EC2 on the background? – Ephra May 06 '20 at 09:54
  • 2
    @Ephra dude, they leave EC2 because not everybody wants a preconfigured server, some enterprises prefer configure the servers themselves, due to security, automation reasons etc. – Sergio Gutiérrez Oct 21 '20 at 08:25
  • @Ephra also, EC2 instances are VMs. A VM can be used for anything and is the most flexible system. They can be used as build agents, site hosts, peach tree servers, docker hosts, game servers, and anything else a vm (or computer/server) is used for. All the other offerings are layers of abstractions above this. EBS uses EC2 under the hood and you can even log onto the used ec2 instnaces. ECS will spin up EC2 instances to run the containers on. Time is money and if the abstractions works for you then that is money saved. If you are fighting the abstraction(s) then you can do it yourself. – xtreampb Mar 02 '21 at 16:32
3

It’s the difference between Infrastructure as a Service (EC2) and Platform as a Service (Elastic Beanstalk).

With PaaS, you typically only manage an application and its data. With IaaS, you also manage the runtime environment for the application and the Operating System on which that environment runs.

With IaaS, you’re also much more involved in low-level decisions around network configuration, load balancing, and other ‘infrastructure’ components. In PaaS, these are abstracted away from you. For example, with PaaS, the decision to include load balancing is typically a checkbox (and not even that in some cases where it’s the default). With IaaS, you would have to configure and spin up these components yourself, connect them together, and manage them, by elasticsearch course

At the risk of grossly simplifying things, if you have a few developers and no sysadmins then you’d typically prefer PaaS. If you also have sysadmins then you might prefer IaaS as it gives you more choices, more granularity of control, and is likely to be cheaper.

In the diagram below, you manage the layers in teal while the service provider (AWS in this case) manages the layers in orange.

Dharman
  • 21,838
  • 18
  • 57
  • 107