How to create Cloudwatch alarms for an S3 Bucket on AWS

Cloudwatch provides Storage Metrics and Request Metrics for S3 Buckets. Storage Metrics come up with no extra cost and provided once a day whereas Request Metrics are available at 1-minute intervals and incur charges. Also, Cloudwatch provides Replication metrics. In this article, we will see how to create Cloudwatch alarms for S3 Bucket on AWS of type Storage Metric for NumberOfObjects. 

To know more about the types of Metrics available, visit the official documentation of AWS here.

Pre-requisites

  1. AWS Account(Create if you don’t have one).
  2. S3 Bucket(Click here to learn to create an S3 Bucket on AWS)
  3. SNS Topic(Click here to learn to create an SNS topic on AWS using Cloudformation). 

What will we do?

  1. Login to AWS.
  2. Create an alarm for the S3 Bucket
  3. Delete the alarm

Login to AWS

Click here to go to AWS Login Page.

When you hit the above link you will see a login page, enter your credentials to go to the AWS account.

Login page

Once you successfully login into your AWS account you will see its Management Console as follows.

AWS Management Console

Create an alarm for the S3 Bucket

In the search box at the top of the screen search for Cloudwatch. Click on the Cloudwatch result to go to the main dashboard of the Cloudwatch service.

Search Cloudwatch

You will see the main dashboard of the Cloudwatch as follows. Click on "Alarms" in the left panel.

Cloudwatch dashboard

Since there are no alarms in my account under the selected region we don't see anything listed down. To create an alarm click on the "Create alarm" button.

Alarms page

Click on the "Select metric" button to select a metric from the available list for S3 Buckets.

Specify metric and conditions

Here, search for "S3" to filter out the results and then click on Storage Metrics.

Searcht S3 metric

From the available list, you can choose the S3 bucket and the Metric Name. You can select only one at a time to create an alarm. Click on the "Select metric" button to proceed.

Select metric

Since we have selected a metric of type "NumberOfObjects", we get an option under Conditions to specify a threshold wherein we can specify a value that will be compared against the number of objects in the bucket. If this specified condition becomes true the alarm is triggered. Click on the "Next" button to proceed.

Specify conditions

On this screen, you can select an existing SNS topic or create a new one to send alert notifications on it. Here, I have selected an SNS topic from the existing topics. Proceed further to finish the alert creation.

Specify SNS Topic

Here, give a name to the alert, add a description to it and click on the "Next" button.

Add name and description

This is the last step where you can review configurations and create an alarm if everything looks good. Clicking on the "Create alarm" button will create an alarm for you.

Review the alarm

Once the alarm is successfully created you can see it on the console. If you observe, you can see that the state of the alarm is "Insufficient data", this will take a few minutes to analyze the state and update accordingly.

Alarm-  In Insufficient data state

After a few minutes depending on the condition the state will be changed. Here, the condition matches as the number of objects in the S3 bucket is greater than the number we specified in the alarm. As the condition matches the alarm goes into an "In alarm" state.

Alarm-  In Alarm state

As the alarm triggers it sends a notification to SNS. The SNS topic I selected contains a subscription endpoint as my email ID, due to this the alert notification is sent to my email ID.

Email notification

Now, to see what happens if the condition does not match, we can change the threshold value to something greater than the number of objects we have in the S3 bucket. I have changed the threshold value to 100 and updated the alarm.

Update the alarm

Upon changing the value the condition does not match and the alarm is not triggered hence the state is changed to "Ok".

Alarm- In Ok state

Delete the Alarm

When you no longer need the alarm you can easily delete it. To delete the alarm, select the alarm to be deleted and click on the Actions --> Delete button.

Delete the alarm

You will see a pop-up screen, click on the "Delete" button to confirm your deletion.

Once you delete the alarm it cannot be restored, so be careful while deleting the alarms.

Confirm deletion

Conclusion

In this article, we went through the steps to create an alarm for the S3 bucket for the Number of objects. We saw how the alarm transits from one state to another based on the condition specified and sends notifications to the selected SNS Topic.

Share this page:

0 Comment(s)