AWS - What are the exact differences between EC2, Beanstalk and LightSail?

25,971

Solution 1

They are all based on EC2, the compute service from AWS allowing you to create EC2 instances (virtual machines in the cloud).

Lightsail is packaged in a similar way than Virtual Private Server, making it easy for anyone to start with their own server. It has a simplified management console and many options are tuned with default values that maximize availability and security.

Elastic Beanstalk is a service for application developers that provisions an EC2 instance and a load balancer automatically. It creates the EC2 instance, it installs an execution environment on these machines and will deploy your application for you (Elastic Beanstalk support Java, Node, Python, Docker and many others)

Behind the scenes, Elastic Beanstalk creates regular EC2 instances that you will see in your AWS Console.

And EC2 is the bare service that allows the other to be possible. If you choose to create an EC2 instance, you will have to choose your operating system, manage your ssh key, install your application runtime and configure security settings by yourself. You have full control of that virtual machine.

Solution 2

In simple terms:

EC2 - virtual host or an image. which you can use it to install apps and have a machine to do whatever you like.

Lightsail - is similar but more user friendly management option and good for small applications.

Beanstalk - an orchestration tool, which does all the work to create an EC2, install application, software and give you freedom from manual tasks in creating an environment.

More details at - https://stackshare.io/stackups/amazon-ec2-vs-amazon-lightsail-vs-aws-elastic-beanstalk

Solution 3

I don't know if my scenario is typical in any way, but here are the differences that were critical for me. I'm happier EC2 than EB:

EC2:

  • just a remote linux machine with shell (command line) access
  • tracable application-level errors, easy to see what is wrong with your application
  • you can use AWS web console panel or AWS command line tool to manage
  • you will need repeated steps if you want to reproduce same environment
  • some effort to get proper shell access (eg fix security rule to your IP only)
  • no load balancer provided by default

Elastic Beanstalk

  • a service that creates a EC2 instance with a programming language of your choice (eg Python, PHP, etc)
  • runs one application on that machine (for python - application.py)
  • upload applications as .zip file, extra effort needed to use your git source
  • need to get used to environment vs applications mental model
  • application level errors hidden deep in the server logs, logs downloaded in separate menu
  • can be managed by web console, but also needs another CLI tool in addition to AWS CLI (you end up installing two CLI tools)
  • provides load balancer and other server-level services, takes away the manual setup part
  • great for scaling stable appications, not so much for trial-and-see experimentaion
  • probably more expensive than just an EC2 instance

Solution 4

Amazon EC2 is a virtual host, in other words, it is a server where you can SSH configure your application, install dependencies and so on, like in your local machine. EC2 has a dozen of AMI (Amazon Machine Image: it is some kind of operating system of your EC2 server, for instance, you can have EC2 running on Linux based OS or in windows OS). To summarize, it is a great idea if you need a machine in your hands.

Amazon Lightsail is a simple tool that you can deploy and manage application with small management of servers. You can find it very practical if your application is small, For instance, it will perfectly fit your application if you use Wordpress or other CMS.

AWS Elastic Beanstalk is an orchestration tool. You can manage your application within that service, it is more elevated then AWS Light Sail.

If you still do not understand the differences, you can take a look at each service overview.

There is also an answer in Quora

Solution 5

I have spent only 10 mins on these technologies but here is my first take.

  1. EC2 - a baremetal service. It gives you a server with an OS. That is it. There is nothing else installed on it. So if you need a webserver (nginx) or python, you'll need to do it yourself.
  2. Beanstalk - helps you deploy your applications. Say you have a python/flask application which you want to run on a server. Traditionally you'll have to build the app, move the deployable package to another machine where a web server should be installed, then move the package into some directory in the web server. Beanstalk does all this for you automatically.
  3. LightSail - I haven't tried it but it seem to be an even simpler option to create a server with pre-installed os/software.

In summary, these seem to make application deployment more easier by pre-configuring the server/EC2s with the required software packages and security policies (eg. port nos. etc.).

I am not an expert so I could be wrong.

Share:
25,971

Related videos on Youtube

Aar Man
Author by

Aar Man

Updated on September 12, 2021

Comments

  • Aar Man
    Aar Man over 2 years

    What are the exact differences between EC2, Beanstalk and LightSail in AWS?

    What are good real time scenarios in which I should use these services?

  • Aar Man
    Aar Man about 5 years
    Thank you thank you so much for this great answers. Now i got that when what should i use.
  • Sébastien Stormacq
    Sébastien Stormacq about 5 years
    Great it is useful for you. Do not forget to flag the answer has accepted if it serves your purpose
  • FabricioG
    FabricioG over 4 years
    What is the definition of small in this context? Small as in users? If so less than 5,000 users?
  • ddsultan
    ddsultan over 3 years
    @FabricioG, I think it (roughly) means resources like CPU, RAM etc. and also control you have over your (AWS) server
  • Jacksonkr
    Jacksonkr over 2 years
    I prefer the formatting of this answer - easy to find what I'm looking for (I feel extremely lazy now that I've said this ...) EDIT also aws doesn't charge any additional for beanstalk, just the bundled resources underneath.
  • Evgeny
    Evgeny over 2 years
    Thanks for the edit! My impression AWS charges for everyhting and hides a costly running container in a region you do not normally use and makes you wonder why the bill skyrockets (my recent experience).