Some cloud consumers might imagine that Amazon Web Services is completely turnkey -- that everything would work...
without having to test. But the reality is that it isn't so simple.
While some effort is needed to keep an Amazon Web Services (AWS) cloud fully operational, testing is a predictable and generally straightforward process. Many aspects of AWS make it far easier than testing in conventional environments. And the scale and diversity of AWS makes it easier to achieve high reliability.
Shlomo Swidler, CEO of N.Y.-based consultancy Orchestratus, advises companies to think about reliability in a different way within AWS -- not "in a single dimension." You can't pay for a specific service level within AWS, but you can take advantage of options such as load balancing and Auto Scaling, which can improve reliability.
"Those services let you take advantage of the scale of AWS and let you set up self-healing copies of machines that will be there when a given machines becomes unhealthy," Swidler said.
Similarly, regardless of whether a business is running on traditional big iron, a virtual environment or a cloud, it has to understand what can fail and how much uptime its system requires. For instance, to ensure resilience on AWS, users need at least one instance in a different availability zone (AZ). That, in turn, means users need to have an Auto Scale group stand up another instance so that two instances are always running.
"That way, if a zone goes out you have another instance in another zone," said Andrew Siemer, chief architect at Clear Measure, a software engineering firm. "It just depends on what you are trying to achieve."
Tool selection for AWS testing
The more testing a user has performed on an existing system, Siemer said, the easier it is to validate a successful AWS migration. However, backups, scale story and disaster recovery (DR) are all different in the cloud compared to an on-premises data center. While AWS manages many activities, "you still need to understand how a zone failing or a region failing will affect your infrastructure design and implementation," Siemer said.
In terms of stress testing, companies such as Netflix use Chaos Monkey or similar tools to test reliability and DR on the cloud, Siemer said. However, few companies resemble Netflix, which has tremendous requirements and large resources. Furthermore, "Chaos Monkey is a dev effort," and building environments in a way that allows them to function with Chaos Monkey also requires a dev effort, Siemer said. His point is that if a company has time to invest in such elaborate testing, it is certainly a worthwhile effort.
"Every company should constantly test what they have built to ensure it works as expected," Siemer added.
Taking a similar approach, John Patton, CEO and president of data management company OneVizion, said that his company uses a wide range of products and services to ensure its AWS-based operations function smoothly. For instance, his company uses a third-party tool to ping its servers and monitor for high usage. OneVizion has also adopted Connectria, a provider of managed AWS hosting services, to design its AWS infrastructure. The companies work together to build monitoring applications that look inside Elastic Compute Cloud to find problems before they manifest.
"We automatically log errors in our application and screen them daily to make sure that all components work properly," Patton said.
Finally, said Swidler, AWS provides a powerful option for testing -- simply spinning up new servers and replicating your environment. This is something that was all but impossible in a traditional data center but easy in the cloud.
"This is one of the big benefits of moving to AWS; you can test new environments dynamically, without affecting operations," Swidler said.
Testing AWS cloud application security
Which EC2 instance types are better for regression tests?
AWS penetration testing secrets for success
Discover the BMC TrueSight Operations Management suite