resource-control/docs/evidence/RESOURCE-WP-0002-expanded-storage-comparison-2026-08-10.md
tegwick 2c2a6073ff feat(portfolio): complete RESOURCE-WP-0003 T06 optimization cases and T07 reporting
T06: optimization-case schema, fail-closed evaluator, cadence and decision
template. Every option including the baseline must present all ten decision
fields; one unknown blocks the comparison. Validated on the storage case
(Hetzner computes and loses to Scaleway by EUR 29.14/month on operator labour;
Host Europe blocks on four named gaps) and on the non-storage reef-railiance
k3s rightsizing case (low utilization is real, but nothing is costable while
the railiance01 price is unknown).

T07: portfolio report over coverage, lifecycle, utilization, cost, renewals,
risks, open cases, and next actions, derived only from committed evidence.
Portfolio spend is reported null rather than as a partial sum, unattributed
cost is a named list rather than a spread, and unmeasurable resources are
reported rather than dropped.

RESOURCE-WP-0003 is finished; both cases remain blocked_on_evidence against
live delegated records in other repositories. RESOURCE-WP-0002 is untouched.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 09:28:44 +02:00

6.9 KiB
Raw Blame History

Expanded object-storage comparison — 2026-08-10

This adds self-managed S3-compatible storage and four large-cloud price points to the managed-provider comparison. All recurring totals include operator labor at €60/hour. Taxes are excluded. USD prices use the 2026-08-10 ECB reference rate of 1 EUR = 1.1555 USD.

Self-managed reference architecture

Garage is the reference open-source implementation. It has an S3-compatible API and is designed for distributed deployments. Garage explicitly says its single-node quick-start has no redundancy and must not be used in production. CNPG/Barman compatibility remains a live preflight requirement.

The initial fixed-size estimates use locally attached storage:

  • Host Europe: 8 vCPU, 16 GB RAM, 400 GB NVMe at €37.99/month including 19% VAT, normalized to €31.92 net per node. Network traffic is flat-rate.
  • Hetzner: CX53, 16 vCPU, 32 GB RAM, 320 GB local SSD at €29.49/month plus €0.50 IPv4, net per node. The June 2026 price adjustment is used.

Replication consumes the extra nodes; it does not multiply usable capacity. All nodes at one provider/location still share provider and site failure risk.

Topology Infrastructure/month Internal labor/month Running total at 320 GB Internal setup External setup Usable ceiling Assessment
Host Europe, 1 node €31.92 2 h / €120 €151.92 8 h / €480 not quoted 400 GB no redundancy; not production
Host Europe, 2 nodes €63.85 3 h / €180 €243.85 12 h / €720 not quoted 400 GB replicated, but poor failure/quorum shape
Host Europe, 3 nodes €95.77 4 h / €240 €335.77 16 h / €960 not quoted 400 GB production candidate; single provider/site risk
Hetzner, 1 node €30.09 2 h / €120 €150.09 8 h / €480 not quoted 320 GB no redundancy; not production
Hetzner, 2 nodes €60.18 3 h / €180 €240.18 12 h / €720 not quoted 320 GB replicated, but poor failure/quorum shape
Hetzner, 3 nodes €90.27 4 h / €240 €330.27 16 h / €960 not quoted 320 GB production candidate; single location risk

These sizes cover the base scenario's first month (180 GB), but not its month 12 estimate (458 GB). The calculator therefore returns null once the fixed capacity is exceeded. A larger Host Europe 800 GB node tier or Hetzner Volumes would be required; obtain account quotes before treating that expansion as a decision price. Hetzner also documents that its Volumes are already replicated across three physical servers, which means combining three Garage replicas with three replicated Volumes would buy nested redundancy at additional cost.

Managed object-storage price points

Azure Blob and Google Cloud Storage are Barman-supported object stores but are not S3-compatible APIs. AWS and STACKIT are direct S3 API comparisons. The following table fixes stored volume at 320 GB, uses the base request pattern (2,500 writes and 1,000 reads/month), and includes one 5 GB restore drill. This puts elastic per-GB products, Hetzner's bundled minimum, and Garage's fixed capacity on the same running-cost basis.

Service Infrastructure at 320 GB Internal labor/month Running total at 320 GB Internal setup External setup
Scaleway Standard Multi-AZ €5.14 1 h / €60 €65.14 none €0 assumed
Hetzner Object Storage €6.49 1.5 h / €90 €96.49 none €0 assumed
AWS S3 Standard, Frankfurt €6.80 1.5 h / €90 €96.80 4 h / €240 €0 assumed
STACKIT Object Storage Premium-EU01 €8.52 1.5 h / €90 €98.52 4 h / €240 €0 assumed
Google Cloud Storage Standard, Frankfurt €6.05 2 h / €120 €126.05 6 h / €360 €0 assumed
Azure Blob Hot ZRS, Germany West Central €6.72 2 h / €120 €126.72 6 h / €360 €0 assumed

Cloud request costs are negligible here; operator effort and egress assumptions matter more. Azure/GCP egress figures are explicit planning estimates rather than captured retail meters, so they must be refreshed in an account calculator before decision approval.

"Internal setup" values the federation's own implementation time at €60/hour. "External setup" means paid consulting, vendor professional services, or a contractor. No such service is assumed for managed self-service onboarding. It is not quoted, rather than zero, for Garage because an external security or operations review may be prudent and no scope or rate has been obtained.

The apparent difference between the earlier €62.89 Scaleway total and the normalized €5.14 infrastructure figure is reconciled in docs/forecast-actual-control.md: €62.89 is 180 GB infrastructure (€2.89) plus €60 labor, while €5.14 is infrastructure alone at 320 GB. The comparable 320 GB total is €65.14.

Interpretation

Self-management does not win at this workload once even two hours/month of patching, monitoring, certificate handling, upgrades, disk replacement, capacity management, and restore support are valued. Three-node Garage costs roughly €330€336/month plus €960 setup labor and still shares a provider/site failure domain. It may become attractive if the platform wants the capability for broader workloads, can amortize operations across them, or deliberately values open-source control above the cost difference.

For this backup alone, Scaleway remains the lowest modeled managed option. STACKIT is especially interesting as a sovereign three-AZ S3-compatible alternative: its documentation now states automatic replication across all three availability zones, versioning, lifecycle rules, server-side encryption, bucket policies, and Object Lock.

Primary sources