AWS - ElasticBeanstalk Essentials

AWS - ElasticBeanstalk Essentials

In the mainstream application development, everything is riding on web-based applications. Ever since browsers became powerful, the web development took off and this created new trend in software delivery models like SaaS. Now, building web application is easier than ever due to frameworks and platforms that are available in all the popular programming languages. The hard part is how to deploy those applications and manage them.

If you want to use cloud to deploy your applications, then you would benefit a lot from Elastic Beanstalk from AWS. In this article, I will go over some of the important benefits of using Elastic Beanstalk.

Some notable features of Elastic Beanstalk.

  1. Elastic Beanstalk has the built-in automation for provisioning VMs and other related services to build and deploy web-based applications.
  2. Support for all mainstream programming languages for runtime as well as docker support to deploy applications with your own dependencies and environment.
  3. Worker Environment supports batch jobs and background processes.
  4. Built-in support for load balancers makes it easy to configure load balancing.
  5. Integrated monitoring tools helps you monitor your applications continuously and take actions accordingly.
  6. Support for containerized application deployments to make it easy to run apps with lots of dependencies. For example, you application depends on some proprietary C++ library that needs a specific Linux environment to run. You can use contains to package this.
  7. Pricing for ElasticBeanstalk is Zero, i.e. you only pay for the underlying resources. This means, you get the entire orchestration of your applications free.

Important Concepts of Elastic Beanstalk.

Application - An application is an logical group of a workload that encompasses the environments, configurations etc. Consider an application as a single services in your microservice architecture or a monolithic application that serves its users.

Environment - An environment is where your application runs. It encapsulates all the resources for your application.

Environment Tier - You have 2 tiers to choose. One is for worker environment and another is for web-server environment. Worker environment is suitable for running long-running processes or in other words background jobs. Web-server environment is suitable for serving requests i.e. web applications.

Conclusion

Overall, AWS ElasticBeanstalk helps to build and run web applications at scale without a lot of operational overhead. It uses the CloudFormation as the underlying technology to create and manage stacks. It can speed up your deployment time as well as time to market. ElasticBeanstalk work as a great solution between managing VMs (low-level operational burden) and running Kubernetes clusters (high-level operational burden). In some use cases, you can just get started with ElasticBeanstalk and move to other complicated orchestration tools when you reach that level of scaling requirements.

Look out for DeepDive articles on ElasticBeanstalk to learn more about this amazing service.