Monitor VPC NAT gateways with CloudWatch metrics and alarms

Michael Wittig – 15 Aug 2022

Many VPC designs make use of public and private subnets. You need a NAT gateway to communicate from a private subnet with the Internet.

Monitor VPC NAT gateways with CloudWatch metrics and alarms

A VPC NAT gateway is a finite resource that can be exhausted. That’s why you need to add monitoring to be alerted if the NAT gateway gets a bottleneck.

CloudWatch metrics

Each NAT gateway sends metrics to CloudWatch that we can monitor with CloudWatch alarms. We recommend creating alarms for the following metrics:

  • ErrorPortAllocation: The number of times the NAT gateway could not allocate a source port.
  • PacketsDropCount: The number of packets dropped by the NAT gateway.

Monitoring throughput utilization

Unfortunately, NAT gateways do not report a single metric on the throughput utilization of bandwidth and packets. The maximum bandwidth is 100 Gbit/second and 10,000,000 packets/second. Luckily, we can calculate throughput by using CloudWatch metric math.

To calculate the bandwidth utilization, we use the following metrics:

ID metric statistic period
in1 BytesInFromDestination Sum 60
in2 BytesInFromSource Sum 60
out1 BytesOutToDestination Sum 60
out2 BytesOutToSource Sum 60

And the following expressions:

ID expression comment
bandwidth (in1+in2+out1+out2)/60*8/1000/1000/1000 Bytes/min to Gbit/s
utilization bandwidth/100*100 to %; 100 Gbit/s is the hard limit

Set up instructions

Monitoring Assistant
CloudWatch metric math sounds complicated? We have you covered! Monitor NAT gateways and receive alerts in Slack or Microsoft Teams!

  1. Add marbot to Slack or Microsoft Teams.
  2. Invite marbot to a channel.
  3. Follow the setup wizard.
It couldn't be easier!
Michael Wittig

Michael Wittig

Consultant focusing on Amazon Web Services (AWS). Entrepreneur building Author of Amazon Web Services in Action, Rapid Docker on AWS, and

You can contact me via Email, Twitter, and LinkedIn.

Published on

marbot teaser

Chatbot for AWS Monitoring

Configure monitoring for Amazon Web Services: CloudWatch, EC2, RDS, EB, Lambda, and more. Receive and manage alerts via Slack. Solve incidents as a team.

Add to Slack
Microsoft Teams
Add to Teams