How can I programmatically control AWS cloud and storage resources?

System admins who fear losing functionality in a move to a public cloud actually have several tools to programmatically control an AWS cloud.

How can I programmatically control AWS cloud and storage resources?

System administrators routinely write scripts to automate repetitive management tasks -- a functionality they don't have to give up in a move to public cloud. There are several ways to programmatically control Amazon Web Services (AWS) cloud resources.

AWS provides application programming interfaces (APIs) to its services along with software development kits for popular development platforms, which include Java, iOS, .NET, PHP, Python and Ruby. AWS also supports plug-ins for Eclipse and Visual Studio integrated development environments.

If you prefer scripting with command-line tools, they're available for many AWS services, such as Elastic Compute Cloud (EC2), Simple Storage Service (S3), CloudSearch, Relational Database Service (RDS), Elastic MapReduce (EMR) and Simple Queue Service (SQS). You can download these command-line tools from the Tools for Amazon Web Services page on the AWS website. With command-line tools, you can work with shell scripts or scripting languages, such as Python, Perl or Ruby.

Apache Libcloud is a cloud management package that abstracts common functions across clouds, removing differences among multiple cloud providers' APIs and allowing developers to build products that can work across clouds. It works with Amazon EC2 for computing resources and S3 for storage. Libcloud is a Python package and requires some familiarity with Python.

The Boto package is applicable if you're primarily concerned with the Amazon cloud. It's a Python package with support for EC2, Elastic MapReduce, CloudFront, SimpleDB, Dynamo, CloudSearch and other popular services.

As for configuration management, consider Chef, Puppet or FogViz, a graphical systems administration tool.

About the author:
Dan Sullivan, M.Sc., is an author, systems architect and consultant with more than 20 years of IT experience. He has had engagements in advanced analytics, systems architecture, database design, enterprise security and business intelligence. He has worked in a broad range of industries, including financial services, manufacturing, pharmaceuticals, software development, government, retail and education. Dan has written extensively about topics that range from data warehousing, cloud computing and advanced analytics to security management, collaboration and text mining.

Dig Deeper on AWS tools for development