Private Service Connect costs: endpoint-hours and data processed (practical model)
Private Service Connect-style networking is easiest to estimate when you split it into two line items: time (endpoint-hours) and volume (GB processed). Then validate that your traffic actually uses the private path.
0) What to measure
- Endpoint-hours: endpoint count per environment and region, multiplied by hours/month.
- GB processed: baseline + peak traffic through PSC endpoints.
- Alternative path: what the traffic would cost via NAT/public egress.
1) Endpoint-hours (baseline)
Model: endpoints x hours per month. Environment sprawl (prod + staging + dev, multiple regions) often makes endpoint-hours the dominant baseline.
- Count endpoints by environment and region; that is where growth hides.
- Remove unused endpoints; idle endpoints still cost endpoint-hours.
2) Data processed (GB/month)
Estimate the traffic that uses PSC (artifact registries, storage, databases, APIs). Treat "GB through PSC" as separate from internet egress to avoid double-counting.
Tool: Transfer (GB/month).
- Deployments can spike traffic (image pulls, artifact downloads). Model a peak month.
- If services are cross-region, separate the cross-region component explicitly.
3) Compare against NAT/internet egress (two scenarios)
Build two estimates: a private-path estimate (PSC) and a public-path estimate (NAT + internet egress). PSC often reduces security risk, but it can increase baseline costs via endpoint-hours.
4) Reduce endpoint sprawl (the baseline lever)
Endpoint-hours are predictable and easy to accidentally inflate. If you have many environments and regions, add a simple governance rule: every endpoint must have an owner, a purpose, and a review date.
- Remove unused endpoints after migrations (old and new paths often exist in parallel longer than planned).
- Consolidate endpoints where possible (avoid one-off endpoints per team/service unless required).
- Track endpoint inventory in IaC so drift does not create permanent baseline cost.
Worked estimate template (copy/paste)
- Endpoint-hours = endpoints x hours/month (prod + non-prod)
- GB processed = baseline + peak GB/month through PSC endpoints
- Comparison = PSC scenario vs NAT/public egress scenario (avoid paying twice)
Common pitfalls
- Endpoint sprawl across environments/regions (baseline grows quietly).
- Traffic not actually using PSC due to DNS/routing (PSC + NAT costs at the same time).
- Deployment spikes not modeled (container pulls and package downloads).
- Blending GB processed and internet egress together, hiding optimization levers.
Validation checklist
- Validate routing/DNS so traffic actually uses PSC (avoid paying for endpoints you do not use).
- Validate endpoint count across environments (endpoint-hours scale with sprawl).
- Validate GB/month during deployments and incident windows (peaks are not averages).