This document describes how to build a web analytics service using node.js, Amazon DynamoDB, and Amazon Elastic MapReduce (EMR). Node.js servers collect minute-level analytics data and write it to DynamoDB. EMR runs Hadoop jobs that roll up the minute-level data into hourly, daily, and monthly aggregates which are also stored in DynamoDB. The system can process billions of data points per month from major websites and provide analytics data at different granularities to applications through a RESTful API.