The first steps of building an application in AWS can be liberating. The administration console lets admins use...
a simple wizard to easily launch virtual machines. But it doesn't take long before you're running multiple applications on a variety of instance types using multiple storage systems. Before you know it, it's difficult to keep track of all the configuration details -- even for a single application.
Admins must monitor applications, review logs and perform root cause analysis. OS-level performance monitoring tools can help. In other cases, application logs hold key information about performance bottlenecks. But when performance issues stem from high demands on AWS resources, consider using Trusted Advisor.
Amazon Trusted Advisor is a service for AWS customers that provides recommendations on performance, cost, security and fault tolerance. It provides four types of free recommendations, including service limits, unrestricted ports, identity access management use and multifactor authentication on root accounts. Developer-level or enterprise-level support, which are charged on a monthly basis, give users access to a range of recommendations. Here are some performance recommendations.
High usage alerts skirt performance snafus
High usage alerts tells you when an instance is running at 90% or greater CPU utilization on four or more days. Admins could receive a high usage alert because instances have insufficient CPU resources or IT teams have precisely tuned and optimized the instance for use. If it's the latter, be careful. This doesn't leave much room to scale if you hit peak demand, though this is less of an issue with autoscaling.
A similar issue can occur with Elastic Block Storage (EBS) volumes. Standard EBS volumes are designed to deliver about 100 IOPs. If an application pushes the limits of standard EBS volumes, IT teams should consider switching to a provisioned IOPS configuration. Amazon Trusted Advisor will make these recommendations when apps hit an I/O performance wall.
Trusted Advisor also verifies that EBS devices with provisioned IOPS are attached to instances that are optimized for EBS. When provisioning IOPS and using an Elastic Compute Cloud (EC2) instance that's not configured to deliver your expected level of I/O, you might be wasting money and losing performance.
The AWS tool also checks the number of rules in EC2 security groups and rules applied to instances. Because rules must be evaluated to ensure the user and application have sufficient privileges to perform programmed operations, adding too many rules to an instance can adversely affect performance.
Trusted Advisor can also make recommendations on low-utilization EC2 instances, idle load balancers, underutilized EBS volumes, idle Relational Database Service instances and unassociated IP addresses -- all cover the usual suspects when it comes to overspending in AWS.
Third-party cost analysis tools
There are also several third-party cloud management services that optimize performance and monitor costs in AWS. Depending on the application complexity, you may need to use a combination of cloud resource monitoring and application stack performance monitoring tools.
Cloudyn is a SaaS tool that offers a comprehensive set of optimization and cost-cutting recommendations. New Relic offers tools that give you more granular visibility into your application stack so you can improve cloud application performance.
About the author:
Dan Sullivan holds a Master of Science degree and 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.