AWS Elastic Beanstalk makes it even easier for developers to
quickly deploy and manage applications in the AWS cloud. Developers
simply upload their application, and Elastic Beanstalk automatically
handles the deployment details of capacity provisioning, load
balancing, auto-scaling, and application health monitoring.
Q: Who should use AWS Elastic Beanstalk?
Those who want to deploy and manage their applications within minutes in the AWS cloud. You don’t
need experience with cloud computing to get started. AWS Elastic Beanstalk supports Java, Node.js, PHP, Python, Ruby, and .NET web applications.
Q: What languages and development stacks does AWS Elastic Beanstalk support?
AWS Elastic Beanstalk supports the following languages and development stacks:
Apache Tomcat for Java applications
Apache HTTP Server for PHP applications
Apache HTTP Server for Python applications
Nginx or Apache HTTP Server for Node.js applications
Passenger for Ruby applications
Microsoft IIS 7.5 for .NET applications
Q: Will AWS Elastic Beanstalk support other languages?
Yes. AWS Elastic Beanstalk is designed so that it can be extended to support multiple development stacks and
programming languages in the future. AWS is working with solution providers on the APIs and
capabilities needed to create additional Elastic Beanstalk offerings.
Q: What can developers now do with AWS Elastic Beanstalk that they could not before?
AWS Elastic Beanstalk automates the details of capacity provisioning, load balancing, auto scaling, and
application deployment – creating an environment that runs a version of your application. You can
simply upload your deployable code (e.g. WAR file) or push your Git repository, and AWS Elastic Beanstalk does the rest.
The AWS Toolkit for Visual Studio and the AWS Toolkit for Eclipse allow you to deploy your application to AWS Elastic Beanstalk and manage it, without leaving your IDE.
Once your application is running, Elastic Beanstalk automates management tasks such as monitoring,
application version deployment, a basic health check, and facilitates log file access.
By using Elastic Beanstalk, developers can focus on developing their application and are freed from
deployment oriented tasks such as provisioning servers, setting up load balancing or managing scaling.
Q: How is AWS Elastic Beanstalk different from existing
application containers or platform-as-a-service solutions?
Most existing application containers or platform-as-a-service
solutions, while reducing the amount of programming required,
significantly diminish developers’ flexibility and control.
Developers are forced to live with all the decisions predetermined by
the vendor - with little to no opportunity to take back control over
various parts of their application’s infrastructure. However, with
AWS Elastic Beanstalk, developers retain full control over the AWS
resources powering their application. If developers decide they want
to manage some (or all) of the elements of their infrastructure, they
can do so seamlessly by using Elastic Beanstalk’s management
capabilities.
Q: What elements of my application can I control when using AWS Elastic Beanstalk?
With AWS Elastic Beanstalk, you can:
Select the operating system that matches your application requirements (e.g., Amazon Linux or Windows Server 2008 R2)
Choose from several available database and storage options
Enable login access to Amazon EC2 instances for immediate and direct troubleshooting
Quickly improve application reliability by running in more than one Availability Zone
Enhance application security by enabling HTTPS protocol on the load balancer
Access built-in Amazon CloudWatch monitoring and getting notifications on application health and other
important events
Adjust application server settings (e.g. JVM settings) and pass environment variables
Run other application components, such as a memory caching service, side-by-side in Amazon EC2
Access log files without logging in to the application servers
Q: What are the cloud resources powering my AWS Elastic Beanstalk application?
AWS Elastic Beanstalk uses proven AWS features and services such as Amazon EC2, Amazon RDS, Elastic Load
Balancing, Auto Scaling, Amazon S3, and Amazon SNS to create an environment
that runs your application. The current version of AWS Elastic Beanstalk uses the Amazon Linux AMI or the Windows Server 2008 R2 AMI.
Q: What kinds of applications are supported by AWS Elastic Beanstalk?
AWS Elastic Beanstalk supports Java, Node.js, PHP, Python, Ruby, and .NET and is ideal for web applications.
However, due to Elastic Beanstalk’s open architecture, non-web applications
can also be deployed using Elastic Beanstalk. We expect to support additional application types and
programming languages in the future.
Q: What operating systems does AWS Elastic Beanstalk use?
AWS Elastic Beanstalk runs on the Amazon Linux AMI and the Windows Server 2008 R2 AMI. Both AMIs are supported and maintained by Amazon Web Services and are designed to provide a stable, secure, and high performance
execution environment for Amazon EC2 cloud computing.
Q: How quickly will my application start running?
It typically takes a few minutes to create the AWS resources to run your application, measured from the
time you upload your application version (e.g. WAR file, ASP.NET files, Node.js files, PHP files, Python files, or Ruby files) to when it is fully deployed and accessible to
your users. This time is dependent on a number of factors including: the size of your deployable code
and the number of application servers you are deploying.
Q: How quickly will my application get updated?
Deploying new application versions to existing resources (e.g. environments) happens much faster (typically under a minute)
and is mostly dependent on the size of the new application version. With Git deployment, only the modified files are transmitted
to AWS Elastic Beanstalk and updates typically take a few seconds.
Q: How quickly can my application scale up and down?
AWS Elastic Beanstalk provides a truly elastic environment using Auto Scaling. Your application can be
configured to automatically scale tens or even hundreds of times based on thresholds such as CPU
utilization or network bandwidth. These thresholds can be easily configured for your specific application
using the Elastic Beanstalk console. With Elastic Beanstalk, you don’t have to
worry if you will be able to scale quickly to handle peaks in traffic or users, nor if you will be forced to
pay for resources that you don’t need.
Q: Can I have multiple versions of my application running at the same time?
Yes. AWS Elastic Beanstalk is designed to support multiple running environments such as one for
integration testing, one for pre-production, and one for production. Each environment is independently
configured and runs on its own separate AWS resources. Elastic Beanstalk also stores and tracks
application versions over time so an existing environment can be easily rolled back to a prior version or a
new environment can be launched using an older version to try and reproduce a customer problem.
Q: How many applications can I run with AWS Elastic Beanstalk?
You can create up to 25 applications and 500 application versions. By default, you can run up to 10
environments across all of your applications. If you are also using AWS outside of AWS Elastic Beanstalk, you
may not be able to create 10 environments since other limits may be hit sooner. For example, the
default AWS account limits allow you to launch up to 20 EC2 instances and create up to 10 Elastic Load
Balancers. If you need more resources, complete the AWS Elastic Beanstalk request form and your
request will be promptly evaluated.
Q: Can I use AWS Elastic Beanstalk to deploy applications that must be highly available?
Yes. To do this, you edit your environment configuration settings, select 2 or more instances for Auto
Scaling minimum, and set multiple availability zones to “Any 2”. AWS Availability Zones are designed to
be physically distinct, fail independently, and be reliable.
Q: What happens if my application stops responding to requests?
AWS Elastic Beanstalk applications are protected against failures in the underlying infrastructure. If an Amazon
EC2 instance fails for any reason, AWS Elastic Beanstalk will use Auto Scaling to automatically launch a
new instance. Elastic Beanstalk can also detect if your application is not responding on the custom
URL even though the underlying infrastructure appears healthy and will log that as an environment
event so you can take appropriate action (e.g. a bad version was deployed).
Q: Which AWS regions is AWS Elastic Beanstalk available in?
AWS Elastic Beanstalk is currently available in multiple Availability Zones in the following regions:
US East (Virginia)
US West (Oregon)
US West (Northern California)
EU (Ireland)
Asia Pacific (Singapore)
Asia Pacific (Sydney)
Asia Pacific (Tokyo)
South America (São Paulo)
Q: How do I access AWS Elastic Beanstalk?
You can use the AWS Management Console, the AWS Elastic Beanstalk command line interface, the AWS Toolkit for Visual Studio, the AWS
Toolkit for Eclipse, AWS Elastic Beanstalk API or AWS SDKs. You can also use Git for deploying your code to Elastic Beanstalk.
Q: Can I use an integrated development environment like Eclipse or Microsoft Visual Studio?
Yes. You can use Eclipse and Visual Studio to deploy your application to AWS Elastic Beanstalk.
You can use the AWS Toolkit for Eclipse for Java applications and the AWS Toolkit for Visual Studio for .NET applications.
The toolkits allow you to develop your application, deploy it to
Elastic Beanstalk, and even test it out without having to switch your focus away from your IDE.
Q: Can I use Git to deploy my application to AWS Elastic Beanstalk?
Yes. You can use Git to deploy your application to AWS Elastic Beanstalk. For more details, go to
"Deploying Applications in PHP Using Git"
in the AWS Elastic Beanstalk Developer Guide.
To sign up for AWS Elastic Beanstalk, click the Sign Up Now button on the
Elastic Beanstalk detail page. You must have an Amazon Web Services account to access this service; if
you do not already have one, you will be prompted to create one when you begin the Elastic
Beanstalk process. After signing up, please refer to the AWS Elastic Beanstalk Getting Started Guide.
Q: Why am I asked to verify my phone number when signing up for AWS Elastic Beanstalk?
AWS Elastic Beanstalk registration requires you to have a valid
phone number and email address on file with AWS in case we ever need
to contact you. Verifying your phone number takes only a few minutes
and involves receiving an automated phone call during the registration
process and entering a PIN number using the phone key pad.
Q: How do I get started after I have signed up?
The best way to get started with AWS Elastic Beanstalk is to work through the AWS Elastic Beanstalk Getting Started Guide,
part of our technical documentation. Within a few minutes, you will be able to deploy and use a sample
application or upload your own application.
Q: Is there a sample application that I can use to check out AWS Elastic Beanstalk?
Yes. AWS Elastic Beanstalk includes a sample application that you can use to test drive the offering and
explore its functionality.
Q: Does AWS Elastic Beanstalk store anything in Amazon S3?
Yes. AWS Elastic Beanstalk stores your application files and optionally server log files in Amazon S3. If
you are using the AWS Management Console, Git, the AWS Toolkit for Visual Studio, or AWS Toolkit for Eclipse, an Amazon S3 bucket will be created in
your account for you and the files you upload will be automatically copied from your local client to
Amazon S3. Optionally, you may configure Elastic Beanstalk to copy your server log files every hour to
Amazon S3. You do this by editing the environment configuration settings.
Q: Can I use Amazon S3 to store application data like images?
Yes. You can use Amazon S3 for application storage. The easiest way to do this is by including the AWS
SDK as part of your application’s deployable file. For example, you can include the AWS SDK for Java as part of your application's WAR file.
Q: What database solutions can I use with AWS Elastic Beanstalk?
AWS Elastic Beanstalk does not restrict you to any specific data persistence technology. You can choose to use
Amazon Relational Database Service (Amazon RDS), Amazon DynamoDB, Amazon SimpleDB, or use Microsoft SQL Server, Oracle, or other relational databases
running on Amazon EC2.
Q: How do I setup a database for use with AWS Elastic Beanstalk?
Elastic Beanstalk can automatically provision an Amazon RDS DB Instance. The connectivity information to the DB Instance is exposed to your application by environment variables. To learn more about how to configure RDS DB Instances for your environment, go to the Elastic Beanstalk Developer Guide.
Q: Does this mean I need to modify the application code when moving from test to production?
Not with AWS Elastic Beanstalk. With Elastic Beanstalk, you may specify the connection information in the
environment configuration. By extracting the connection string from the application code, you can
easily configure different Elastic Beanstalk environments to use different databases.
By default, your application is available publicly at myapp.elasticbeanstalk.com for anyone to access. You can use Amazon VPC to provision a private, isolated section of your application in a virtual network that you define. This virtual network can be made private through specific security group rules, network ACLs, and custom route tables.
You can also easily control what other incoming traffic (such as SSH) is delivered or not to your
application servers by changing the EC2 Security group settings.
Q: Can I run my application inside a Virtual Private Cloud (VPC)?
Q: Where can I find more information about security and running applications on AWS?
For more information about security on AWS please refer to our Amazon Web Services: Overview of
Security Processes document and visit our Security Center.
Q: Is it possible to use Identity & Access Management (IAM) with AWS Elastic Beanstalk?
Yes. IAM users with the appropriate permissions can now interact with AWS Elastic Beanstalk.
Q: Why should I use IAM with AWS Elastic Beanstalk?
IAM allows you to manage users and groups in a centralized manner. You can control which
IAM users have access to AWS Elastic Beanstalk, and limit
permissions to read-only access to Elastic Beanstalk for operators who should not be able to perform actions
against Elastic Beanstalk resources. All user activity within your account will be aggregated under a single AWS bill.
Q: How do I create IAM users?
You can use the IAM console, IAM command line interface, or IAM API
to provision IAM users. By default, IAM users have no access to AWS services until permissions are granted.
Q: How do I grant an IAM user access to AWS Elastic Beanstalk?
You can grant IAM users access to services by using policies. To simplify the process of granting access
to AWS Elastic Beanstalk, you can use one of the policy templates in the
IAM console to help you get started. Elastic Beanstalk
offers two templates: a read-only access template and a full-access template. The read-only template grants
read access to Elastic Beanstalk resources. The full-access template grants full access to all Elastic Beanstalk
operations as well as permissions to manage dependent resources such as Elastic Load Balancing, Auto Scaling, and Amazon S3.
You can also use the AWS Policy Generator to create custom policies. For more details, see the AWS Elastic Beanstalk Developer Guide.
Q: Can I restrict access to specific AWS Elastic Beanstalk resources?
Yes. You can allow or deny permissions to specific AWS Elastic Beanstalk resources such as applications, application versions, and environments.
Q: Who gets billed for the AWS Resources that an IAM user creates?
All resources created by IAM users under a root account are owned and billed to the root account.
Q: Who has access to an AWS Elastic Beanstalk environment launched by an IAM user?
The root account has full access to all AWS Elastic Beanstalk environments launched by any IAM user under that account.
If you use the Elastic Beanstalk template to grant read-only access to an IAM user, that user will be
able to view all applications, application versions, environments and any associated resources in that account.
If you use the Elastic Beanstalk template to grant full access to an IAM user, that user will be able to create,
modify, and terminate any Elastic Beanstalk resources under that account.
Q: Can an IAM user access the AWS Elastic Beanstalk console?
Yes. An IAM user can access the AWS Elastic Beanstalk console using their username and password.
Q: Can an IAM user call the AWS Elastic Beanstalk API?
Yes. An IAM user can use their access key and secret key to perform operations using the Elastic Beanstalk API.
Q: Can an IAM user use the AWS Elastic Beanstalk command line interface?
Yes. An IAM user can use their access key and secret key to perform operations using the AWS Elastic Beanstalk command line interface.
There is no additional charge for AWS Elastic Beanstalk – you only pay for the AWS resources actually
used to store and run your application. New AWS customers who are eligible for the AWS free usage
tier may deploy an application that runs within the free usage tier using the default settings of
Elastic Beanstalk.
Q: How much do the AWS resources powering my application on AWS Elastic Beanstalk cost?
You pay only for what you use and there is no minimum fee for the use of any AWS resources. For Amazon EC2
pricing information, please visit the pricing section on the EC2 detail page. For Amazon S3 pricing information,
please visit the pricing section on the S3 detail page.
You can use the AWS simple calculator to estimate your bill for different application sizes.
Q: How do I check how many AWS resources have been used by my application and access my bill?
You can view your charges for the current billing period at any time on the Amazon Web Services web
site by logging into your Amazon Web Services account and clicking Account Activity under Your Web
Services Account.