1. Answers
  2. Provision an AWS CloudWatch Metric Alarm with Pulumi

How do I provision an AWS CloudWatch metric alarm in TypeScript?

In this guide, we will demonstrate how to provision an AWS CloudWatch metric alarm using Pulumi and TypeScript. AWS CloudWatch Alarms allow you to monitor metrics and send notifications or take actions when certain thresholds are met. This is useful for maintaining the health and performance of your applications and infrastructure.

We will create a CloudWatch metric alarm that monitors the CPU utilization of an EC2 instance and triggers an alarm if the CPU utilization exceeds 70% for a period of 5 minutes.

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

// Create an EC2 instance to monitor (for demonstration purposes)
const instance = new aws.ec2.Instance("exampleInstance", {
    ami: "ami-0c55b159cbfafe1f0", // Amazon Linux 2 AMI
    instanceType: "t2.micro",
});

// Create a CloudWatch metric alarm
const cpuAlarm = new aws.cloudwatch.MetricAlarm("cpuAlarm", {
    comparisonOperator: "GreaterThanThreshold",
    evaluationPeriods: 1,
    metricName: "CPUUtilization",
    namespace: "AWS/EC2",
    period: 300, // 5 minutes in seconds
    statistic: "Average",
    threshold: 70, // 70% CPU utilization
    alarmDescription: "Alarm if CPU utilization exceeds 70% for 5 minutes",
    alarmActions: [], // Add your SNS topic ARN or other actions here
    dimensions: {
        InstanceId: instance.id,
    },
});

// Export the instance ID and alarm name
export const instanceId = instance.id;
export const alarmName = cpuAlarm.name;

Key Points:

  • We created an EC2 instance that we will monitor with the CloudWatch alarm.
  • The MetricAlarm resource defines the conditions under which the alarm will trigger.
  • The comparisonOperator is set to GreaterThanThreshold, meaning the alarm will trigger if the metric exceeds the threshold.
  • evaluationPeriods, period, and statistic define the conditions for evaluating the metric.
  • threshold is set to 70, meaning the alarm will trigger if the CPU utilization exceeds 70%.
  • dimensions specify the EC2 instance to monitor.

Summary

In this guide, we provisioned an AWS CloudWatch metric alarm using Pulumi and TypeScript. The alarm monitors the CPU utilization of an EC2 instance and triggers if the utilization exceeds 70% for a period of 5 minutes. This setup helps in monitoring and maintaining the performance of your applications and infrastructure.

Deploy this code

Want to deploy this code? Sign up for a free Pulumi account to deploy in a few clicks.

Sign up

New to Pulumi?

Want to deploy this code? Sign up with Pulumi to deploy in a few clicks.

Sign up