With Elastic Beanstalk, you can quickly deploy and manage applications in the AWS Cloud without worrying about the infrastructure that runs those applications.
You simply upload your application, and Elastic Beanstalk automatically handles the details of
application health monitoring
Its uses ASG, ELB, EC2, RDS, SNS, CloudWatch and S3 to provision resources.
Elastic Beanstalk supports applications developed in Java, PHP, .NET, Node.js, Python, and Ruby, as well as different container types for each language.
A container defines the infrastructure and software stack to be used for a given environment.
When you deploy your application, Elastic Beanstalk provisions one or more AWS resources, such as Amazon EC2 instances.
The software stack that runs on your Amazon EC2 instances depends on the container type. For example, Elastic Beanstalk supports two container types for Node.js: a 32-bit Amazon Linux image and a 64-bit Amazon Linux image.
You can interact with Elastic Beanstalk by using the AWS Management Console, the AWS Command Line Interface (AWS CLI), or eb, a high-level CLI designed specifically for Elastic Beanstalk.
Web server environments
AWS resources created for a worker environment tier
include an Auto Scaling group,
one or more Amazon EC2 instances,
and an IAM role.
provisions an Amazon SQS queue if you don’t already have one.
Elastic Beanstalk installs the necessary support files for your programming language of choice
a daemon on each EC2 instance in the Auto Scaling group. The daemon is responsible for pulling requests from an Amazon SQS queue and then sending the data to the web application running in the worker environment tier that will process those messages.
If you have multiple instances in your worker environment tier, each instance has its own daemon, but they all read from the same Amazon SQS queue.