EB enables developers to create applications that run anywhere on any device, yet don't suffer from problems of reliability and scalability that can occur when using a company-owned host. A focus of EB for use with AWS (Amazon Web Services) is to easily be able to upload, configure, and manage applications of all sorts.An application isn't useful unless people can access it with ease and make it perform whatever tasks it's designed to perform in the most seamless manner possible. Achieving these goals requires that the hosting platform support various programming methodologies on a variety of platforms so that developers can use the tools most suited to a particular need. When working with AWS, you currently can create web applications (in the easiest-to-access form that's currently available) using these languages (with more to follow):
- Java
- .NET
- PHP
- Node.js
- Python
- Ruby
- Go
- Docker
The applications run in managed containers for the language you choose. A managed container is one in which the host manages application resources and ensures that the application can't easily crash the system. The container acts as a shield between the application you're working with and every other application that the system hosts.Developers may create the applications, but administrators must manage them. To make administrators as efficient as possible, a host must support a number of platforms. Matching the language (to meet developer needs) with a platform (to meet administrator needs) on a host can prove difficult, but EB is up to the task because it provides support for these web application platforms:
- Apache
- Nginx
- Passenger
- IIS
In looking through the EB documentation, you may initially get the idea that this service is designed to meet developer needs — to simplify application deployment and management in a way that allows a developer more time to code. However, administrators need more time, too. The management features provided by EB address the needs of administrator and developer alike. This chapter focuses almost entirely on the administrator view of EB. The three cornerstones of EB application are the following:
- Deployment: Getting the application onto the server so that someone can use it
- Management: Configuring the application as people find problems using it
- Scaling: Providing a good application experience for everyone by ensuring that the application runs fast, reliably, and without any security issues
As part of this whole picture, EB also relies on application health monitoring through Amazon CloudWatch. The Amazon CloudWatch service provides the means for determining when application health issues require the host to make changes in the application environment, such as by using autoscaling to make sure that the application has enough resources to run properly.