Amazon CloudWatch Internet Monitor: What It Is, Pricing ($0.01 per Resource-Hour and the City-Network Charge That Really Sets the Bill), Setup With CloudFront or a VPC, and Internet Monitor vs Network Synthetic Monitor, Flow Monitor and RUM

Logeshwaran
—

Amazon CloudWatch Internet Monitor shows how the internet between your users and your AWS application is behaving: which cities and which internet providers are seeing slow or failed connections to your CloudFront distribution, VPC, Network Load Balancer or WorkSpaces, and whether the problem is the provider or AWS. It uses measurements AWS already collects across its network, so there is nothing to install. Pricing is $0.01 per monitored resource per hour ($7.30 a month) plus $0.74 per 10,000 city-networks per hour after the first 100, plus CloudWatch Logs for its measurement logs (US East, October 2026). The surprise is which number sets the bill. For a 30-resource monitor watching 45,000 city-networks, the resources cost $216 a month and the city-networks about $2,392. Capping city-networks at 100 keeps a small site at about $7.30 a month.

Three customers of Jake's shop, all in the same town two hours away, emailed in one week to say the online store "kept spinning". Everyone else was fine, and Ethan's own tests from home were fast. "It's either their internet or ours," Jake said, "and I'd like to know which before I pay anyone to fix it." Ethan turned on Internet Monitor for the store's CloudFront distribution. Two days later it showed one regional internet provider in that town losing traffic every evening, and nothing wrong on the AWS side.

⚡ Quick Answer

• What it is: internet health between your users and your app, by city and internet provider, from AWS's own measurements. Plain English.

• Price: $0.01 per resource-hour + $0.74 per 10,000 city-networks per hour after 100 free + logs. Pricing with examples.

• Cost control: set the city-networks maximum when you create the monitor. Pick a value.

• Setup: CloudWatch, Network Monitoring, Internet monitors, Create monitor; data after 15 to 30 minutes. Console and CLI.

• Not the same as Network Synthetic Monitor, Network Flow Monitor or RUM. Which one you need.

How it works · Monthly cost examples · Alerts · Is it worth it? · Troubleshooting · FAQ.

This guide explains Internet Monitor in plain English, what it costs with real numbers, how to set it up so it cannot surprise you on the bill, and how it differs from the other CloudWatch network monitoring tools with similar names. If CloudWatch itself is new to you, start with what CloudWatch is.

🧭 NEW HERE? READ THESE FIRST

New to the AWS services in this guide? These pages explain the basics first:

💡 When users say "your site is slow", Internet Monitor answers the first question: is it them, their internet provider, or AWS?

What CloudWatch Internet Monitor is, in plain English

Your application runs in AWS, and your users reach it across the public internet: their home or mobile connection, their internet provider, and several networks in between. When something goes wrong in that middle part, your own dashboards look perfect, because your servers are fine. You only hear about it as vague complaints from one region. Internet Monitor fills that gap. AWS constantly measures connectivity across its global network, and Internet Monitor applies those measurements to your traffic, showing performance and availability from each place your users connect from.

The unit it works in is the city-network: a city plus the network your users there come through, usually their internet provider, identified by its ASN (autonomous system number). "Lockport, provider X" is one city-network; the same city with a mobile carrier is another. For each city-network with traffic to your resources, Internet Monitor calculates a performance score and an availability score, the estimated share of traffic not seeing a drop, and raises a health event when they fall below a threshold, telling you whether the cause appears to be a specific provider or the AWS network.

It sits in the CloudWatch console under Network Monitoring, next to two other tools covered later: Network Synthetic Monitor and Network Flow Monitor. Nothing runs on your servers; you only tell it which resources carry your internet-facing traffic.

Jake: "So it's like a traffic report, but only for the roads to my shop."

Ethan: "Exactly. And it tells you which road has the pothole."

How Internet Monitor works: resources, scores and health events

  • Resources you can monitor: VPCs (which must have an internet gateway), Network Load Balancers, CloudFront distributions and WorkSpaces directories. A single monitor holds one type of resource, so CloudFront distributions and VPCs go in separate monitors. A monitor can include resources from several Regions, but its data is stored only in the Region where you create the monitor.
  • Traffic percentage: you choose what share of your application's traffic to monitor, 100% by default. Lower values cost less and see less.
  • City-networks maximum: an optional cap on how many city-networks the monitor tracks. This is the main cost control.
  • Health events: created when performance or availability scores drop below a threshold, 95% by default for both, for overall impact and for local impact. You can set your own thresholds.
  • Outputs: the Internet Monitor dashboard, CloudWatch metrics for your traffic overall and per Region and edge location, measurement logs in CloudWatch Logs every five minutes for your top 500 city-networks, optional copies of the measurements in S3, and health events sent to Amazon EventBridge. If the AWS network itself causes a problem, you also get an AWS Health Dashboard notification.
  • Suggestions: the dashboard can estimate how latency would change if you served users through a different Region or through CloudFront.

After you create a monitor, it needs 15 to 30 minutes to build a traffic profile of where your users are before the dashboard fills in. The internet weather map in the same console page, a global view of internet outages from the past 24 hours by city and provider, is free and works without any monitor at all.

CloudWatch Internet Monitor pricing

ChargePrice (US East, N. Virginia)Per month (730 hours)
Monitored resource$0.01 per resource per hour$7.30 per resource
Monitored city-networks$0.74 per 10,000 city-networks per hour, after the first 100 (across all monitors in the account)About $5.40 for every additional 100 city-networks
Measurement logsStandard CloudWatch Logs ingestion and storageDepends on traffic; top 500 city-networks every 5 minutes
Optional S3 copy of measurementsStandard S3 storage and requestsUsually small
Your own alarms, dashboards, extra metricsStandard CloudWatch pricesAs you add them

Two details make the city-network line easy to misread. It is charged per hour, so 10,000 city-networks cost $0.74 every hour, $540 a month, not $0.74 a month. And you pay for the city-networks that actually send traffic, up to the maximum you set: a monitor capped at 10,000 for a local business that only ever sees 300 pays for 300. The first 100 are covered for the whole account, as a flat deduction each month, not per monitor.

What Internet Monitor costs: four examples

SetupResourcesCity-networksApproximate monthly cost
Small site, capped at 1001 CloudFront distribution: $7.30100 (all within the free allowance): $0$7.30 + logs
Regional business1 resource: $7.30200: about $5.40About $12.70 + logs
A cap of 10,000, and traffic reaches it1 resource: $7.3010,000: about $534.80Up to about $542 + logs
Large global app: 10 CloudFront distributions + 20 VPCs30 resources: $216 (720 hours)45,000: about $2,392About $2,608 + logs

The pattern is the same in every row: resources are cheap, city-networks are what the bill is made of, and the city-networks maximum is the dial. The same arithmetic puts a global company monitoring 50,000 city-networks at around $2,700 a month for that part, and a company in fewer areas with 200 city-networks at around $13.

The third row is worth a second look. Copy-paste examples for creating a monitor often use --max-city-networks-to-monitor 10000, a sensible value for a global application and an expensive one to paste unchanged for a small one if its traffic is broad. Set the cap from your own audience, as the next section shows.

Choosing a city-networks maximum that fits your users

  1. Start low. For a business that serves one country or region, create the monitor with a maximum of 100 to 500. At 100, everything you monitor sits inside the free allowance.
  2. Watch for a week. Compare the monitor's monitored bytes transferred with bytes transferred: the closer they are, the more of your traffic the cap already covers. If the city-networks you see include the users you care about, stop there.
  3. Raise it in steps only if important users are missing: aws internetmonitor update-monitor --monitor-name shop-store --max-city-networks-to-monitor 500, or Action, Update monitor in the console. Each extra 100 adds about $5.40 a month.
  4. Lower the traffic percentage instead of the cap if you want the same geographic spread at lower volume.

Remember the 100 free city-networks are per account. Two monitors with 100 each use 200 between them, so the second 100 is billed.

How to set up Internet Monitor: console and CLI

In the console:

  1. Open the CloudWatch console. In the left pane, under Network Monitoring, choose Internet monitors, then Create monitor.
  2. Enter a monitor name (it cannot be changed later).
  3. Choose Add resources and pick your CloudFront distributions, or your VPCs, or your Network Load Balancers, or a WorkSpaces directory: one type per monitor. A VPC needs an internet gateway to produce useful data.
  4. Leave the traffic percentage at 100%, or lower it.
  5. Set the city-networks maximum from the previous section. This is the step people skip and regret.
  6. Optionally turn on publishing measurements to an S3 bucket.
  7. Choose Create monitor and give it 15 to 30 minutes before you look at the dashboard.

With the AWS CLI, the same monitor for a CloudFront distribution, capped at 100 city-networks:

aws internetmonitor create-monitor --monitor-name "shop-store" \
  --resources "arn:aws:cloudfront::123456789012:distribution/E2EXAMPLE1234" \
  --traffic-percentage-to-monitor 100 \
  --max-city-networks-to-monitor 100

Then check its state, list health events, and change the cap later:

aws internetmonitor get-monitor --monitor-name "shop-store"
aws internetmonitor list-health-events --monitor-name "shop-store"
aws internetmonitor update-monitor --monitor-name "shop-store" --max-city-networks-to-monitor 300

get-monitor returns "Status": "ACTIVE" and a ProcessingStatus of OK once data is flowing. Use your own distribution ID or VPC ARN in place of the example. To stop all charges, delete the monitor: aws internetmonitor delete-monitor --monitor-name "shop-store".

Getting alerted when the internet breaks for your users

Health events go to Amazon EventBridge automatically, so alerting is an EventBridge rule rather than a CloudWatch alarm on a metric. In the EventBridge console, create a rule, choose AWS events as the source, pick the Internet Monitor service and its health event type, and send it to an SNS topic that emails or messages you. Test the rule with the console's sample event before you rely on it; if it never fires, EventBridge rule never fires covers the usual pattern mistakes.

For a small site, the default 95% thresholds can be noisy at night when traffic is low; raise the local-impact threshold, or alert only on overall impact, until the alerts match what your customers actually notice.

Internet Monitor vs Network Synthetic Monitor vs Network Flow Monitor vs RUM

ToolWhat it watchesHow it measuresPrice (US East)
Internet MonitorUsers on the internet reaching your AWS appAWS's own global internet measurements; nothing to install$0.01 per resource-hour + city-networks
Network Synthetic MonitorYour on-premises network reaching AWS (hybrid links, Direct Connect, VPN)Test probes from VPC subnets to your on-premises IP addresses$0.10 per monitored resource-hour, plus CloudWatch metrics
Network Flow MonitorTraffic between your own EC2 instances, EKS nodes and AWS servicesAn agent on each instance or node$0.0069 per monitored resource-hour (10 resources free for 12 months), plus metrics
CloudWatch RUMWhat real users experience in the browser: page load times, JavaScript errorsA script in your web pagesBilled per event, with a first-time free trial of 1 million events

They answer different questions. Internet Monitor: "is the internet between my users and AWS healthy?" Synthetic Monitor: "is my office or data center link to AWS healthy?" Flow Monitor: "is the network inside my AWS setup healthy?" RUM: "what did the user's browser actually experience?" A public website with users spread around usually wants Internet Monitor and RUM together; a company with a data center connected to AWS adds Synthetic Monitor.

Is Internet Monitor worth it?

  • Yes when you get location-specific complaints you cannot reproduce, when you need to tell a customer or a provider whose fault an outage was, or when you are choosing a Region or deciding whether CloudFront would help users in a specific country. At $7.30 to $15 a month for a capped monitor, one resolved argument pays for a year.
  • Not yet when nearly all your users are in one city on one or two providers, or when your problems are inside the application (slow database, errors); CloudWatch metrics, X-Ray and RUM tell you more there.
  • Be careful with large, global audiences: monitoring every city-network can cost thousands of dollars a month, so start capped and raise the cap only for the regions that matter.

Troubleshooting by symptom

The dashboard is empty after creating the monitor

It needs 15 to 30 minutes to build the traffic profile, and longer for a resource with very little traffic. Check get-monitor for ProcessingStatus OK.

A VPC monitor shows no data

The VPC needs an internet gateway and real internet-facing traffic. Private-only VPCs produce nothing useful.

I cannot add a CloudFront distribution and a VPC to the same monitor

Each monitor takes one resource type. Create one monitor for the distributions and another for the VPCs.

The bill is higher than expected

Check the city-networks maximum and the number of monitors; the free 100 city-networks are per account. Lower the cap or the traffic percentage with update-monitor.

CloudWatch Logs costs went up after turning it on

Measurement logs for the top 500 city-networks arrive every five minutes. Set a retention period on the log group so they do not pile up forever.

Health events fire too often

Raise the thresholds from the 95% default, or alert only on overall impact, so low-traffic hours do not trigger events.

I cannot find my monitor's data in another Region

A monitor stores data only in the Region where you created it, even if its resources are elsewhere. Switch the console to that Region.

I cannot rename a monitor

Names are fixed. Create a new monitor with the right name and delete the old one.

Frequently asked questions

What is Amazon CloudWatch Internet Monitor?

A CloudWatch feature that measures internet performance and availability between your AWS application and your users, by city and internet provider, using AWS's own network measurements.

How much does CloudWatch Internet Monitor cost?

$0.01 per monitored resource per hour plus $0.74 per 10,000 city-networks per hour after the first 100, plus CloudWatch Logs charges, in US East.

Is CloudWatch Internet Monitor free?

No, but the first 100 city-networks per account are included, so a capped single-resource monitor costs about $7.30 a month plus logs.

What is a city-network in Internet Monitor?

A city where your users connect from, combined with the network they use there, usually their internet provider identified by its ASN.

How do I reduce Internet Monitor costs?

Set a city-networks maximum, lower the traffic percentage, use fewer monitors, and set a retention period on the measurement log group.

Which resources can Internet Monitor monitor?

VPCs with an internet gateway, Network Load Balancers, CloudFront distributions and WorkSpaces directories, one resource type per monitor.

Do I need to install an agent for Internet Monitor?

No. It uses measurements AWS already collects across its network. Network Flow Monitor is the tool that needs an agent.

How long does Internet Monitor take to show data?

About 15 to 30 minutes after you create the monitor, while it builds a traffic profile of where your users are.

What is the difference between Internet Monitor and Network Synthetic Monitor?

Internet Monitor watches users on the internet reaching AWS. Network Synthetic Monitor probes the connection between your on-premises network and AWS.

What is CloudWatch Network Flow Monitor?

A CloudWatch Network Monitoring tool that uses an agent on EC2 instances or EKS nodes to measure network performance between your workloads, priced per monitored resource.

Is Internet Monitor the same as CloudWatch RUM?

No. RUM measures what real browsers experience through a script in your pages; Internet Monitor measures the internet path from AWS's side without touching your pages.

How do I get alerts from Internet Monitor?

Health events are sent to Amazon EventBridge; create an EventBridge rule for Internet Monitor health events with an SNS topic as the target.

What are the default health event thresholds?

95% for both the performance score and the availability score, for overall and local impact. You can set your own.

Where is Internet Monitor in the console?

In the CloudWatch console, under Network Monitoring, choose Internet monitors.

Can one monitor cover resources in several Regions?

Yes, but the monitor stores its data only in the Region where you created it.

How do I stop paying for Internet Monitor?

Delete the monitor. Charges for resources and city-networks stop; logs already stored follow their log group's retention.

For readers preparing for an AWS certification

We have been covering AWS certifications alongside our fixes, so here is a short extra for readers studying for one. If you only came for the fix, you already have it; feel free to skip this part.

Exams that test this topic: CloudOps Engineer – Associate (SOA-C03) • Solutions Architect – Associate (SAA-C03) • DevOps Engineer – Professional (DOP-C02).

Here are the exam-style questions this topic tends to raise, with the reasoning you need to answer them:

1. Users in one city report a slow website served by CloudFront while metrics from AWS look healthy. Which service identifies whether an internet provider is the cause, without installing agents?

CloudWatch Internet Monitor, which reports performance and availability by city-network and attributes problems to an ASN or to AWS.

2. A company wants to cap the cost of CloudWatch Internet Monitor for a global application. Which setting has the largest effect?

The maximum number of city-networks to monitor; city-networks are billed per hour after the first 100 per account.

3. How can a team be notified automatically when Internet Monitor detects a problem?

Internet Monitor sends health events to Amazon EventBridge; create a rule that targets an SNS topic.

4. A team needs to monitor network performance between its on-premises data center and a VPC. Which CloudWatch tool fits?

Network Synthetic Monitor, which probes on-premises IP addresses from VPC subnets.

5. Which CloudWatch Network Monitoring tool requires an agent on EC2 instances or EKS nodes?

Network Flow Monitor; Internet Monitor and Network Synthetic Monitor need no agent on your instances.

6. A monitor includes resources in two Regions. Where is its data stored?

Only in the Region where the monitor was created.

Exam codes and dates change often. Our AWS certification changes page keeps track of what is current.

πŸ“š ALSO READ

More AWS monitoring and networking guides:

📌 Cap the city-networks before you click Create. That one field is the whole bill.

Jake forwarded the provider's name to the three customers with a polite note. A week later one of them wrote back that the provider had replaced a faulty router in their town and the store now loaded instantly. "So I paid seven dollars to find out it wasn't us," Jake said. Ethan nodded. "Cheapest seven dollars you'll ever spend."

📌 If you keep one line from this page

CloudWatch Internet Monitor shows whether your users' internet or AWS is the problem, by city and provider; it costs $0.01 per resource-hour plus $0.74 per 10,000 city-networks per hour after 100 free, so set the city-networks maximum when you create it.

US East (N. Virginia) prices, AWS price list of October 7, 2026 · 730 hours per month · October 2026.

Revision note. Written October 23, 2026, with Internet Monitor, Network Synthetic Monitor and Network Flow Monitor prices from the AWS price list for US East (N. Virginia) and the CloudWatch user guide as they stood on that date. "Don't shoot the messenger," the saying goes; Internet Monitor is the messenger, and it usually points at someone else's router.

Related