AWS offers a service for hosting applications on servers, storage and other infrastructure with EC2. However, AWS only makes available a small sliver of information concerning the hardware that your applications are running on. As a result it’s nearly impossible to know what is “running under the hood” or which specific servers, storage drives and networking components are processing your data and powering your applications. The nature of such a service creates several distinct attributes listed below that differ from running IT hardware on-premise, and make certain issues more likely to occur. For More information about Amazon EC2
Despite the subsection of performance data that EC2 will share about its instances, AWS is essentially an opaque system. This differs from on-premise servers where system administrators and developers can examine any aspect of the hardware that has been instrumented.
AWS is essentially renting you access to its hardware for your application. Using an over-subscription model, this hardware is shared amongst a number of other customers, to the point where multiple accounts will compete for resources from the same servers, network and storage.
Your application will be placed wherever AWS sees fit to place it.1 There’s no visible orchestration, optimization or even knowledge of what the other applications that are sharing the same hardware are doing.
If an application on the shared hardware begins to grow in utilization of a specific resource, this might take resources away from other applications on that infrastructure (oftentimes from other customers). Take your career to new heights of success with a AWS Online Training.
The Sheer Scale of AWS Tends to Mask Hardware Issues
Because of the massive amount of storage drives, servers and other physical hardware within AWS’ many availability zones and the probability of these components failing, broken hardware components are scattered all over the many AWS data centers. AWS’ infrastructure is so large that it is possible that your application may be running on a damaged component for some time before that hardware failure is recognized and remedied.
AWS Guarantees Capacity, Not Performance
EC2 instance types and other services offered by AWS offer guarantees for resource capacity such as compute, memory, disk size, etc. Because of multi-tenancy, AWS offers few guarantees of performance. While you may have the raw capacity promised, these resources may not be running at the performance levels you desire.
Minimal AWS Service Level Agreements (SLA) Coverage
AWS offers only minimal SLAs for the services they provide. Because the guarantees for performance that are contractually offered are not among the most exacting, it is likely that AWS is optimizing hardware and configuration for their needs, not yours.
Maintenance is Still Required
AWS will alert you via email when instances must be moved around because of maintenance on the underlying hardware. This requires an administrator to stop and relocate the EC2 instance somewhere else.
Administrators running applications on AWS must treat the cloud infrastructure with the same attentiveness as if it were their own on-premise hardware and follow any communications sent by AWS or risk being affected by maintenance activities.
AWS Performance Metrics have Gaps and Can be Confusing
Importantly, the AWS monitoring service, AWS CloudWatch, does not report on memory, which is a major gap in understanding an application’s performance. It is also difficult to know what the metrics shown actually convey; they may have different names from what administrators are used to or they may report on different actual statistics compared to similar on-premise metrics.
Understanding metrics can be difficult as AWS does not always make clear what is being measured and how. Metrics are not normalized; some CloudWatch metrics are totaled over 5-minute intervals, while others over 1-minute intervals. Lastly, CloudWatch’s granularity does not get under 1 minute, placing a hard limit on catching metric changes that occur in 2 minutes or less.
Seeing Inside your AWS EC2 Instances
AWS and other providers offer tools that can be used to peer inside your AWS instances. Some common ones are listed below.
AWS Web Console
AWS provides a web console that shows your EC2 instances in a given region and some high-level statistics per instance. However, the user interface (UI) becomes difficult to navigate after an AWS account has more than 20 instances. The UI is also limited to one region at a time, making multi-region deployments hard to watch.
EC2 API Endpoints
AWS allows API access to programmatically start and stop instances via web services and to gather some data from these endpoints as well. To get in-Depth knowledge on Elastic Compute Cloud (EC2) you can enroll for live AWS Certification Training.
AWS CloudWatch makes available metrics from the hypervisor where Amazon runs EC2 instances. Visibility from this tool does not go past the virtual hardware layer into the hardware or operating system, which means that that a certain level of detail about an application’s performance is missed.
For example, CloudWatch will report that 60% of an instance’s CPU was used, but you do not know what these cycles were used for. A maxed-out application, a runaway kernel or an application stuck in an infinite loop will look the same through CloudWatch.
CloudWatch has a default data collection period of 5 minutes with a paid upgrade to enable 1-minute data collection. Finer granularity is not available at the time of this writing. Any change that happens in less than 2 minutes will be missed; only slower trends will be visible through CloudWatch.
Top et al
Top is an open source tool that runs in a shell and can be used to understand which processes are occurring on any server. Top refreshes every 2 seconds by default, providing finer granularity, but it does not retain any historical data. As a result, it is difficult to use data collected from Top for analysis after the fact. Other tools exist that retain historical data, but only at a lower resolution (e.g. sysstat, collectd, etc.).
- Empower your Business with AWS IAM
- Why Researchers using AWS Cloud Computing?
- AWS SDK with Dot Net
- Common Issues of AWS