LevelUpWith

Explore / Cloud Pro: Google Cloud Storage: Choose, Compare and Launch / Lesson 2

Lesson 2: The Standard Data Profile

Build a reusable data profile that records size and growth, access type and protocol, IOPS, throughput and latency, read/write pattern, durability, availability, consistency, sharing, retention, residency and cost model, so that every later choice is measured against the same record.

Free to read, no account needed. Part of Cloud Pro: Google Cloud Storage: Choose, Compare and Launch.

By the end of this level you'll be able to

  • Fill in a complete data profile for a real workload, with numbers and units for capacity, growth, IOPS, MiB/s and latency
  • Turn vague requirements such as 'fast' or 'safe' into measurable targets like p99 latency, RPO/RTO and the number of copies kept
  • Use the profile to rule out whole storage groups before looking at any single product
  • Record in the data profile the immutability requirement (such as WORM or a locked retention period) and the deletion requirement (such as guaranteed erasure or a deletion deadline), next to retention.
  • Record in the data profile the compliance regimes that apply to the data (for example GDPR, HIPAA or PCI DSS) and the storage controls each one requires, next to residency.

Why you need a profile before you need a product

In Level 1 you saw every Google Cloud storage service on one page. That list doesn't choose anything for you. Ask five engineers which service suits a workload and you'll get five answers, because each one pictures a different workload. The fix is boring and it works: write the workload down once, in a fixed format, with numbers and units. That record is the data profile. Every later lesson in this course measures a service against it.

Think of it like a patient's chart. A doctor doesn't prescribe from "I feel unwell". They record temperature, blood pressure and history first. "Fast", "safe" and "big" are how the workload feels. The profile records the measurements.

The fields, and the questions behind them

Field Question to answer Units / example
Size and growth How much today, how much in 12 and 36 months? TiB; % per month
Access type and protocol Object (HTTP API), block (a disk attached to a VM) or file (NFS/SMB, POSIX)? NFSv3, S3/XML API, block
IOPS How many operations per second, at what I/O size? 20,000 IOPS at 8 KiB
Throughput How much data per second, read and write? MiB/s
Latency How long can one operation take, at the tail? p99 ≤ 2 ms
Read/write pattern Random or sequential? Read-heavy? Big files or small? 80/20 R/W, random, 8 KiB
Durability and copies How much loss is tolerable? How many copies, where? RPO 15 min; 3 copies, 2 regions
Availability How long can it be unreachable? 99.9%; RTO 1 h
Consistency Must a reader see a write immediately? strong / eventual OK
Sharing One VM, many VMs, many regions? Concurrent writers? 40 readers, 1 writer
Retention, immutability, deletion Keep how long? Unchangeable? Must it be provably erased by a deadline? 7 yr WORM; erase within 30 days
Residency and compliance Where may it live? Which regimes apply? EU only; GDPR, PCI DSS
Cost model Pay for what is provisioned or for what is used? Budget? ≤ $4,000/month

Gotcha: units. MB/s (10^6) and MiB/s (2^20) differ by about 5%. Vendor docs mix them, so pick one (this course uses MiB/s and TiB) and convert everything else to it. An IOPS figure without an I/O size means little: 20,000 IOPS at 4 KiB is about 78 MiB/s, while at 64 KiB it is about 1,250 MiB/s.

Turning vague words into targets

  • "Fast" becomes a latency figure at a percentile, plus IOPS or throughput. Use p99, not the average. An average of 1 ms can hide 1% of requests taking 200 ms, and users notice those.
  • "Safe" splits into three figures. RPO (recovery point objective) is how much recent data you can afford to lose. RTO (recovery time objective) is how long recovery may take. Copies is how many independent copies you keep and how far apart they are, for example the 3-2-1 rule: three copies, on two kinds of media, one off-site.
  • "Always on" becomes an availability percentage. 99.9% allows about 8.8 hours of downtime a year. 99.99% allows about 53 minutes.
  • "Durable" describes something different from availability. Cloud Storage, for example, is designed for 99.999999999% (11 nines) annual durability. That figure measures whether your bytes survive, not whether you can reach them right now. The profile records both.

Walkthrough: measure, then write it down

Get your numbers from the running system, not from memory. On an existing Linux database server:

# Extended device stats every 60 s, 5 samples. Run it at peak hour, not at 3 a.m.
iostat -x 60 5
# Read: r/s + w/s = IOPS; rkB/s + wkB/s = throughput;
#       r_await / w_await = average latency in ms (an average, so add headroom for p99)

# Capacity in use on the data volume
df -h /var/lib/postgresql

If some data already sits in a bucket:

# Total size of a bucket, human-readable
gcloud storage du gs://acme-invoices --summarize --readable-sizes

Then record it in a file that lives in the repo next to the infrastructure code:

# data-profile.yaml: card-payments ledger (profile dated 2026-10-24)
workload: payments-ledger
size: {today_tib: 2.5, growth_pct_month: 4, at_36_months_tib: 10.3}
access: {type: block, protocol: none, consumer: "1 PostgreSQL primary VM"}
performance:
  iops: {peak: 18000, io_size_kib: 8}      # from iostat at month-end peak
  throughput_mib_s: {read: 250, write: 90}
  latency_p99_ms: 2
pattern: {read_write: "70/30", access: random}
protection: {rpo_minutes: 5, rto_minutes: 60, copies: 3, regions: 2}
availability_target: "99.95%"
consistency: strong                         # ledger: no stale reads
sharing: {writers: 1, readers: 1}           # replicas get their own storage
retention: {keep_years: 7}
immutability: {required: true, form: "WORM, locked retention period"}
deletion: {requirement: "erase on request within 1 month (GDPR Art. 17)"}
residency: {allowed: ["europe-west1", "europe-west4"]}
compliance:
  - {regime: PCI DSS, control: "PAN unreadable wherever stored (Req. 3.5.1)"}
  - {regime: GDPR, control: "EU residency, erasure on request"}
cost_model: {prefer: provisioned, budget_usd_month: 4000}

Trade-off to flag early: immutability and erasure can clash. A locked WORM retention period means nobody can delete the data early, you included. If personal data might be subject to an erasure request, record that conflict now. A common answer is to keep personal data out of the immutable store, or to encrypt it per subject and destroy the key. Settle it in the profile so it doesn't surface in an audit.

Compliance next to residency

Residency answers where the data may live. Compliance answers what controls must surround it. Record both, and record each regime with the specific storage control it requires:

  • GDPR: lawful location and transfers, and erasure "without undue delay". In practice that means within one month of the request, extendable by two months for complex cases.
  • HIPAA: in Google Cloud, protected health information may only go into services covered by Google's Business Associate Addendum, and you must have that agreement in place.
  • PCI DSS v4.0.1: card numbers (PAN) must be unreadable wherever they are stored. Disk-level encryption alone is not enough on non-removable media.

On Google Cloud you can enforce residency with the organization policy constraint gcp.resourceLocations. It applies only to resources created after you set it.

Using the profile to rule out whole groups

Before you look at any single product, eliminate groups:

  1. Access type first. The ledger needs block access with 2 ms p99. That rules out object storage and archive straight away.
  2. Sharing next. One writer on one VM means you don't need shared file storage, so file and high-performance file drop out.
  3. Protection and compliance last. RPO 5 minutes across 2 regions means block storage alone isn't enough. Note "needs replication or backup" for the transfer and backup group.

Three questions take you from seven groups down to block, plus backup. Comparing products inside those groups starts in Level 3.

Key takeaways

  • Write the workload down once, in a fixed format with units, before you pick any service.
  • Replace adjectives with targets: p99 latency, IOPS at an I/O size, MiB/s, RPO/RTO, copies, availability %.
  • Get the numbers from a running system at peak, and date the profile.
  • Record immutability and deletion next to retention, and flag any conflict between them.
  • Record each compliance regime with the storage control it requires, next to residency.
  • Use access type, sharing and protection to rule out whole storage groups first.

A 6-question knowledge check follows this lesson in the app, free and without an account.

Keep going: levels 3 and 4 are free

Create a free account to open the next two levels, save your progress and pick up where you left off. No card needed.

Next: Level 3, Cloud Storage: Classes, Autoclass and Limits.

Create a free account →See the whole course

More like this

  • Cloud Pro: Google Cloud Databases: Choose, Compare and Launch

    Profile any workload, choose the right Google Cloud database with a weighted scorecard and dated evidence, and get it running from the CLI, gcloud and Terrafor…

    Course · Google · Cloud Pro: Choose and Use · Expert · 29 levels · 4 free · Professionally curated by levelupwith.com

  • Cloud Pro: Google Cloud Compute: Choose, Compare and Launch

    Profile any workload, score every Google Cloud compute service against it, from Compute Engine machine families, Spot VMs and managed instance groups to Batch,…

    Course · Google · Cloud Pro: Choose and Use · Expert · 35 levels · 4 free · Professionally curated by levelupwith.com

  • Support Pro: Helping Users Move to Google Workspace

    Get first and second line support ready to carry users through a Microsoft 365 to Google Workspace cutover. You will prepare before cutover, map each Microsoft…

    Course · Google · Suite Support Pro: Configure and Fix · Expert · 40 levels · 4 free · Professionally curated by levelupwith.com

  • Google Workspace Support Pro: Gemini for End Users

    Diagnose and fix real Gemini tickets in Google Workspace. You'll work out which Gemini a user has from their edition and add-ons, read the Gemini app and servi…

    Course · Google · Suite Support Pro: Configure and Fix · Expert · 40 levels · 4 free · Professionally curated by levelupwith.com

  • Google Workspace Support Pro: Drive and Shared Drives

    Diagnose and fix Google Drive problems the way experienced support engineers do: read Admin console Drive policy and explain what it does, find out who can rea…

    Course · Google · Suite Support Pro: Configure and Fix · Expert · 34 levels · 4 free · Professionally curated by levelupwith.com

  • Google Workspace Support Pro: Meet and Chat

    Diagnose and fix the Meet and Chat faults that reach first and second line support: audio, video, screen sharing, spaces, external guests, recordings and room…

    Course · Google · Suite Support Pro: Configure and Fix · Expert · 40 levels · 4 free · Professionally curated by levelupwith.com