Need advice about which tool to choose?Ask the StackShare community!

Amazon EC2

+ 1
AWS Elastic Beanstalk

+ 1
Add tool

AWS Elastic Beanstalk vs Amazon EC2: What are the differences?

AWS Elastic Beanstalk and Amazon EC2 are both popular services offered by Amazon Web Services (AWS) for hosting applications in the cloud. Let's explore the key differences between them.

  1. Scalability and management: AWS Elastic Beanstalk is a platform-as-a-service (PaaS) offering that abstracts the underlying infrastructure and provides automated environment setup and scaling. It handles capacity provisioning, load balancing, and automatic scaling based on traffic patterns. On the other hand, Amazon EC2 is an infrastructure-as-a-service (IaaS) offering where users have full control over the virtual server instances. With EC2, users are responsible for managing scalability and load balancing themselves.

  2. Configuration complexity: Elastic Beanstalk simplifies the process of deploying and running applications by providing easy-to-use configuration options. It automatically handles the deployment of application code and manages the infrastructure stack, making it ideal for developers who want to focus on writing code rather than managing servers. In contrast, Amazon EC2 requires users to manually configure and manage the virtual server instances, which can involve more setup and maintenance work.

  3. Deployment options: Elastic Beanstalk supports a wide range of application deployment options, including web applications, worker environments, and multi-container Docker environments. It also integrates with popular development tools and frameworks, making it easy to deploy applications developed in languages like Java, Ruby, Python, and more. On the other hand, Amazon EC2 provides more flexibility in terms of deploying different types of applications, as users have direct control over the server instances and can choose the operating system, software stack, and configuration that best suits their needs.

  4. Cost structure: Elastic Beanstalk includes the cost of the underlying EC2 instances in its pricing, so users pay for both the compute resources and the managed service. However, it simplifies the cost management by providing a single billing metric. Amazon EC2 pricing is more granular, allowing users to choose specific instance types, storage options, and network configurations, which can give more control over costs. Users are billed separately for the EC2 instances and additional services they use.

  5. Flexibility and customization: Amazon EC2 provides more flexibility and customization options compared to Elastic Beanstalk. Users have full control over the server instances, allowing them to install any software, configure security settings, and manage the networking environment. This level of control is beneficial for applications with unique requirements or those that need to integrate with external services that are not supported by Elastic Beanstalk.

  6. Monitoring and logging: Elastic Beanstalk provides built-in monitoring and logging capabilities, allowing users to easily monitor the health and performance of their applications. It integrates with AWS CloudWatch for real-time monitoring of resource utilization and application metrics. Amazon EC2 also supports CloudWatch monitoring, but users have to manually configure and set up the monitoring agents on the server instances.

In summary, AWS Elastic Beanstalk is a PaaS offering with a focus on simplifying application deployment and management, while Amazon EC2 is an IaaS offering that provides more flexibility and control over the infrastructure stack.

Advice on Amazon EC2 and AWS Elastic Beanstalk
Vibhanshu Biswas
Sr. Software engineer at Neurosensum International India Private Limited · | 2 upvotes · 17.2K views

We have an Angular app for our B2B app and I'm unable to understand what to choose and why? currently, we use the Azure Web app. What can be the possible issues with each Stack?

I want to make sure that we have high availability with minimum infrastructure requirements such as load balancers and web servers. But with maximum performance metrics. 1) EC2 will give full control to me but I will have to manage everything on my own. 2) EBS is a more or less managed system but will we lack any less control? 3) S3 is it scalable and can it handle large requests that will need load balancers and what about performance metrics.

See more
Replies (2)
Julien DeFrance
Principal Software Engineer at Tophatter · | 5 upvotes · 17.2K views

Hi Vibhanshu, When it comes to serving a static website, single page application, S3 or a combination of S3/CloudFront, is a great fit. There is no server that you need to manage, and S3 is as resilient and scalable at it gets. Moreover, it's certainly the most cost-effective solution you'll be able to come up with. Is your application fully static or does it come with compute needs? - Regardless, I would highly discourage you from running anything directly on a custom EC2 instance of your own, as this will from the get-go but also over time, come with high maintenance costs. - Elastic Beanstalk, (not to be mistaken with EBS, which acronym stands for Elastic Block Storage), on the contrary, is a rather powerful way to manage your applications and environments. Either via the CLI or through the console, you can easily configure your environment variables, load balancers, certificates, events/thresholds causing your instances counts to scale up/down, steaming of logs... - Elastic Beanstalk supports by default a couple of language, but these don't always allow you to run the version/dependency you need. For best decoupling from the underlying instances, you might want to look at leveraging Docker (Elastic Beanstalk has Docker-compatible AMIs), so you are in control of the stack you application runs on.

See more
Amazon S3Amazon S3

As you have only mentioned an Angular app so I'm assuming that you're hosting your backend APIs separately. You can do a production build of the Angular app and put it in S3 (without public access). Next, you can create a CloudFront distribution for this bucket and point a record in your Route53 hosted domain to this distribution. This way your website will be highly available and fast as caching will be available. Note: With this method, you should make sure when you push new build in the bucket, you do not delete the service-worker script or else service worker will stop caching.

I will not recommend using EC2 as it seems overkill for this task. You will have to manage an AMI with Nginx or Apache or some other static web server on your own. You will also have to attach an elastic IP with the instance or an ALB for connecting it to a Cloudfront distribution. Too much work.

You can go with Elastic Beanstalk. It will reduce the setup work but still big resources for an Angular SPA.

As a bonus, you can have multiple Cloudfront distribution+S3 bucket for multiple environments (production, staging, etc.) and use weighted routing in Route 53 record for AB test or blue/green deployments.

See more
Decisions about Amazon EC2 and AWS Elastic Beanstalk
Jerome/Zen Quah
Shared insights
Amazon EC2Amazon EC2DigitalOceanDigitalOcean

DigitalOcean was where I began; its USD5/month is extremely competitive and the overall experience as highly user-friendly.

However, their offerings were lacking and integrating with other resources I had on AWS was getting more costly (due to transfer costs on AWS). Eventually I moved the entire project off DO's Droplets and onto AWS's EC2.

One may initially find the cost (w/o free tier) and interface of AWS daunting however with good planning you can achieve highly cost-efficient systems with savings plans, spot instances, etcetera.

Do not dive into AWS head-first! Seriously, don't. Stand back and read pricing documentation thoroughly. You can, not to the fault of AWS, easily go way overbudget. Your first action upon getting your AWS account should be to set up billing alarms for estimated and current bill totals.

See more
Craig Finch
Principal Consultant at Rootwork InfoTech · | 6 upvotes · 185.8K views

We first selected Google Cloud Platform about five years ago, because HIPAA compliance was significantly cheaper and easier on Google compared to AWS. We have stayed with Google Cloud because it provides an excellent command line tool for managing resources, and every resource has a well-designed, well-documented API. SDKs for most of these APIs are available for many popular languages. I have never worked with a cloud platform that's so amenable to automation. Google is also ahead of its competitors in Kubernetes support.

See more
Stephen Fox
Artificial Intelligence Fellow · | 2 upvotes · 188.9K views

GCE is much more user friendly than EC2, though Amazon has come a very long way since the early days (pre-2010's). This can be seen in how easy it is to edit the storage attached to an instance in GCE: it's under the instance details and is edited inline. In AWS you have to click the instance > click the storage block device (new screen) > click the edit option (new modal) > resize the volume > confirm (new model) then wait a very long time. Google's is nearly instant.

  • In both cases, the instance much be shut down.

There also the preference between "user burden-of-security" and automatic security: AWS goes for the former, GCE the latter.

See more

Most bioinformatics shops nowadays are hosting on AWS or Azure, since they have HIPAA tiers and offer enterprise SLA contracts. Meanwhile Heroku hasn't historically supported HIPAA. Rackspace and Google Cloud would be other hosting providers we would consider, but we just don't get requests for them. So, we mostly focus on AWS and Azure support.

See more
Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Amazon EC2
Pros of AWS Elastic Beanstalk
  • 647
    Quick and reliable cloud servers
  • 515
  • 393
    Easy management
  • 277
    Low cost
  • 271
  • 89
    Market leader
  • 80
    Backed by amazon
  • 79
  • 67
    Free tier
  • 58
    Easy management, scalability
  • 13
  • 10
    Easy to Start
  • 9
  • 9
  • 9
    Widely used
  • 7
    Node.js API
  • 5
    Industry Standard
  • 4
    Lots of configuration options
  • 2
    GPU instances
  • 1
    Simpler to understand and learn
  • 1
    Extremely simple to use
  • 1
    Amazing for individuals
  • 1
    All the Open Source CLI tools you could want.
  • 77
    Integrates with other aws services
  • 65
    Simple deployment
  • 44
  • 28
  • 16
  • 4
  • 3
    Independend app container
  • 2
    Postgres hosting
  • 2
    Ability to be customized

Sign up to add or upvote prosMake informed product decisions

Cons of Amazon EC2
Cons of AWS Elastic Beanstalk
  • 13
    Ui could use a lot of work
  • 6
    High learning curve when compared to PaaS
  • 3
    Extremely poor CPU performance
  • 2
    Charges appear automatically after exceeding free quota
  • 1
    Lots of moving parts and config
  • 0
    Slow deployments

Sign up to add or upvote consMake informed product decisions

What is Amazon EC2?

It is a web service that provides resizable compute capacity in the cloud. It is designed to make web-scale computing easier for developers.

What is AWS Elastic Beanstalk?

Once you upload your application, Elastic Beanstalk automatically handles the deployment details of capacity provisioning, load balancing, auto-scaling, and application health monitoring.

Need advice about which tool to choose?Ask the StackShare community!

What companies use Amazon EC2?
What companies use AWS Elastic Beanstalk?
See which teams inside your own company are using Amazon EC2 or AWS Elastic Beanstalk.
Sign up for StackShare EnterpriseLearn More

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with Amazon EC2?
What tools integrate with AWS Elastic Beanstalk?

Sign up to get full access to all the tool integrationsMake informed product decisions

Blog Posts

Jan 26 2022 at 4:34AM


Amazon EC2RocksDBOpenTSDB+3
Dec 22 2020 at 9:26PM


Amazon EC2C langMemcached+4
May 21 2020 at 12:02AM

Rancher Labs

KubernetesAmazon EC2Grafana+12
What are some alternatives to Amazon EC2 and AWS Elastic Beanstalk?
Amazon LightSail
Everything you need to jumpstart your project on AWS—compute, storage, and networking—for a low, predictable price. Launch a virtual private server with just a few clicks.
Amazon S3
Amazon Simple Storage Service provides a fully redundant data storage infrastructure for storing and retrieving any amount of data, at any time, from anywhere on the web
Amazon EC2 Container Service
Amazon EC2 Container Service lets you launch and stop container-enabled applications with simple API calls, allows you to query the state of your cluster from a centralized service, and gives you access to many familiar Amazon EC2 features like security groups, EBS volumes and IAM roles.
A single process to commit code, review with the team, and deploy the final result to your customers.
JavaScript is most known as the scripting language for Web pages, but used in many non-browser environments as well such as node.js or Apache CouchDB. It is a prototype-based, multi-paradigm scripting language that is dynamic,and supports object-oriented, imperative, and functional programming styles.
See all alternatives