Running a Monitoring Service for Under $20/Month

· 4 min · httptiger.com

The Cost Question

Before serverless, running a URL monitoring service meant paying for servers that sat idle most of the time. A monitoring tool does not need constant compute -- it needs bursts of activity when users submit checks, then nothing. Paying for a server running 24/7 to handle a workload that is active 2% of the time felt wrong.

HTTP Tiger runs entirely on serverless infrastructure, and the monthly bill reflects the actual usage, not the theoretical capacity.

What the Bill Actually Looks Like

Here is a rough breakdown of a typical month with several hundred active users:

Total: typically $8-17/month depending on usage volume.

Where Costs Hide

CloudWatch logs are the sneaky one. Every Lambda invocation writes logs, and CloudWatch charges for log ingestion and storage. Without log retention policies, months of accumulated logs can quietly become the largest line item on the bill. Setting a 14-day retention policy on all log groups cut this cost by 80%.

DynamoDB indexes are the other surprise. Every Global Secondary Index on a DynamoDB table is essentially a full copy of the data. Adding an index for a convenient query pattern doubles the write cost for that table. We learned to be intentional about which queries justify an index versus which can use a less efficient scan on rare occasions.

Data transfer is negligible at this scale but would become significant with thousands of concurrent users. Lambda-to-DynamoDB traffic within the same region is free, which is why keeping everything in a single region matters for cost control.

Why Serverless Works for This

URL monitoring has a bursty traffic pattern: a user submits 200 URLs, the system checks them all in 30 seconds, then nothing happens for hours. Serverless pricing aligns perfectly with this pattern. You pay for those 30 seconds of compute and zero for the hours of idle time.

A traditional server-based setup would cost $50-100/month minimum for equivalent capacity (two small instances behind a load balancer, a managed database). The serverless version costs a fraction of that and scales automatically when traffic spikes.