How-to Monitor EBS Volume Performance by Generating an AWS CloudWatch Alarm

n2ws In our previous how-to guide, we showed how to launch an EBS optimized instance in order to have higher and predictable throughput between EC2 instances and EBS volumes. Moving forward, you would need to closely monitor an EBS volume’s performance and be notified of events in time to take appropriate action.
AWS CloudWatch provides different EBS performance metrics, including:

  1. Volume read and write bytes
  2. Volume read and write operations
  3. Total volume read and write time
  4. Volume idle time
  5. Average queue length
  6. Volume throughput percentage

In this how-to guide, you will learn how to set up CloudWatch alarms and receive email notifications if EBS metrics cross a certain threshold value.
Step-by-Step

A. Identify your EBS volume

To set up an EBS cloudwatch alarm, you need to identify your EBS volume. If you are using the AWS Management Console, you can identify your instance and attached EBS volume from the EC2 console.
How-to Monitor EBS Volume Performance  by Generating an AWS CloudWatch Alarm

Clicking on volume ID will take you to the EBS volume section where you can review current EBS resource usage patterns. How-to Monitor EBS Volume Performance  by Generating an AWS CloudWatch Alarm

Use the following command with the AWS CLI:
# aws ec2 describe-instances –instance-id <instance-id> –region <region-name>
How-to Monitor EBS Volume Performance  by Generating an AWS CloudWatch Alarm

Once you have identified your volume’s name, you can use the AWS CLI to gather more information about your EBS volume.
# aws ec2 describe-volumes –volume-id <volume-id> –region <region-name>
How-to Monitor EBS Volume Performance  by Generating an AWS CloudWatch Alarm

B. Identify a metric to set up the CloudWatch alarm

As mentioned above, there are multiple EBS metrics that you can use to set up CloudWatch alarms. First, however, you need to identify your relevant EBS metrics.

C. Create SNS Topics and Subscriptions

To send notifications to your email address, you need to create SNS topics and a subscription. To do this, go to the AWS SNS dashboard and create a topic.
How-to Monitor EBS Volume Performance  by Generating an AWS CloudWatch Alarm

Once the topic is created, copy the topic       ARN      and create an SNS subscription for your email ID.
Learn more about ARN
How-to Monitor EBS Volume Performance  by Generating an AWS CloudWatch Alarm

Once the subscription is created, you will receive a confirmation email. After which, you’ll have to confirm the subscription by clicking on the link. Then you will receive SNS notifications for your CloudWatch alarms.
Use the following command with the AWS CLI:
To create an SNS topic:
# aws sns create-topic –name <sns-topic-name>
How-to Monitor EBS Volume Performance  by Generating an AWS CloudWatch Alarm

Once the topic is created, you need to create a subscription using the command below:
# aws sns subscribe –topic-arn <topic-arn> –protocol email –notification-endpoint <email-address>
How-to Monitor EBS Volume Performance  by Generating an AWS CloudWatch Alarm

Confirm once you’ve received the email.

D. Create CloudWatch Alarm

To create an alarm, navigate to the CloudWatch section of the AWS Management Console, click on ‘Create Alarm‘ and select ‘EBS Metrics’.
How-to Monitor EBS Volume Performance  by Generating an AWS CloudWatch Alarm

Once the appropriate EBS metrics are selected, select your EBS volumes and associated metric for which you want to set up the alarm.

How-to Monitor EBS Volume Performance  by Generating an AWS CloudWatch Alarm

We have selected ‘VolumeQueueLength’ as our metric. According to AWS documentation, the purpose of the ‘VolumeQueueLength’ metric is to show the “total number of read and write operation requests waiting to be completed in a specified period of time.”
On the next screen, provide the name and description of your alarm along with your preferred duration, frequency, threshold value, statistics and other related information. To receive notifications, select your SNS topic from the drop down menu.
Once all of the necessary information is provided, click on ‘Create Alarm’ and your EBS alarm is all set. Whenever your EBS metric crosses the defined threshold value, it will send a notification to you.
Use the command below with the AWS CLI:
# aws cloudwatch put-metric-alarm –alarm-name <value>
[–alarm-description <value>]
[–actions-enabled | –no-actions-enabled]
[–ok-actions <value>]
[–alarm-actions <value>]
[–insufficient-data-actions <value>]
–metric-name <value>
–namespace <value>
–statistic <value>
[–dimensions <value>]
–period <value>
[–unit <value>]
–evaluation-periods <value>
–threshold <value>
–comparison-operator <value>
[–cli-input-json <value>]
[–generate-cli-skeleton]
For example,
How-to Monitor EBS Volume Performance  by Generating an AWS CloudWatch Alarm

Once executed, your EBS metric CloudWatch alarm will be created and a notification will be sent out whenever it crosses your defined threshold value.

To automate the process of using Amazon snapshots, N2Ws offers a solution called Cloud Protection Manager (CPM), which is an enterprise-class backup and recovery and disaster recovery solution for the EC2 compute cloud. Cloud Protection Manager is available as on a monthly subscription basis via the AWS Marketplace and allows users to manage multiple AWS accounts and configure policies and schedules to take automated snapshot backups. It also has a Windows agent to consistently back up Windows applications. Cloud Protection Manager allows you to recover a volume from a snapshot, increase its size and switch it with an existing attached volume, in a single step. To see the different editions with pricing and details, check out the pricing page on our website.

Share this post →

You might also like: