www.fgks.org   »   [go: up one dir, main page]

×
 
AWS Elastic Beanstalk (beta) Easy to begin, Impossible to outgrow

AWS Elastic Beanstalk is an even easier way for you to quickly deploy and manage applications in the AWS cloud. You simply upload your application, and Elastic Beanstalk automatically handles the deployment details of capacity provisioning, load balancing, auto-scaling, and application health monitoring. At the same time, with Elastic Beanstalk, you retain full control over the AWS resources powering your application and can access the underlying resources at any time. Elastic Beanstalk leverages AWS services such as Amazon Elastic Cloud Compute (Amazon EC2), Amazon Simple Storage Service (Amazon S3), Amazon Simple Notification Service (Amazon SNS), Elastic Load Balancing, and Auto Scaling to deliver the same highly reliable, scalable, and cost-effective infrastructure that hundreds of thousands of businesses depend on today. AWS Elastic Beanstalk is easy to begin and impossible to outgrow.

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 pre-determined by the vendor - with little to no opportunity to take back control over various parts of their application's infrastructure. However, with Elastic Beanstalk, you retain full control over the AWS resources powering your application. If you decide you want to take over some (or all) of the elements of their infrastructure, you can do so seamlessly by using Elastic Beanstalk's management capabilities.

To ensure easy portability of your application, Elastic Beanstalk is built using familiar software stacks such as the Apache HTTP Server for Node.js, PHP and Python, Passenger for Ruby, IIS 7.5 for .NET, and Apache Tomcat for Java. There is no additional charge for Elastic Beanstalk - you pay only for the AWS resources needed to store and run your applications.

Get Started with
AWS for Free



This page contains the following categories of information. Click to jump down:

AWS Elastic Beanstalk Functionality

For .NET Developers

To deploy .NET applications using AWS Elastic Beanstalk, you simply:

  • Create your application as you normally would using Microsoft Visual Studio.
  • Publish your application to AWS Elastic Beanstalk using the AWS Toolkit for Visual Studio.
  • Alternatively, you can package your deployable code into a Microsoft Web Deploy .zip package and upload to AWS Elastic Beanstalk using the AWS Management Console.
  • Behind the scenes, Elastic Beanstalk handles the provisioning of a load balancer and the deployment of your Microsoft Web Deploy package to one or more Amazon EC2 instances running Windows Server 2008 R2 and IIS 7.5.
  • Within minutes you can access your application at a customized URL (e.g. http://myapp.elasticbeanstalk.com/).

For Node.js, PHP, Python, and Ruby Developers

To deploy your application using AWS Elastic Beanstalk, you simply:

  • Create your application as you normally would using any editor or IDE.
  • Create an Elastic Beanstalk Node.js, PHP, Python, or Ruby environment using the AWS Management Console, the command line interface, or the web service APIs. Behind the scenes, Elastic Beanstalk handles the provisioning of a load balancer and Amazon EC2 resources.
  • Install and configure Git for deployments.
  • Commit and push your changes using Git. Elastic Beanstalk deploys your files to one or more Amazon EC2 instances running the Apache HTTP Server.
  • Within a few minutes you will be able to access your application at a customized URL (e.g. http://myapp.elasticbeanstalk.com/).

For Java Developers

To deploy Java applications using AWS Elastic Beanstalk, you simply:

  • Create your application as you normally would using any editor or IDE (e.g. Eclipse).
  • Package your deployable code into a standard Java Web Application Archive (WAR file).
  • Upload your WAR file to Elastic Beanstalk using the AWS Management Console, the AWS Toolkit for Eclipse, the web service APIs, or the command line interface.
  • Deploy your application. Behind the scenes, Elastic Beanstalk handles the provisioning of a load balancer and the deployment of your WAR file to one or more Amazon EC2 instances running the Apache Tomcat application server.
  • Within a few minutes you will be able to access your application at a customized URL (e.g. http://myapp.elasticbeanstalk.com/).

AWS Elastic Beanstalk Functionality

Once an application is running, Elastic Beanstalk provides several management features such as:

  • Easily deploy new application versions to running environments (or rollback to a previous version).
  • Access built-in CloudWatch monitoring metrics such as average CPU utilization, request count, and average latency.
  • Receive e-mail notifications through Amazon Simple Notification Service (Amazon SNS) when application health changes or application servers are added or removed.
  • Access server log files without needing to login to the application servers.
  • Quickly restart the application servers on all Amazon EC2 instances with a single command.

With Elastic Beanstalk, developers retain full control over the AWS resources powering their application, and can perform a variety of functions by simply adjusting default configuration settings from the Elastic Beanstalk management console, including:

  • Selecting the most appropriate Amazon EC2 instance type that matches the CPU and memory requirements of their application
  • Choosing from several available database and storage options such as Amazon RDS, Amazon DynamoDB, Amazon SimpleDB, Microsoft SQL Server, Oracle, IBM DB2, or Informix.
  • Enabling login access to Amazon EC2 instances for immediate and direct troubleshooting
  • Quickly improving application reliability by running in more than one Availability Zone
  • Enhancing application security by enabling HTTPS protocol on the load balancer
  • Adjusting application server settings (e.g. JVM settings) and passing environment variables
  • Running other application components, such as a memory caching service, side-by-side in Amazon EC2
  • Adjust Auto Scaling settings to control the metrics and thresholds used to determine when to add or remove instances from an environment

Service Highlights

Easy to begin – Elastic Beanstalk is a quick and simple way to deploy your application to AWS. You simply use the AWS Management Console, Git deployment, or an integrated development environment (IDE) such as Eclipse or Visual Studio to upload your application, and Elastic Beanstalk automatically handles the deployment details of capacity provisioning, load balancing, auto-scaling, and application health monitoring. Within minutes, your application will be ready to use without any infrastructure or resource configuration work on your part.

Impossible to outgrow – Elastic Beanstalk automatically scales your application up and down based on default Auto Scaling settings. You can easily adjust Auto Scaling settings based on your specific application's needs. For example, you can use CPU utilization to trigger Auto Scaling actions. With Elastic Beanstalk, your application can handle peaks in workload or traffic while minimizing your costs.

Complete control – Elastic Beanstalk lets you "open the hood" and retain full control over the AWS resources powering your application. If you decide you want to take over some (or all) of the elements of your infrastructure, you can do so seamlessly by using Elastic Beanstalk's management capabilities. For example, you can browse log files, monitor application health, adjust auto-scaling rules, setup email notifications, and even pass environment variables through the Elastic Beanstalk console.

Flexible – You have the freedom to select the Amazon EC2 instance type that is optimal for your application based on CPU and memory requirements, and can choose from several available database options. For example, you can specify a deployment consisting of high-memory instances if your web application has a large memory footprint.

Reliable – Elastic Beanstalk runs within Amazon's proven network infrastructure and datacenters, and provides an environment where developers can run applications requiring high durability and availability.


Pricing

There is no additional charge for Elastic Beanstalk – you only pay for the underlying AWS resources (e.g. Amazon EC2, Amazon S3) that your application consumes.

New AWS customers who are eligible for the AWS free usage tier can deploy an application in Elastic Beanstalk for free, as the default settings for Elastic Beanstalk allow a low traffic application to run within the free tier without incurring charges. If these applications require more resources than the default environment provides, customers will be charged the normal AWS rates for the incremental resources the application consumes.

The costs of running a web site using Elastic Beanstalk can vary based on several factors such as the number of Amazon EC2 instances needed to handle your web site traffic, the bandwidth consumed by your application, and which database or storage options your application uses. The principal costs for a web application will typically be for the Amazon EC2 instance(s) and for the Elastic Load Balancing that distributes traffic between the instances running your application.

The tables below are examples that show the monthly costs of running a low traffic web site using the Elastic Beanstalk default settings, both with and without the AWS free tier:

Application Running on Amazon Linux

Service and Resource Unit Cost Breakout Cost
Amazon EC2 Linux t1.micro instance1$0.02/hr * 24 hours * 30 days$14.40
Elastic Load Balancer 1 $0.025/hr * 24 hours * 30 days $18.00
Elastic Load Balancer Data Processing 15GB $0.008/GB * 15GB $ 0.12
Elastic Block Store volume 8GB $0.10/GB * 8GB $ 0.80
S3 Storage for WAR File and Access 1GB$0.095/1GB + $0.01 for<1k PUTs + $0.01 for <10k GETs $ 0.115
Bandwidth In and Out 15GB Inbound is free, 1 GB out is free + 14GB *$0.12 $ 1.68
  Total Monthly Cost without Free Tier $35.115
  Total Monthly Cost with Free Tier $0

Application Running on Windows Server

Service and Resource Unit Cost Breakout Cost
Amazon EC2 Windows t1.micro instance1$0.02/hr * 24 hours * 30 days$14.40
Elastic Load Balancer 1 $0.025/hr * 24 hours * 30 days $18.00
Elastic Load Balancer Data Processing 15GB $0.008/GB * 15GB $ 0.12
Elastic Block Store volume 8GB $0.10/GB * 8GB $ 0.80
S3 Storage for WAR File and Access 1GB$0.095/1GB + $0.01 for<1k PUTs + $0.01 for <10k GETs $ 0.115
Bandwidth In and Out 15GB Inbound is free, 1 GB out is free + 14GB *$0.12 $ 1.68
  Total Monthly Cost without Free Tier $35.115
  Total Monthly Cost with Free Tier $0

For more details on AWS service pricing, see the pricing section of relevant AWS service detail pages:

Amazon EC2 Pricing (includes pricing for instances, load balancing, elastic block storage, and data transfer)

Amazon S3 Pricing (includes pricing for storage and data transfer)

If you want to use an AWS database service with Elastic Beanstalk, see links below for pricing:

Amazon RDS Pricing (includes pricing for database instances, backup storage, and data transfer)

Amazon DynamoDB (include pricing for data storage, throughput capacity, and data transfer)

Amazon SimpleDB Pricing (includes pricing for storage, data processing, and data transfer)

When you sign up for Elastic Beanstalk, in order to avoid having to sign up separately for all the AWS services Elastic Beanstalk may employ, we automatically sign you up for these services. With all AWS services, you only pay for what you use, with no minimum fee and no upfront commitment.


Detailed Description

Working with Elastic Beanstalk

Elastic Beanstalk allows you to deploy an application quickly while retaining as much control as you wish to have over the underlying infrastructure. You start by creating an application version, which is simply a labeled iteration (e.g. "Version 1.5") of your application's deployable code, which you store in Amazon S3. For example, an application version refers to a specific Git deployment of a PHP application. Elastic Beanstalk provides a number of tools to make creating application versions easy including the AWS Management Console, Git deployment and the command line interface, the AWS Toolkit for Visual Studio, and the AWS Toolkit for Eclipse. Next, you specify which application version you wish to deploy, and launch it into an environment. An environment represents the AWS resources (e.g. load balancer, Auto Scaling group, and EC2 instances) created specifically to run your application. When you launch an environment, Elastic Beanstalk automatically handles the deployment details of capacity provisioning, load balancing, auto-scaling, and application health monitoring without you having to specify anything regarding the size or type of these resources, and notifies you once the environment has been launched. You can also deploy a different application version to a running environment if, for example, you have a newer version of your code you wish to deploy, or if you want to roll back to a previous version.

Environment Details

An environment using the default settings will run a single Amazon EC2 micro instance (application server) and an Elastic Load Balancer. The EC2 instance is configured for Auto Scaling, which means that additional instances will be added automatically to handle any peaks in workload or traffic (and incremental instances will be discarded if traffic subsides). Elastic Beanstalk provides your application with a URL (e.g. http://myapp.elasticbeanstalk.com/), which can be typed into a web browser to view your running application. The load balancer also distributes incoming traffic across multiple Amazon EC2 instances as your application scales up and down, and automatically routes incoming traffic to only healthy instances to provide a reliable environment for your application. Each Amazon EC2 instance is built from an Amazon Machine Image (AMI), which contains all the information needed to create a new instance of a server. Elastic Beanstalk uses the Amazon Linux AMI or the Windows Server 2008 R2 AMI by default. These AMIs contain all the software to act as both a web server and application server (e.g., Linux, Apache, and PHP). If you wish to run more than 10 environments, upload more than 500 application versions, or launch more than 20 Amazon EC2 instances, please complete the AWS Elastic Beanstalk limit request form and we will evaluate your request promptly.

Getting Started

The best way to get started with AWS Elastic Beanstalk is to work through the 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.


Intended Usage and Restrictions

Your use of this service is subject to the Amazon Web Services Customer Agreement.

©2013, Amazon Web Services, Inc. or its affiliates. All rights reserved.