PinPole runs synthetic traffic through your full architecture, computes per-node metrics in real time, and shows you exactly what that architecture costs - by service, by instance type, and at every RPS tier - before a single AWS resource is provisioned.
No AWS account required to design and simulate · 14-day free trial on Pro · No credit card
Run at least two patterns per architecture iteration. Constant confirms steady-state health. Spike reveals latency and concurrency failures that a static baseline will never surface. Together, they give you a cost model that reflects how your architecture actually behaves - including on the worst day of the year.
Traffic pattern reference →Steady-state load at a fixed RPS. Validates baseline behaviour and establishes the cost floor. The starting point for every simulation session.
Load increases linearly from zero to peak. Tests auto-scaling responsiveness and exposes instance types that cannot scale fast enough to meet demand.
Instantaneous burst to peak RPS. Models a product launch or flash sale. Exposes cold start penalties, concurrency limits, and instance under-provisioning.
Oscillating load between baseline and peak. Models daily traffic cycles or batch jobs. Tests recovery between bursts and validates auto-scaling thresholds.
While the simulation runs, every service node on the canvas shows live RPS, latency, health status, and utilisation. The first node to throttle under load is your current bottleneck - and a direct signal for where your cost model has hidden exposure.
Node colours shift green → amber → red as thresholds are approached. Each card shows live RPS, latency, health badge, and a utilisation bar.
The simulation panel - controls, live metrics, and per-node health in a single sidebar. No context-switching required.
The simulation panel gives you a Base RPS slider (10 to 100M RPS, logarithmic), traffic pattern selector, start/pause/stop controls, and the full live metrics readout - including the live cost estimate - without leaving the canvas.
Pause and resume - simulations can be paused mid-run. If you change Lambda concurrency settings while paused, stop and restart; concurrency changes apply at initialisation only.
Every run is saved automatically to Execution History on Pro and above - including the canvas state, traffic pattern, peak RPS, and estimated cost at the moment of the run.
Get Recommendations fires directly from the simulation panel. The recommendations engine analyses both performance warnings and cost optimization opportunities - cost-impacting findings are always surfaced alongside performance findings.
AWS Pricing Calculator models a single static request rate. PinPole's cost estimate updates in real time during simulation - including under Spike and Wave patterns - capturing the service interaction effects, provisioned concurrency overhead, and instance cost structures that only materialise under real load. The number the CFO needs is the spike-weighted monthly cost, not the baseline.
Cost estimation reference →Does not model traffic patterns, inter-service interaction effects, or spike conditions. Delta from actual: 4.3% (better than average) but misses $2,360 in spike-driven costs entirely.
Updates in real time during simulation. Includes instance cost, provisioned concurrency, and spike-pattern overhead. Actual bill: $39,510. Delta: 1.7%.
The cost estimate in the canvas top bar updates every simulation tick. Baseline cost is the floor. Spike-weighted cost is the number to commit to.
Static cost calculators show you what your architecture costs at the RPS you type in. They don't show you what it costs when the product succeeds - when a campaign drops, a payroll day hits, or a launch goes well. PinPole models all of it.
Spike-weighted monthly cost - the cost estimate under Spike conditions is the number to carry into budget conversations, not the Constant baseline. PinPole makes both visible simultaneously.
Per-service cost breakdown - see exactly which service is driving the cost model at each RPS tier. Right-sizing decisions (instance type, DynamoDB mode, concurrency) are visible in the estimate before any changes are applied.
Execution History as cost audit trail - every simulation run is saved with its estimated cost. Compare any two runs side-by-side to see the exact cost consequence of an architecture change.
Not all AWS costs are per-request. EC2, RDS, Aurora, and ElastiCache are priced by instance type and hours run - and the right instance choice is the single biggest lever on your monthly bill. PinPole models fixed instance costs, scales them against your traffic profile, and surfaces right-sizing recommendations with quantified monthly impact before you provision.
Instance cost modelling reference →r6g.2xlarge running at 34% utilisation under Constant load is a right-sizing candidate - the recommendation quantifies the monthly saving from dropping to r6g.xlarge before you apply the change.The Node Configuration panel shows instance-level cost alongside service properties. The cost breakdown panel itemises fixed instance costs separately from per-request charges.
Every instance property you set in the Node Configuration panel is reflected immediately in the monthly cost estimate. Change db.r6g.2xlarge to db.r6g.xlarge and the estimate updates before you run another simulation. Add a read replica and the replica instance cost is added to the total.
Instance hours - EC2, RDS, Aurora provisioned, and ElastiCache are modelled as 24/7 instance cost. Multi-AZ standby instance hours are included automatically when Multi-AZ is enabled.
Storage, IOPS, and throughput - gp3/io1 storage costs, provisioned IOPS charges, and EBS throughput are calculated from the values you set in node configuration and added to the instance cost line.
AI right-sizing recommendations - after each simulation, the AI analyses actual peak utilisation vs instance capacity and recommends the smallest instance that safely handles your traffic profile, with the monthly saving quantified.
Instance vs serverless crossover - at each RPS tier, the cost breakdown shows whether a fixed-instance or per-request architecture is more cost-effective, and where the crossover occurs as you scale.
After each simulation, PinPole's AI analyses your architecture and returns findings categorised by severity. Every recommendation is specific - the service, the problem, and the fix - with quantified cost or latency impact. Performance warnings and cost optimization findings appear in the same list, ranked by consequence.
The Request Processor Lambda experiences 1,488 cold starts, increasing latency to 156.3 ms. Provisioned concurrency will keep instances initialised, reducing cold-start latency during traffic spikes.
Under Spike simulation at 8,000 RPS, ElastiCache connection pool saturates at 6,200 RPS causing fallthrough to DynamoDB. Estimated additional DynamoDB cost: +$2,170/mo. Upgrading to r7g.2xlarge eliminates fallthrough at +$280/mo.
At 100K RPS, adding DAX in front of DynamoDB provisioned reduces estimated cost from $9,800/mo to approximately $6,100/mo at an 80% cache hit ratio, while improving p50 read latency from 2ms to sub-millisecond.
At your current sustained 10K RPS traffic profile, DynamoDB on-demand costs approximately $8,400/mo. Switching to provisioned capacity with auto-scaling reduces this to ~$1,150/mo - a saving of $7,250/mo with no latency trade-off.
Recommendations are categorised by severity (Warning, Info, Architecture) and action type (Modify Config, Add Service, Architecture). Cost-impacting findings include quantified monthly savings.
Traffic simulation is available on all plans. Cost estimation, instance cost modelling, Spike/Ramp/Wave patterns, and one-click apply require Pro or above.
Traffic simulation, live cost estimation, instance cost modelling, and recommendations - all at design time, before a line of Terraform is written.