Cloud Data Transfer Cost Attribution from Flow Logs for Small Teams
Build a tool that reads VPC flow logs and the cost and usage report from an AWS account, works out which service talks to which and over what path (same zone, cross-zone, NAT gateway, internet, cross-region), and attributes data transfer charges to the services and teams that cause them. Small teams see a large data transfer line on the bill and cannot tell where it comes from. The tool turns that line into a ranked list of flows with fixes.
Advanced
Needs a team, real planning, and a supervisor who knows the area.2 semesters · 2 students
7 to ship
4 optional extrasSuggested stack
What you should ship
- An inventory collector that maps IP addresses to resources, services and tags over time, including short-lived ones
- A flow log processor that classifies each flow by path: same zone, cross-zone, through NAT gateway, to the internet, cross-region or to AWS services
- Cost attribution that joins classified bytes with the cost and usage report's data transfer lines and explains any unattributed remainder
- A ranked report of the top flows by estimated cost with source, destination, path and owner tag
- Fix suggestions for common patterns, such as using a VPC endpoint instead of NAT for storage traffic or keeping chatty services in one zone
- A Terraform test lab that generates known traffic patterns to validate attribution
- An evaluation of attribution accuracy against the bill in the test lab
If you have time left
- Kubernetes pod-level attribution using EKS metadata
- A weekly change report showing new expensive flows
- Support for a second cloud provider's flow logs
- A what-if estimate for a proposed fix
The problem: the data transfer line nobody can explain
Small startups and agencies running on AWS often find that data transfer is one of the largest and least understood items on the bill. Compute and storage are easy to tie to a server or a bucket. Data transfer is charged differently depending on the path: traffic between availability zones, through a NAT gateway, out to the internet or across regions, each with its own rate. The bill shows usage types and totals, not "your image service talks to your database in another zone all day".
So teams guess, switch things off and hope, or leave the cost alone. A single misplaced NAT gateway route or a chatty service in the wrong zone can quietly cost a small team a meaningful share of its budget.
What already exists and the gap
- AWS Cost Explorer and the cost and usage report show data transfer by usage type and resource where available, not by which service sent traffic to which.
- VPC Flow Logs record traffic between network interfaces but contain IP addresses, not service names or costs.
- OpenCost and Kubecost allocate costs inside Kubernetes clusters, including network costs, for teams that run Kubernetes.
The gap is a tool for small teams, with or without Kubernetes, that joins flow logs, a time-aware inventory of resources and the bill, and explains data transfer cost in terms of services, paths and owners.
Inspiration
Netflix described on its technology blog how it built Flow Exporter, an eBPF-based sidecar that produces flow logs, and a follow-up on accurately attributing flow logs to applications in a fast-changing cloud environment where IP addresses are reused. Their problem of mapping an IP at a moment in time to the right workload is the same one small teams face at a smaller scale. This project brings that attribution idea to standard VPC flow logs and adds cost.
What you build
- Developers and founders run the tool against an AWS account (read-only access) and get a report: the top flows by estimated cost, each with source service, destination, path and owner tag.
- Each finding carries a plain explanation and a suggested fix, such as "Storage traffic from private subnets goes through a NAT gateway; a gateway endpoint for this service would avoid NAT processing charges."
- A weekly run shows new or growing expensive flows.
The technically interesting part
- Time-aware IP mapping. IPs are reused as instances, containers and load balancer nodes come and go. Build an inventory that records which resource held which IP and when, from API snapshots and change events, then join flows by time.
- Path classification. Decide from subnets, zones, route tables, gateway types and destination ranges whether a flow is same-zone, cross-zone, via NAT, to the internet or to an AWS service endpoint.
- Reconciling with the bill. Flow-level estimates will not exactly match billed usage. Join your classified bytes with the cost and usage report's data transfer lines, show the attributed share and explain the gap rather than hiding it.
- Processing volume cheaply. Flow logs grow fast. Use Parquet and DuckDB locally, or Athena, and measure the cost of running the tool itself.
How to evaluate it
- Test lab: Terraform builds a small environment with known services and generates known traffic on each path. Compare attributed bytes and costs with the bill for the lab.
- Attribution coverage: share of data transfer cost attributed to a named service in the lab and, with permission, in one or two real small accounts.
- Fix validation: apply one suggested fix in the lab and measure the change in the next bill period.
- Run cost: what it costs to run the tool on a month of flow logs.
Suggested plan
- Weeks 1 to 4: study VPC flow logs, the cost and usage report and data transfer pricing structure; build the Terraform lab.
- Weeks 5 to 10: inventory collector with time-aware IP mapping.
- Weeks 11 to 15: path classifier and flow processing.
- Semester 2, weeks 1 to 6: cost reconciliation, report and fix suggestions.
- Semester 2, weeks 7 to 12: evaluation in the lab and real accounts.
- Semester 2, weeks 13 to 15: report and demo.
Path to a product
Cloud cost tools for small teams are a busy but fragmented market, and data transfer is a common blind spot. A free open source command-line tool with a hosted version for teams that want weekly reports is a realistic model. The project is directly relevant to cloud engineering and FinOps roles.
Scope warning
Use read-only permissions and never change resources automatically. Keep your lab small and tear it down after each experiment so your own bill stays low. Do not quote exact prices in reports; read them from the bill and the provider's price list at run time. Start with AWS only.
Learn what you need on Sefism
- Cloud engineering roadmap: VPCs, subnets and the services involved.
- Amazon VPC User Guide: flow logs, NAT gateways and endpoints.
- FinOps Framework: how cost allocation is done in practice.
- Terraform tutorials: building and tearing down the test lab.
- DuckDB Documentation: fast local analysis of flow logs.
- How do I practise AWS, Azure or Google Cloud without a surprise bill?: keeping your own lab costs under control.
Get help with this idea
The hard parts are time-aware IP mapping and an honest reconciliation with the bill. Tauseef can help you design the test lab, keep your own costs low and present the results for cloud roles. If you are new here, create a free account first.
Ideas and guidance, not finished projects
These are project ideas and scoping guidance, published free for students to use as a starting point. I do not build, write, or sell final-year projects, and I do not complete coursework for anyone. Take an idea, make it yours, and build it.
Not sure this one fits you?
I help students pick an idea that matches their skills and their deadline, then scope it down until it is finishable. Guidance only, never done for you.
Stuck on something specific?
Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.
Follow along
New writing, resources and project ideas land here first.