Scaleway vs AWS S3: EU Pricing & Data Residency 2026
DevOps

Scaleway vs AWS S3: EU Pricing & Data Residency 2026

AWS S3 is the default for object storage, but for EU-only workloads it is more expensive than necessary and you must explicitly select an EU region to satisfy GDPR data residency. Scaleway Object Storage stores every byte in Paris or Amsterdam by default — there is no US region to opt out of — uses the same S3-compatible API, and costs 50-70% less for typical workloads. Here is the 2026 pricing breakdown, the API parity list, and the gotchas that make Scaleway a no-go for some workloads (no Glacier tier, fewer storage classes, no Lambda@Edge equivalent).

Updated
7 min
Scaleway vs AWS S3: EU Pricing & Data Residency 2026

If you run a SaaS app, a media pipeline, or a backup job for EU customers, the question of where your bytes live is not academic. AWS S3 is the default — but its EU regions are opt-in (eu-west-1, eu-central-1, eu-west-3) and its pricing is calibrated for the US market. Scaleway Object Storage, hosted entirely in Paris and Amsterdam, offers the same S3 API at roughly half the price. Here is the 2026 breakdown.

Pricing comparison (2026, EU)#

Scaleway Object StorageAWS S3 (eu-west-1)
Standard storage€0.0105/GB/month (€0.000015/GB/hour)$0.023/GB/month
Infrequent Access€0.0025/GB/month + retrieval fee$0.0125/GB/month + retrieval fee
Egress to internet€0.008/GB outside EU; free intra-EU$0.09/GB (first 10 TB)
PUT/POST requests€0.005 per 1,000$0.005 per 1,000
GET requests€0.0004 per 10,000$0.0004 per 10,000

At 1 EUR ≈ 1.08 USD (2026-08), Scaleway Standard is roughly 55-60% cheaper than S3 Standard in eu-west-1. Egress is the bigger win: serving 500 GB/month to EU customers costs about €0 on Scaleway (intra-EU free) vs $45 on AWS S3 — a 10x difference.

The complete price list is at scaleway.com/en/object-storage/pricing and aws.amazon.com/s3/pricing. Prices change; verify before quoting to customers.

S3 API parity#

Scaleway implements the S3 API for the operations you actually use. The official SDKs and tools work unchanged:

  • Buckets — create, list, delete, versioning, lifecycle.
  • Objects — PUT, GET, DELETE, HEAD, multipart upload, copy.
  • Presigned URLs — both GET and PUT, valid for up to 7 days (Scaleway) vs 7 days (S3).
  • Server-side encryption — AES-256 with Scaleway-managed keys (SSE-S3 equivalent).
  • Cross-region replication — yes, with caveats (asynchronous, eventual consistency).
  • Object Lock — yes, WORM-compliant retention for compliance use cases.
  • Multipart upload — yes, same chunked upload model.
  • IAM policies — yes, Scaleway IAM supports S3-style resource policies.

What is not available:

  • Glacier / Deep Archive — no cold-tier storage at S3 prices. For archival under €0.001/GB/month, AWS Glacier Deep Archive remains the cheapest.
  • Intelligent-Tiering — automatic tier transitions; on Scaleway you set lifecycle rules manually.
  • Object Lambda — on-the-fly transformation (resize, redact). Run a Cloudflare Worker or a small Scaleway Function instead.
  • AWS EventBridge / S3 Event Notifications → Lambda — Scaleway Object Storage emits webhooks; you handle them in a Scaleway Function or external HTTP endpoint.
  • Requester Pays — not supported; the bucket owner always pays egress.

For 80% of EU SaaS workloads, the parity list above covers everything you need.

Where the data lives#

Scaleway has two EU regions and no US region:

  • Paris (DC3) — default region for new buckets. Endpoints: s3.fr-par.scw.cloud, s3.nl-ams.scw.cloud.
  • Amsterdam (DC1) — West Europe, lower latency for NL/BE/UK. Endpoints: s3.nl-ams.scw.cloud.

Every byte of every object stays in the region you create the bucket in. There is no opt-in for US storage — you cannot accidentally create an us-east-1 bucket.

AWS S3 requires explicit region selection. The default console flow is us-east-1 (N. Virginia); you must remember to pick eu-west-1 (Ireland), eu-central-1 (Frankfurt), eu-west-3 (Paris), or eu-north-1 (Stockholm) for GDPR-compliant workloads. Data never leaves the chosen region, but the company is US-headquartered and subject to the CLOUD Act. For customers in regulated industries (health, finance, government), this distinction can matter.

Migration in 4 steps#

For most applications, the change is an endpoint URL swap.

1. Create a Scaleway bucket#

bash
# Install scaleway-cli
brew install scaleway-cli   # macOS
sudo apt install scaleway-cli  # Debian/Ubuntu
 
# Authenticate
scw init
 
# Create a bucket in Paris
scw object bucket create my-eu-bucket region=fr-par

2. Update your application endpoint#

ts
// Before (AWS S3 eu-west-1)
const s3 = new S3Client({
  region: 'eu-west-1',
  credentials: { accessKeyId, secretAccessKey },
});
 
// After (Scaleway Paris)
const s3 = new S3Client({
  region: 'fr-par',
  endpoint: 'https://s3.fr-par.scw.cloud',
  credentials: { accessKeyId, secretAccessKey },
  forcePathStyle: false, // Scaleway supports virtual-hosted-style URLs
});

The AWS SDK in Node.js, Python (boto3), Go, Java, Ruby, PHP all work unchanged. The only addition is the endpoint parameter.

3. Migrate bulk data with rclone#

bash
# Configure both remotes (interactive)
rclone config
# > n) New remote
# > name> aws-prod
# > type> s3
# > provider> AWS
# > access_key_id> AKIA...
# > secret_access_key> ...
# > region> eu-west-1
 
# > name> scw-prod
# > type> s3
# > provider> Scaleway
# > access_key_id> SCW...
# > secret_access_key> ...
# > endpoint> s3.fr-par.scw.cloud
 
# Copy with server-side transfer where possible
rclone copy aws-prod:my-bucket scw-prod:my-eu-bucket --transfers 32 --checkers 64

For very large buckets (10 TB+), run rclone copy from a Scaleway Virtual Instance in Paris — intra-provider transfer is unmetered and 10x faster than copying over the public internet.

4. Update DNS / CDN#

If you serve objects via a custom domain (cdn.example.com → bucket), update the CNAME / origin to the new Scaleway endpoint. Cloudflare and Bunny.net both support Scaleway as an origin.

Common mistakes#

  • Forgetting forcePathStyle — Scaleway supports both virtual-hosted-style (bucket.s3.fr-par.scw.cloud) and path-style (s3.fr-par.scw.cloud/bucket). Some AWS SDK configurations default to path-style and break on Scaleway. Set forcePathStyle: false explicitly.
  • Using eu-west-1 as region with Scaleway endpoint — the AWS SDK validates the region. Use fr-par or nl-ams, not eu-west-1.
  • Expecting Glacier tier — for cold storage under €0.001/GB/month, Scaleway has no equivalent. Use Hetzner Storage Box (€3.81/month for 1 TB) or OVHcloud Cloud Archive (€0.0025/GB/month) for archival, or keep AWS S3 Glacier for that one workload.
  • Cross-region replication surprises — Scaleway supports it but eventual consistency is higher than S3. Don't assume read-after-write semantics across regions.
  • CLOUD Act assumptions — Scaleway is a French company, headquartered in Paris, with primary infrastructure in France. CLOUD Act does not apply. For US-headquartered workloads, AWS S3 remains the answer.
  • Pricing calculation errors — Scaleway charges per hour of storage, not per month. Multiply by 730 (average hours/month) for a monthly estimate. Egress is per GB, not per request.
  • IAM policy mismatch — Scaleway IAM supports S3-style policies but the actions and condition keys differ. Test in a sandbox bucket before locking down prod.

When to choose Scaleway vs AWS S3#

Choose Scaleway Object Storage when:

  • Your customers are EU-based and you need GDPR-by-default (no opt-in region selection).
  • Your workload is read-heavy with significant egress to EU customers.
  • You want to consolidate infrastructure with a French/EU provider (Scaleway also offers VPS, Managed PostgreSQL, Kubernetes, Functions).
  • You do not need Glacier-tier archival or AWS-native integrations (Lambda, EventBridge).

Choose AWS S3 when:

  • You need cold archival at sub-€0.001/GB/month (Glacier Deep Archive).
  • You depend on AWS-native services (Lambda@Edge, Object Lambda, Athena, EventBridge → Lambda).
  • Your customers are global and you need multi-region replication across continents.
  • You are already heavily invested in AWS IAM, CloudFormation, or CDK and the migration cost outweighs the savings.

For most EU SaaS apps — content sites, B2B tools, internal dashboards, image hosting — Scaleway is the better default. The price difference alone (50-70% on storage, 10x on egress) often exceeds the development cost of the migration.

Official references: Scaleway Object Storage Documentation, Scaleway Object Storage Pricing, AWS S3 Pricing, GDPR.eu — official EU summary, rclone — Scaleway provider.

Frequently Asked Questions

|

Have more questions? Contact us

Written by

Mahdi Br
Mahdi Br

Full-Stack Dev — Next.js & Supabase

Solo developer building SaaS products with Next.js and Supabase. Writing about production patterns the official docs skip.

Remote

One email a month — no fluff

RLS gotchas, Next.js cache debugging, and the one Supabase setting that bit me last month.