Amazon Web Services Enhances Elastic Beanstalk for Docker
|Richard Harris in Programming Friday, April 25, 2014|
Amazon Web Services (AWS) has enhanced Elastic Beanstalk with the ability to launch applications contained in Docker images or described in Dockerfiles. Docker provides a new runtime environment for Elastic Beanstalk, joining the existing Node.JS, PHP, Python, .NET, Java, and Ruby environments.
With the launch, developers now have the ability to build and test applications on a local desktop and then deploy them to the AWS Cloud via Elastic Beanstalk. Developers can use any desired version of the programming language, web server, and application server. These can configured as needed and extra packages and libraries can be installed.
Developers can launch existing public and private Docker images. Each image contains a snapshot of the application and its dependencies, and can be created locally using a few simple Docker commands. To use an image with Elastic Beanstalk, create a file called Dockerrun.aws.json. This file specifies the image to be used and can also set up a port to be exposed and volumes to be mapped in to the container from the host environment. If using a private Docker image, create a .dockercfg file, store it in Amazon S3, and reference it from the Authentication section of Dockerrun.aws.json.
There is also the ability to use a Dockerfile. The Docker commands contained in such a file will be processed and executed as part of the Auto Scaling configuration established by Elastic Beanstalk. Each freshly created EC2 instance used to host an Elastic Beanstalk application will be configured as directed by the Dockerfile.
AWS Elastic Beanstalk makes it easy to deploy and manage applications in the AWS cloud. After uploading an application, Elastic Beanstalk will provision, monitor, and scale capacity (Amazon EC2 instances), while also load balancing incoming requests across all of the healthy instances.
Docker automates the deployment of applications in the form of lightweight, portable, self-sufficient containers that can run in a variety of environments. Containers can be populated from pre-built Docker images or from a simple recipe known as a Dockerfile.
Docker's container-based model is very flexible. For example, build and test a container locally and then upload it to the AWS Cloud for deployment and scalability. Docker's automated deployment model ensures that the runtime environment for an application is always properly installed and configured, regardless of where you decide to host the application.
Read more: http://aws.typepad.com/aws/2014/04/aws-elastic-bea...