Next, click the "Auto Scaling" tab. This is likely the most powerful configuration screen in Elastic Beanstalk, as it relates to scalability. Here, you can fine-tune how your application will scale horizontally to handle load. You can configure a scaling trigger, such as the count of incoming requests, which if they exceed some threshold, trigger the spawning of additional EC2 instances already configured to your liking and running your instance of Tomcat, plus the corresponding war file all load balanced!
As you see in this dialog, Amazon has already configured default values namely, that your application will scale to four instances. Needless to say, this dialog offers a tremendous amount of control over an application's scalability in an easy to consume and understand format. Simply click a few buttons and your application has the plumbing to scale to enormous loads. And best of all, you didn't have to manually configure all the moving parts, such as the load balancer or the triggering scheme!
Finally, Beanstalk offers a handy versioning scheme. Presumably, once you've deployed your application, you'll most likely have incoming traffic and thus, you might not have the luxury of throwing up new war files without the risk of affecting users. Thus, Amazon offers two handy features.
First, with Elastic Beanstalk, you have the option of swapping the URLs of any two Elastic Beanstalk environments. So if you have one environment called "caprice" and another called "whim," you can temporarily have all caprice traffic rerouted to whim, thus providing no downtime. This requires that both caprice and whim run the same general application; nonetheless, you can see how this option provides a deployment pipeline quite nicely. For example, caprice is production, while whim could be some staging environment or pre-production, where users could be temporarily routed in the event of a new deployment to caprice or if caprice goes down.
Related to URL swapping is Elastic Beanstalk's notion of versioning. With Elastic Beanstalk, you can deploy multiple versions of a war into a particular environment; consequently, you have total control over which one is "live" at any given time. This means, you have the ability, should the need arise, to roll back to a previous version, too.
There are a few other configurations available on the Elastic Beanstalk dashboard you can view Tomcat logs and overall system events (that is, deployments, restarts, etc.). What's more, you can see various metrics reported via Amazon's CloudWatch. In short, everything you need to run a production application and related environment is a browser click away.
From IaaS to PaaS: AWS Is A One-Stop Shop
AWS is a one-stop shop for all your cloud infrastructure needs. Whether you need low-level computing resources or a platform for mass scaling, AWS offers it all. And best of all, the cost is very reasonable and you pay only for what you use.
Andrew Glover is the CTO of App47, a company specializing in enterprise mobility. He also is the author of easyb, a BDD framework that won the Jolt Award in 2009. Previously, he was the President of Stelligent.