What Is Elastic Beanstalk and Why Do I Need It?

Amazon Web Services (AWS) comprises dozens of services, each of which exposes an area of
functionality. While the variety of services offers flexibility for how you want to manage
your AWS infrastructure, it can be challenging to figure out which services to use and how
to provision them.

With Elastic Beanstalk, you can quickly deploy and manage applications in the AWS cloud
without worrying about the infrastructure that runs those applications. AWS Elastic
Beanstalk reduces management complexity without restricting choice or control. You simply
upload your application, and Elastic Beanstalk automatically handles the details of
capacity provisioning, load balancing, scaling, and application health monitoring.
Elastic Beanstalk uses highly reliable and scalable services that are available in the
AWS Free Usage Tier such as:

You can also perform most deployment tasks, such as changing the size of
your fleet of Amazon EC2 instances or monitoring your application, directly from the Elastic Beanstalk
web interface.

To use Elastic Beanstalk, you create an application, upload an application version in the form of an application source bundle (for
example, a Java .war file) to Elastic Beanstalk, and then provide some information about
the application. Elastic Beanstalk automatically launches an environment and creates and
configures the AWS resources needed to run your code. After your environment is launched,
you can then manage your environment and deploy new application versions. The following
diagram illustrates the workflow of Elastic Beanstalk.

After you create and deploy your application, information about the
application—including metrics, events, and environment status—is available through
the AWS Management Console, APIs, or Command Line Interfaces, including the unified AWS CLI. For step-by-step instructions on how to create,
deploy, and manage your application using the AWS Management Console, go to Getting Started Using Elastic Beanstalk. To learn more about an Elastic Beanstalk
application and its components, see Elastic Beanstalk Components.

Elastic Beanstalk provides developers and systems administrators an easy, fast way to deploy and manage their applications without having to worry about AWS infrastructure.
If you already know the AWS resources you want to use and how they work, you might prefer AWS CloudFormation to create your AWS resources by creating a template.
You can then use this template to launch new AWS resources in the exact same way without having to recustomize your AWS resources. Once your resources are deployed, you can
modify and update the AWS resources in a controlled and predictable way, providing the same sort of version control over your AWS infrastructure that you exercise over your
software. For more information about AWS CloudFormation, go to
AWS CloudFormation Getting Started Guide.

Storage

Elastic Beanstalk does not restrict your choice of persistent storage and database service options. For
more information on AWS storage options, go to Storage Options in the AWS Cloud.

Pricing

There is no additional charge for Elastic Beanstalk. You pay only for the underlying AWS resources that
your application consumes. For details about pricing, see the Elastic Beanstalk service detail
page.

Community

Customers have built a wide variety of products, services, and applications on top of AWS. Whether you are searching for ideas about what to build, looking for
examples, or just want to explore, you can find many
solutions at the AWS Customer App Catalog.
You can browse by audience, services, and technology. We also invite you to share
applications you build with the community. Developer resources produced by the AWS community
are at http://aws.amazon.com/resources/.

Where to Go Next

This guide contains conceptual information about the Elastic Beanstalk web service, as well as
information about how to use the service to deploy web applications. Separate sections
describe how to use the AWS Management console, command line interface (CLI) tools, and
API to deploy and manage your Elastic Beanstalk environments. This guide also documents how Elastic Beanstalk is
integrated with other services provided by Amazon Web Services.

We recommend that you first read Getting Started Using Elastic Beanstalk to learn how to start using Elastic Beanstalk. Getting Started
steps you through creating, viewing, and updating your Elastic Beanstalk application, as well as
editing and terminating your Elastic Beanstalk environment. Getting Started also describes different
ways you can access Elastic Beanstalk. We also recommend that you familiarize yourself with Elastic Beanstalk
concepts and terminology by reading How Does Elastic Beanstalk Work?.