Complex Amazon EC2 API creates steep learning curve

There's room to streamline the Amazon EC2 API, but some industry experts say API scalability and compatibility matter most.

Public cloud computing users would like to see the Amazon EC2 API simplified, but others say the elegance of the API lies not in syntax, but in scale.

Amazon has three ways for users to interface with its infrastructure: an Elastic Compute Cloud (EC2) console graphical user interface (GUI), a command-line interface (CLI) and a query application programming interface (API).

The Amazon EC2 API came up in discussion at a recent Amazon Web Services (AWS) meet-up in Cambridge, Mass., where one attendee spoke out about the difficulties he has encountered deploying spot instances.

The elegance is in the scale, as opposed to the actual API.

Chris Schroeder,
CEO, App47

To create a spot instance in EC2 using the query API, a user has to run the ec2-request-spot-instances command. To fill out the necessary information in this command using the API, a user must request a separate spot instance pricing history and register a higher bid than the current spot instance price.

Then, you need to perform a separate process to figure out whether a spot instance has actually been created; the process requires either a general Describe Instances command with embedded search parameters or a Describe Spot Instance Request.

"It was a few days before I could tell whether the thing worked or not," said Brian Tarbox, a software engineer at Cabot Research, a financial data analysis firm based in Boston.

Most requests that customers provision launch within minutes, according to an AWS spokesperson. One of Amazon's main goals as it develops spot instances is to simplify the process to get the amount of capacity a customer needs based on their constraints, the spokesperson added.

Still, other experts on Amazon's API say there are things they might do differently.

"The first thing I would do if I had to rewrite the Amazon APIs [would be to] make [them] RESTful -- use the normal HTTP verb set and what people expect out of that stuff," said George Reese, chief technology officer of Minneapolis, Minn.-based Enstratius Inc., which makes software that has API-based integration with multiple clouds, including Amazon. "You have to learn a lot to get in and understand the Amazon APIs."

An Amazon spokesperson said customer feedback is part of its development process and that it welcomes feedback on new features and needs.

Should the Amazon EC2 API change?

Whether there's a steep learning curve to using the API is one thing, experts say, but whether Amazon should actually revise its APIs at this point is another.

"There aren't any grand inefficiencies that cause me to lose sleep over Amazon," Reese said. "It's difficult to pick up at first, and it's needlessly complex, but it works.

"It would be a greater sin to break the fact that it works and to break its compatibility with backward code than it would be for it to remain needlessly complex," he said.

Others agree that simplicity is ideal, but other factors are more important.

"As a developer, I might want to sit back and say, 'That API is too hard to use or … I could do that in two lines of code instead of five lines of code,'" said Chris Schroeder, CEO of Reston, Va.-based App47, which bases its mobile device management software on Amazon EC2. "I'm sure that goes through a lot of people's minds."

App47, which counts USA Today among its customers, might see 140 or 150 million events hitting its application on a busy day -- and that's where Amazon's approach is appreciated.

"The elegance is in the scale, as opposed to the actual API," Schroeder said.

Beth Pariseau is senior news writer for SearchCloudComputing. Write to her at [email protected] or follow @PariseauTT on Twitter.

Dig Deeper on Amazon EC2 (Elastic Compute Cloud) management