A quick look at Netflix's Asgard
Asgard is an open source application from Netflix that makes it easier to work with Amazon Web Services. It offers lots of functionality that isn’t accessible via AWS’s normal web interface: for several AWS features, Asgard removes a lot of the cryptic command line tools required. It’s provided free of charge by Netflix, and the source is available on GitHub.
Asgard is a great tool to use when you’re beginning to understand certain concepts in AWS. A lot of the more powerful features available working in the cloud are handled by CLI tools, APIs or CloudFormation. These are great if you’re developing applications to take advantage of the platform, but can make understanding the concepts difficult when you’re exploring them for the first time.
For example, one of the biggest advantages of working in the cloud is you can automatically scale your hardware to match usage. AWS does this with Launch Configurations and Auto Scaling Groups, a powerful feature that is a pain to implement: getting auto-scaling groups set up correctly involves all sorts of CLI tools or calling into APIs. With Asgard (and with our tool, Stelligent Havoc), it’s a couple clicks and a few fields to fill out.
Another painful AWS feature is SimpleDB, which is needed to run another Netflix Open Source Tool, Chaos Monkey (which is the focus of another blog entry). Setting up a Simple DB via the AWS CLI tools requires some tricky scripting and a bit of luck. With Asgard, you just have to punch in the name and hit create.
Asgard has other benefits besides just making complicated AWS functions easier. If you have an organization where multiple developers need access to work in your AWS account, but you want to keep your access and private keys under wraps, you can enter them into Asgard and give your developers access there, empowering them but mitigating the security risks.
Asgard can also provides a way to have logs about what changes are being made to your AWS environment. When using the CLI tools or API, it’s on you to make sure that all activities are being appropriately documented. With Asgard, you get all that for free.
Also, if you’d like to take advantage of the hidden access keys or logging without have to operate through the web interface, Asgard also offers a REST API that you can use to use it programmatically.
Asgard is available as a self-contained war — you can download it and have it running on your machine in a few minutes. Also available is a war you can place in your already running servlet container. There are a couple of gotchas you should watch out for, so make sure you read the troubleshooting page.
Or if you are the instant-gratification type, we’ve developed a CloudFormation template you can use which will set up Asgard in AWS for you in ten minutes, and all you have to do is enter a few simple parameters. Our template uses Chef scripts to setup Tomcat and then install the Asgard web application. The scripts are open source and available on Stelligent’s github page. All you have to do is enter a username and password for your Asgard installation, and the name key pair to set up the EC2 instance. (You just need the key pair name, you can leave out the .pem.) If you’ve never set up a keypair, check out these directions on the AWS Documentation site.
After you get Asgard running, you’ll be prompted for your access key and secret key (which you can find on your AWS Security Credentials page) and then it’ll take a few minutes to start up. If it takes a long time, check the Asgard troubleshooting page.
Once the setup is complete, you’ll be able to start taking advantage of the powerful AWS features, without all the hassle of dealing with the command line.