AWS,  Cloud Computing

Elastic Beanstalk

Elastic Beanstalk is a fully managed service from AWS that supports the deployment and scalability of web applications and services. Elastic Beanstalk is free and only the resources used to store and run the application is paid for. Beanstalk is a great way to leverage the AWS capabilities for application deployment and infrastructure management. Various languages, application servers and containerization with Docker is also supported.

Supported Platforms

  1. Apache Tomcat for Java applications
  2. Apache HTTP Server for PHP and Python applications
  3. NGINX or Apache HTTP Server for Node.js applications
  4. Passenger or Puma for Ruby applications
  5. Microsoft IIS 7.5, 8.0 & 8.0 for .NET applications
  6. Java SE
  7. Docker (single container, multicontainer & pre-configured Docker)
  8. Go
  9. Packer builder

Elastic Beanstalk will provision the necessary resources that your web application requires to run in the cloud. Elastic Beanstalk also takes care of automatically sending server and application logs to S3.

Benefits of Elastic Beanstalk

  1. Automatic resource and capacity provisioning
  2. Automatic load balancing
  3. Auto-scaling
  4. Application health monitoring

While Elastic Beanstalk provides the convenience of automatic resource provision, the ability to manually manage resources on the EC2 instance, database services and application configuration if further customization is required is available. Default environment settings can be changed on the in the Management Console

Workflow

  1. Develop and version the application code
  2. Upload the application version to S3
  3. Let Beanstalk know which version to deploy
  4. Beanstalk deploys the application and provides the application URL
  5. Beanstalk notifies you that the environment is built and the application deployment is completed

Any application enhancements or changes made will follow a continuous integration workflow to be deployed to the existing environment. If a rollback is required, a previous version can be deployed.

There are many tools that assist with the deployment of applications to S3:

  • AWS Management Console
  • Git deployment with CLI
  • AWS Toolkit for Visual Studio or Visual Studio Code
  • AWS Toolkit for Eclipse

Configuration is managed with either JSON or YAML and is stored in a configuration folder .ebextensions located at the top level of the project’s source code. Configuration files have a .config filetype.

Leave a Reply

Your email address will not be published. Required fields are marked *