With the largest portion of the cloud market share, AWS (Amazon Web Services) is the obvious leader in public cloud services. There are good reasons for this. AWS has been providing cloud services since 2006, making it one of the longest-tenured vendors in the market space. Their customer base is broad and includes organizations such as Netflix, Pintrest, and the CIA. Also, their continued focus on user experience, compatibility, and security has kept them atop the cloud market for years.
The AWS entry into the PaaS space is called Elastic Beanstalk and represents a powerful and significant developer-focused solution. Elastic Beanstalk makes it easy to develop and deploy your applications into the cloud by combining a fully managed solution with an unmatched level of flexibility.
While other PaaS solutions are fairly restrictive in regards to the platform and libraries associated with your application, AWS provides a series of predefined configurations that enable you to make some critical choices about the execution environment. This includes common solutions such as PHP, Go, and Python, as well as IIS, Node.js, and a variety of Docker container configurations. By providing these popular choices in a fully-managed fashion, Elastic Beanstalk is able to support a wide variety of solution implementations.
Elastic Beanstalk also offers a choice of tier for your application environment. These two tiers, Web and Worker, define how the underlying platform will be configured and optimized. Deployments on Web tier environments in Elastic Beanstalk handle HTTP(S) traffic. They include an HTTP load balancer, auto scaling group, and a publicly accessible domain name at elasticbeanstalk.com.
In order to prevent your Web application from being consumed by long-running or asynchronous tasks, you also can deploy a Worker Tier Elastic Beanstalk application alongside your Web tier. This Worker app uses an elastic IP address and AWS' Simple Queue Service to send and receive tasks. Both Web and Worker tier applications run under separate auto scaling groups, so that they can be independently scaled to respond to changing workloads.
Amazon's many years in the cloud marketplace allowed it to build a robust set of user tools for managing its various services. With Elastic Beanstalk you can access a powerful Web-based application monitoring dashboard built into the product. This interface includes a multitude of proactive health-checking metrics, such as CPU utilization, latency, request counts, and bandwidth usage. AWS provides graphs as visualization aids to help you observe how these metrics have changed over time.
The entire monitoring interface is customizable, enabling you to choose which variables are most important for your deployment and what time frame to monitor. All of this ties into the auto scaling settings as well. You can configure health checks and scaling triggers based on any of these metrics to dynamically increase or decrease the number of servers powering your Elastic Beanstalk app. Additionally, alarms can be tied to these triggers in order to notify your app administrators when specified thresholds are hit.
In an increasingly crowded field of cloud service providers, Amazon's Elastic Beanstalk remains a top choice for organizations all around the world. With its wide variety of environment configurations that are fully-managed, secured, and dynamically scaled, you can be sure that AWS is ready to host your solution.
This article is published as part of the IDG Contributor Network. Want to Join?