The Amazon Web Services stack is by and large vast and complex, and deploying your application or your infrastructure might be quite scary if you are not yet that confident with the number of resources that Amazon provides to you. Let’s see 3 tools that might assist you in deploying your stuff on AWS.
The first tool comes from Amazon itself: it’s Amazon Elastic Beanstalk. It is a PaaS service that allows users to create applications and push them to a certain set of AWS services, including Amazon EC2, Amazon S3, load balancers, and many others. Instead of manually creating an EC2 instance, then setting up a web server, then deploying your web application and so on, you just upload your app, and Beanstalk automagically takes care of everything you need, including auto-scaling, load balancing, capacity provisioning and monitoring the health of your application.
The nicest thing about Amazon Beanstalk is that you are free to get your hands dirty with the underlying services that Beanstalk takes advantage of because you can operate on Amazon EC2 or Amazon S3 or everything that makes your app running up anytime if you want to. This is quite a big advantage, because you can make the best out of your application without even knowing what’s happening under the hood, but can tune your engine if you suddenly want to give it a little boost.
Amazon S3 Organizer
One thing that you probably can’t turn down in your AWS based infrastructure is storage, and particularly Amazon S3, the most well-known and used storage service around. Simple Storage Service provides storage through web services interfaces like REST and SOAP and stores data with a key-object approach. It is powerful, scalable and rock-solid, but not that handy when it comes to accessing your resources quickly. Here comes in handy a Firefox extension called Amazon S3 Organizer. It is an easy-to-use add-on that offers the ability to upload or download files to and from Amazon S3 directly from your browser. The interface opens in a Firefox browser tab and resembles a classic FTP client with a dual-pane layout. It displays files on your PC on the left, files on Amazon S3 on the right, and status or information in a panel on the bottom.
This approach is very fast and useful if you don’t want the burden of going through the standard interfaces made available from Amazon. Drag-n-drop support will make it very easy to move files around, especially considering that you can upload and download multiple files at once. You can also manage S3 CloudFront Distributions from there, and modify Access Control Policies as well. The possibility to use multiple S3 accounts and it being cross-platform make it a great companion if your infrastructure heavily relies on Amazon S3.
The last tool is quite a big one: it’s Juju, the open source service orchestration management tool developed by Canonical, the company already famous for its Linux-based operating system Ubuntu. What’s great in Juju is that it automates the daily tasks that your infrastructure requires, and it allows you to focus on what really matters to you. All this is made possible by what is called “Charms” in the Juju jargon. A Charm is a collection of YAML configuration files and a selection of “hooks”, which are naming conventions that perform several operations like install software, start/stop a service, manage relationships with other Charms, and more. Since Charms can be shared among different systems, a Charm store is available to share and download them.
Juju gives you two approaches to manage your deployment: the standard command-line interface and a neat web app (it is a little lagging behind on some features, though) to design, build, configure, deploy and manage your infrastructure. Juju itself has two components: a client and a bootstrap node. Once the client is installed, one or more environments can be bootstrapped. Juju supports several kinds of cloud services, including AWS, Microsoft Azure and OpenStack, and bare metal servers too.