DevOps Peach

FinOps Foundations · Optimize Usage and Cost · Lesson 3 of 4

Storage and Network Costs

Storage and data transfer grow quietly: tier data with lifecycle rules, clean up snapshots and logs by retention policy, and cut transfer cost with VPC endpoints, CDN caching and keeping traffic inside one zone or region.

Practice interactively →

Compute is visible; storage and network accumulate. Every month more objects, more snapshots, more logs and more traffic — and nobody deletes anything.

flowchart TB
  HOT["Hot storage: frequent access"] -->|"lifecycle after 30 days"| IA["Infrequent access tier"]
  IA -->|"after 90 days"| ARC["Archive tier"]
  ARC -->|"after retention"| DEL["Delete"]
  APP["App in private subnet"] -->|"NAT: per-GB processing"| NAT["NAT gateway"]
  APP -->|"Gateway endpoint: no NAT charge"| EP["VPC endpoint to S3"]
  %% step HOT: New data usually sits in the most expensive, fastest tier.
  %% step IA: Lifecycle rules move data that is rarely read to cheaper tiers automatically.
  %% step ARC: Archive tiers are very cheap to store but slow and costly to retrieve.
  %% step DEL: Data past its retention period should be deleted, by policy, not by memory.
  %% step NAT: Traffic to cloud services through a NAT gateway pays a per-GB processing charge.
  %% step EP: A gateway VPC endpoint sends S3 and DynamoDB traffic privately without that charge.

Storage levers

Lever Example
Storage classes and lifecycle S3 Standard → Standard-IA → Glacier; Intelligent-Tiering when access is unknown
Disk type EBS gp2 → gp3 is usually cheaper with the same or better baseline performance
Snapshots and backups Retention policies in AWS Backup / Data Lifecycle Manager instead of manual snapshots
Logs Shorter retention for debug logs, archive to object storage, sample noisy logs
Incomplete uploads and old versions Lifecycle rules to abort multipart uploads and expire noncurrent versions

Watch retrieval fees and minimum storage durations in infrequent and archive tiers: moving data that is read every day makes it more expensive.

Data transfer levers

Cost Lever
Internet egress CDN (CloudFront, Azure Front Door, Cloud CDN) caches content closer to users
NAT gateway processing Gateway endpoints for S3/DynamoDB, interface endpoints for busy services
Cross-AZ traffic Keep chatty services in the same zone where resilience allows; topology-aware routing in Kubernetes
Cross-region replication Replicate only what disaster recovery needs

Use the usage type dimension (e.g. DataTransfer-Regional-Bytes, NatGateway-Bytes) to find these costs — they are often hidden in "EC2 - Other".

Traps: putting frequently read data into an archive tier; keeping every log forever "just in case"; and adding a NAT gateway per AZ for resilience without checking what traffic goes through it.

Practice interactively →