Amazon Web Services CloudWatch
1h 34m

Please note: this course has been outdated and replaced with two new courses: An Overview of Amazon CloudWatch and Building CloudWatch Dashboards

CloudWatch is a monitoring service for cloud resources in the applications you run on Amazon Web Services. CloudWatch can collect metrics, set and manage alarms, and automatically react to changes in your AWS resources. Amazon Web Services Cloudwatch can monitor AWS resources such as Amazon EC2 instances, DynamoDB tables, and Amazon RDS DB instances. You can also create custom metrics generated by your applications and services and any log files your applications generate. You’ll see how we can use Amazon CloudWatch to gain system-wide visibility into resource utilization, application performance and operationally you’ll use these insights to keep applications running smoothly. This course includes a high-level overview of how to monitor EC2, monitor other Amazon resources, monitor custom metrics, monitor and store logs, set alarms, graph and view statistics, and how to monitor and react to resource changes.

Intended Audience

  • Systems Admins
  • Operational Support
  • Solution Architects working on AWS Certification
  • Anyone concerned about monitoring data or AWS recurring billing


  • AWS Console Login
  • General knowledge of how to launch an Elastic Compute Cloud (EC2) instance on either Linux or Windows
  • View CloudWatch Documentation at
  • An operational EC2 (Windows/Linux)

Learning Objectives

  • Monitor EC2 and other AWS resources
  • Build custom metrics
  • Monitor and store log information from Linux instances
  • Set alarms for metrics to take action on an instance or auto-scaling group
  • Create a dashboard to monitor EC2 instances
  • React to load to trigger auto scaling horizontally within AWS.

This Course Includes

  • Over 90 minutes of high-definition video
  • Console demos

What You'll Learn

  • Course Intro: What to expect from this course
  • Getting Started: How to launch an EC2 instance
  • Building a Dashboard: How to take the metrics from the instance and create a dashboard
  • Monitoring EC2 Instances: How and why you should be monitoring the environment in Amazon Web Services
  • Sending Log Files to Cloudwatch: A lesson on the importance of sending log files to Cloudwatch
  • Alarms: How to specify alarms
  • Course Conclusion: Course summary

Welcome to our course on CloudWatch. My name is Michael Bryant and I'll be your instructor. In this course, we're going to take a detailed look at AWS CloudWatch. We're going to talk about what CloudWatch is, what can be monitored by CloudWatch, and what services CloudWatch can connect to at Amazon Web Services.

In this course, we'll begin with an introduction to myself, your instructor, and also CloudWatch. We'll then explore CloudWatch, launch an EC2 instance, monitor our instance, and then develop alarms and a dashboard. We'll also do a wrap up to let you know how you can get more information about CloudWatch.

My name is Michael Bryant and thanks for joining me on this course about Amazon Web Services CloudWatch. You can reach me at LinkedIn at the address on your screen or via the website listed below. I have 25 years of experience working in the information technology sector and three plus years working with cloud solutions including Amazon Web Services.

This course was designed to be very inclusive. This will allow solution architects working towards their first AWS Certification to gain value from this course and also anyone concerned about monitoring data or AWS recurring billing.

To fully participate in this course, you should have an Amazon Web Services console login, general knowledge of how to launch an elastic compute cloud or EC2 instance on either Linux or Windows, and as always, you should view the CloudWatch documentation at the link on your screen. It's necessary to frequently revisit the Amazon Whitepapers online because they do change periodically.

CloudWatch can be accessed in a variety of ways, including via the AWS Management Console, via the API, via the command line interface or CLI, and through the software development kit. Per the limits of this course, we will focus on AWS Management Console and only occasionally use the command line interface. The API and SDK are mostly out of the scope of this course.

Amazon frequently adds updates and modifies core service offerings in the AWS Cloud. A best effort was made to assure this course was up to date at the time of publishing. As a best practice, all students are encouraged to sign up for the AWS platform updates to get the most current information.

Welcome to our first lesson on CloudWatch, an introduction. CloudWatch is a comprehensive monitoring tool that allows you to monitor your services and applications in the cloud. It's important to monitor this information, but CloudWatch also allows you to react to events and even prevent service interruptions and outages. CloudWatch will monitor and create trend reports for services and resources you're probably already using.

As a general warning, before using any Amazon Web Services, it's important to understand the pricing structure, particularly if you're intending to use the AWS free tier to follow along with this course. Note, CloudWatch Enhanced Monitoring is not included in the free tier.

It is beyond the scope of this course to teach the procedure of how to launch an EC2 instance. To participate, it's necessary to have at least one EC2 instance running. If you launch an instance for this course, be sure to terminate it when you've completed the course.

Basic monitoring is included in the price of many AWS resources. If you're not already looking at this data, you should be. CloudWatch metrics provide you direct insights to whether you've sized your infrastructure correctly or not. It also allows you to make adjustments to your spend plans on services and resources.

For example, if you bought one large server, but only need the total capacity 25% of the day, you could have instead built the architecture with two medium servers and run one 24 hours a day and perhaps place the other in an auto scaling group to cover the incremental load for the smaller portion of the day. Take this example to even greater savings by launching the additional compute power via the spot market.

Basic monitoring, i.e. the free monitoring, provides up to three dashboards and 50 metrics per month. With basic monitoring, the fastest refresh rate achievable is metrics every five minutes. If you need a faster refresh rate or more metrics or more dashboards, you'll have to use the enhanced monitoring service. It's important to note that the pricing for enhanced monitoring is set by region by Amazon. You can see on the slide the difference between basic and enhanced monitoring. Basic monitoring provides three dashboards, 50 metrics and a five-minute refresh rate. Enhanced, which is generally priced by region at $3 per dashboard, unlimited metrics, which are priced in unit quantities of 10,000, 240,000, 750,000 and a million. It's an important note that the refresh rate for enhanced monitoring is one minute.

No additional software is required to use CloudWatch as it's always part of the AWS service and resource offerings. This is true regardless of whether you use basic or enhanced monitoring. CloudWatch also provides a repository for logging. This is a brilliant way to capture all the logs on your application and web servers. For example, you manage a popular WordPress site with 12 front-end web servers. You have an unexpected event which requires reviewing the logs.

Wouldn't it be nice to simply go to a single place to look at the system and apache logs? With CloudWatch logging, you can direct all the servers to report any logs you want, even applications specific to CloudWatch and review the logs with a point and click. You can also export the logs and use your favorite third party tool to perform very detailed analysis.

By the time you've completed this course, you will have set up some great metrics and now CloudWatch knows everything you need it to know

Alarms are the process of becoming informed and taking an action. It's great that CloudWatch is constantly monitoring the environment, but we need to create alarms to inform our decisions. You should think of alarms as predefined thresholds. Let's take a look at an example.

Every time the application server gets to 90% CPU utilization, a subprocess in our custom application stops. CloudWatch already tracks CPU utilization. So to put this information into action, we should create an alarm to notify us of impending disaster As we'll see later in this course, alarms can translate into predefined actions. If the response to 90% CPU utilization is to go manually launch a server, this alarm could have an easy-to-use scaling action assigned to it to launch an additional server for you. Or it could be configured to send you a message at three a.m. and wake you up. It's really your choice.

I know what you're thinking. Why bother to do all this monitoring? As a guiding principle in our course, we're gonna continue to try to answer the five questions on your screen. Are my customers getting a good experience? How are my charges impacting overall performance? Do I need to scale my environment? Where did the problem occur? And can I detect or prevent this problem in the future?

Fundamentally, we want all our customers to have a great experience using applications at the least cost at the greatest performance per dollar spent. CloudWatch is fundamental in delivering this user experience. If you don't know what's going on in your environment, you cannot detect, prevent, plan, or remediate.

Let's do a quick review. CloudWatch is running by default. There are two service offerings, basic monitoring and enhanced monitoring. CloudWatch is used for tracking metrics, trending, setting alarms, and consolidated resource logging.