Skip to main content

Tigris vs AWS S3

Both Tigris and Amazon S3 are S3-compatible object storage services. They share core capabilities: strong read-after-write consistency, IAM policies, bucket policies, ACLs, presigned URLs, multipart uploads, and lifecycle rules. Your existing AWS SDKs, CLI commands, and Terraform configs work with both.

The key differences come down to how each handles global distribution, pricing, and operational complexity.

Global distribution

AWS S3

Every S3 bucket lives in a single AWS region. To serve users globally, you set up Cross-Region Replication (CRR) rules for each bucket, configure Multi-Region Access Points, and manage replication lag. Each replicated copy incurs storage and transfer costs.

Tigris

Every Tigris bucket is global from the start. Data automatically moves to the regions where it's accessed through Dynamic Data Placement — no replication rules, no access points, no region selection when creating a bucket.

Pricing

AWS S3

S3 charges for storage, requests, and data transfer. Egress costs $0.09/GB in standard regions and increases for cross-region traffic. For read-heavy workloads — serving model weights, distributing assets, streaming training data — egress adds up quickly.

Tigris

Tigris charges for storage and requests. Egress is free, always. There are no data transfer fees regardless of where data is read from.

Storage tiers

AWS S3

S3 offers six storage classes: Standard, Intelligent-Tiering, Standard-IA, One Zone-IA, Glacier, and Glacier Deep Archive. Each has different pricing, retrieval times, and minimum storage durations. Intelligent-Tiering adds automatic movement between tiers for a per-object monitoring fee.

Tigris

Tigris offers four tiers: Standard, Infrequent Access, Archive, and Archive with Instant Retrieval. Fewer tiers means fewer decisions, simpler lifecycle rules, and no per-object monitoring fees.

Multi-tenancy

AWS S3

Building multi-tenant storage means assembling bucket policies, IAM roles, and S3 Access Points. Isolating tenants requires careful policy management, and per-tenant usage tracking is your responsibility.

Tigris

Tigris offers a Partner Integration API that provisions isolated tenant organizations in a single API call — each with their own buckets, credentials, and usage tracking built in.

Snapshots and forks

AWS S3

S3 has object versioning, but no native snapshot or fork primitive. Creating a point-in-time copy means copying every object to a new bucket.

Tigris

Tigris lets you snapshot a bucket's state and fork it into independent copy-on-write clones — instant, no data copying. Useful for ML experiment branching, safe migrations, and dev/staging environments.

Where AWS S3 fits better

  • Deep AWS ecosystem integration — Lambda triggers, Athena queries, EMR, CloudFront, and other services that expect native S3 buckets
  • Compliance certifications — AWS has a broader set of certifications (FedRAMP, HIPAA BAA) for regulated industries
  • Glacier Deep Archive — for extremely cold data at very low per-GB rates
  • S3 Select / S3 Object Lambda — server-side processing features that Tigris doesn't offer

Summary

TigrisAWS S3
Global distributionAutomatic — data moves to where it's accessedManual — requires Cross-Region Replication per bucket
Egress feesFree$0.09/GB (varies by region)
Region selectionNot required — single global endpointRequired — you choose a region per bucket
Multi-regionBuilt-in, every bucket is globalRequires Multi-Region Access Points + CRR
S3 API compatibilityFull — same SDKs, CLI, toolsNative
ConsistencyStrong read-after-writeStrong read-after-write
Storage tiersStandard, IA, Archive, Archive Instant RetrievalStandard, IA, One Zone-IA, Glacier, Deep Archive
Snapshots & forksNative — zero-copy clonesNo equivalent (versioning + copy)
Custom domainsSupportedSupported (via CloudFront or S3 website hosting)
IAMIAM policies, bucket policies, ACLsIAM policies, bucket policies, ACLs

Migration

Switching from AWS S3 to Tigris is straightforward — change your endpoint URL and credentials. Your existing code works as-is. For existing data, use the data migration guide to move objects without downtime.