AWS Beanstalk

Posted By : Saurav Kumar | 30-Mar-2022
  • Elastic Beanstalk can manage and deploy applications in the AWS Cloud without having knowledge about the infrastructures that are responsible for running those applications. 
    • AWS Elastic beanstalk is a Platform as a service (PAAS) solution. 
    • You can simply upload your application, and Elastic Beanstalk automatically handles the details of capacity provisioning, load balancing, scaling, and application health monitoring.
    • Elastic Beanstalk supports applications developed in Go, Java, .NET, Node.js, PHP, Python, Packer Builder, Glassfish, Docker, Tomcat, and Ruby.
    • There are many PAAS solutions in the cloud computing space including Open Shift, Azure App Service, Google App Engine, Python Anywhere, and Scalingo.
    • There is no extra charge to use Elastic Beanstalk to deploy your applications, you are only paying for the resources that are created for your application.
    • Elastic Beanstalk takes care of the hosting infrastructure, operating system, Security, Compiler and remaining services to your application.
    • You can develop code in various languages which are then zipped up and the zip file is used when instantiating a new elastic beanstalk instance.

 

  • Challenges faced by developers:
    • Multiple components need to be created and configured while deploying a three-tier architecture (client, web server, and database)
    • You might need to deploy multiple applications.
    • Each application may include several environments like test, dev and prod
    • Keep multiple application versions of each application at the same time
    • Complexities involved while managing infrastructure
    • Scaling concerns
    • Achieve consistency across different applications and environments
    • Developers want their code to run

 

  • Workflow of AWS Elastic BeanStalk:

 

 

  • Deployment Options for Updates:
    • All the same time (deploy all in one go): Fastest, but instances aren’t available to serve traffic for a bit (downtime)

 

  • Rolling:  Update a few instances at a time (batch), and then move onto the next batch once the first batch is healthy

 



 

  • Rolling with additional batches: Like rolling, but turns up new instances to move the batch (so that the old application is still available)

 


 

  • Immutable: Spins up new instances in a new Auto Scaling Group (ASG), deploys version to these instances, and then swaps all the instances when everything is healthy.



 

  • Elastic Beanstalk Concepts:
    • Application:
      •  In Elastic Beanstalk, you upload your application as a zip file with all the contents in it. 
      • An Elastic Beanstalk application, essentially, is logically considered to be a file containing the code.
  • Application Version:
    • Application Version refers to the web application that you have uploaded and will upload its next upgrade version.

 

  • Environment:
    • The gathering of AWS resources is an environment and an environment can only run one application version at a time. You may run multiple applications in multiple environments at a time.

 

  • Environment Configuration:
    • In the configuration of an environment is a set of parameters like security group, Instance type, and platform version. If you swap the configuration, Elastic Beanstalk implants it dynamically. 

 

  • Environment Tier:
    • There are two Environment tiers available in Elastic Beanstalk
      • Web Server Environment
      • Worker Environment
    • A program using HTTP requests runs in a Web Server Environment.
    • A program using Amazon Simple Queue Service (SQS) runs in a client Environment.

 

  • Platform:
    • A platform is a connection of the AWS Beanstalk components, an operating system, a programming language, and a web server to run the applications. We can choose our platform while creating our application or environment. We don’t need to update it or include software patches, AWS takes care of it. 
  • Conclusion:
    • Used the AWS Console to deploy and verify AWS resources using an AWS BeanStalk template. Used Tools for Eclipse to deploy a Java Application to an Elastic Beanstalk environment. Installed and construct the AWS Elastic Beanstalk CLI tool. Used the AWS Elastic Beanstalk CLI to deploy an update to a current Elastic Beanstalk environment.

About Author

Author Image
Saurav Kumar

Saurav is a DevOps Engineer. He has good knowledge of AWS, Linux, Jenkins, Docker.

Request for Proposal

Name is required

Comment is required

Sending message..