Amazon Web Services may be the leading cloud service provider, but that doesn't make it foolproof. Far from it, in fact.
For all of its capabilities, AWS has its shares of "gotchas" and annoyances. But the list of leading offenders is not long, and experts agree mastering the peculiarities of AWS isn't all that hard.
Avoiding accumulating costs is the first challenge. "If you are not careful, AWS and the cloud in general can lead to a spiraling infrastructure and subsequently a spiraling bill," said Raj Bhargava, CEO of JumpCloud. He explained that, while it's easy and relatively cheap to just turn the dial and spin up instances on AWS, organizations must carefully manage the cost, efficiency and efficacy of this flexible infrastructure.
"It's very easy to spin up instances, but the billing can actually get very complicated as you continue to build out your infrastructure to meet your organization's growing needs," Bhargava said. "What may make sense from both a financial and functional standpoint today may not actually make sense tomorrow." For instance, the way servers are provisioned on Day 1 of your business will probably no longer make sense in six or 12 months, he said.
Not the be-all and end-all
There is a common misperception that AWS simply takes care of or outsources all IT needs, Bhargava said. "Don't get me wrong, what they provide is a hugely valuable and well-designed [Infrastructure as a Service] solution, [but] I think there are a number of folks out there who believe that AWS is responsible for things like security, patching, user management, et cetera," he said. In most cases this is simply not true. "If a business thinks AWS is taking care of these things and they are not, they are opening the organization up to serious risk."
Looking at AWS concerns more broadly, Shlomo Swidler, CEO of Orchestratus, shared what he considers to be the top four gotchas, namely:
Failing to isolate production from development and testing environments. Mistakes in development or testing should not be able to affect the delivery of your service, but with a single integrated account for all environments, this isolation can be difficult to enforce, Swidler said. "You'll also want tight controls over your production environment's configuration -- which may contain such secrets as payment gateway credentials and [Domain Name System] passwords," he said. In short, use separate AWS accounts for each environment.
Losing track of your bill. Swidler explained that as the number of AWS resources in use across user accounts multiplies, it can be increasingly difficult to audit and track your AWS usage. He recommends using Consolidated Billing, an AWS billing feature that allows you to collect many accounts under the umbrella of a single master account, showing consolidated usage information and allowing for one payment. He also recommends setting spending alerts on each account to notify you when spending levels reach important milestones.
Keeping up with your changing needs. "It's easy to launch resources in AWS and use them long-term, but you'd be missing out on one of the main benefits of cloud: the flexibility to adjust to changing needs," Swidler said. He recommended re-examining your needs regularly, at least every quarter. As AWS reduces prices and adds new services, you may find that you can meet your needs more efficiently by changing your resource usage, he added.
Depending on traditional data center tools to manage AWS resources. "Data center management tools are excellent for managing a relatively static set of resources, but the cloud usage model allows you to dynamically add and remove resources to your inventory, a usage pattern that data center-centric tools cannot natively handle," Swidler said. Instead, AWS customers should use "modern tools that are designed to handle dynamism, such as Chef, Puppet and RunDeck."
Cost control among AWS concerns
"AWS has a smart business model where they want people to buy reserve servers to lock in the price early on. This is marketing at its best, and it flourishes because people feel like they are getting a deal and that prices will actually go up," JumpCloud's Bhargava said. This is often not the case. "Therefore diligence and education can go [a] long way toward getting not only the infrastructure that you need, but getting it at the best price possible," he said.
Determine what the business needs are, and if whether all those needs can be met is among your AWS concerns, ask. "AWS can help you to do a lot of things, but if not properly bolstered by good security and management practices and tools, simply spinning up a business in the cloud can actually put you at risk," Bhargava said.
Finally, looking at end-of-life issues, Dan Sullivan, a system architect at DS Applied Technologies LLC, reminds users that when you start an Amazon instance, it comes equipped with local storage. When you later decommission or deprovision that instance, whatever data is there will be wiped out unless you find it a home -- for example, elastic block storage.
Similarly, he noted, when you create virtual machines, it is simpler to start with a base image, like Ubuntu Linux, and then install packages for development or production.
"You probably want to save that for yourself as your own image, so you don't have to rebuild that structure every time you want to set up a new image," Sullivan noted. And if you require a rebuild, it's helpful to employ a tool like Puppet or Chef.