AWS CloudWatch for Next-Generation Infrastructure Monitoring
Amazon CloudWatch helps you monitor your infrastructure and create detailed logs that help you optimize applications in real time.
It’s no secret that I’m a big fan of Amazon Web Services (AWS). I’m continually amazed at both the pace of Amazon’s innovation and its focus on listening to customers. AWS is continually finding new ways to delight with products like AWS DeepRacer and AWS RoboMaker as well as surprise with a fully managed ground station for controlling satellites and ingesting the data they produce. Satellites are not exactly in my daily purview, but once I saw AWS Ground Station, it made perfect sense why AWS launched this service.
Beyond launching an incredible number of new AWS services (there were 60 new services launched at the 2018 AWS re:Invent conference alone!), AWS also provides a core set of services that streamline the creation and monitoring of infrastructure. Two AWS services that perform these tasks are AWS CloudFormation and Amazon CloudWatch. In my opinion, these services are key workhorses in the AWS environment and play a role in many AWS architectures. I’ve already covered AWS CloudFormation and Infrastructure as Code in a previous article, so let’s turn our attention to AWS CloudWatch.
What is Amazon CloudWatch?
Amazon CloudWatch is an infrastructure monitoring and management platform. The IT landscape has many tools designed to monitor and manage enterprise infrastructure. However, many of these tools monitor only certain functions (e.g. network traffic). One of the key strengths of CloudWatch is that it provides visibility into the entire AWS domain including networking, compute, application, database and storage. CloudWatch provides native integration with more than 70 AWS services including Amazon CloudFront, Amazon EC2, Amazon S3 and AWS Lambda. In addition, you may also install a CloudWatch Agent in on-premises servers to provide visibility into hybrid environments.
What is an Amazon CloudWatch Workflow?
Managing complex infrastructure is often challenging because of the large quantity of data (e.g. alerts and logs) generated. Amazon CloudWatch manages this complexity by streamlining the process into four key steps: collect, monitor, act and analyze).
First, you’ll gather metrics and logs from your AWS resources throughout your AWS infrastructure and consolidate them into a single source. CPU utilization, disk reads and writes, network traffic in/out and EC2 instance health are common CloudWatch metrics, and AWS offers tools that allow the user to create their own custom metrics. The CloudWatch Logs feature allows you to collect and store this data nearly in real time.
At the next stage, AWS provides the user with a powerful set of tools to visualize the performance of their cloud infrastructure and applications. Since the number of CloudWatch Logs metrics can be overwhelming, metrics are grouped by namespace (e.g., EC2, EBS, RDS) in the CloudWatch Console. To provide context for the metrics and increase their usability, CloudWatch provides Metric Math to provide summary statistics (e.g., average, floor, ceiling and maximum value).
Let’s say a user is monitoring the CPU utilization of an EC2 instance. The user is concerned about providing high availability of the application residing on this instance. In order to ensure a consistent end-user experience, she would like to automatically add another instance if CPU Utilization exceeds 75% for more than one minute. This is where the third stage of CloudWatch workflow comes into play: act. The ability to auto-remediate is an important benefit of CloudWatch and is enabled using CloudWatch and Actions Alarms. When the CPU utilization threshold is breached, the CloudWatch Alarm can trigger a new EC2 instance to be added to an Autoscaling Group ensuring application availability.
When it comes to analyzing, CloudWatch really shines as it allows an AWS administrator to build custom visualizations and dashboards. CloudWatch automatically stores up to 15 months of metrics, allowing you to perform historical analysis to fine-tune the performance of your AWS cloud infrastructure. Depending on your use case, you can track metrics at a variety of granularities, from one minute down to one second for ultimate visibility into performance. The ability to combine log data with CloudWatch metrics also enables root cause analysis.
Getting Started with AWS CloudWatch
I believe that the best way to learn AWS is to jump right and start using it.
If you’re new to AWS, the first step is to set up an AWS Free Tier account. This lets you experiment with select AWS solutions for 12 months at no charge. AWS CloudWatch is another AWS pay-as-you-go service where you only pay for the services you use. Combining the services included within the AWS Free Tier with AWS CloudWatch allows you to learn and experiment with no risk and little or no expense.
Once you’ve established your AWS account, you can jump right in by reviewing the AWS CloudFormation Getting Started with Amazon CloudWatch guide. When you’ve launched a few Amazon EC2 instances, adding CloudWatch monitoring is as easy as right-clicking an EC2 instance in the console and selecting “Enable Detailed Monitoring.” That’s it!
Whether you are new to AWS or a well on your journey, CDW offers a full range of professional IT consulting and managed AWS services to support you. Please reach out to your CDW account manager or call 800.800.3249 to discuss your AWS architecture. They will arrange a meeting with one of our AWS-certified solutions architects who help you define next steps to help you advance toward your AWS next-generation monitoring goals.
I hope you’ve found this introduction to AWS CloudWatch valuable. Best of luck in your AWS adventures.