# Tigris vs Google Cloud Storage

Both Tigris and Google Cloud Storage (GCS) are object storage services with strong consistency and multiple storage tiers. The main differences are in API compatibility, global distribution, and pricing.

## API compatibility[​](#api-compatibility "Direct link to API compatibility")

### Google Cloud Storage[​](#google-cloud-storage "Direct link to Google Cloud Storage")

GCS has its own native API and offers an S3-compatible XML API as an alternative. The S3 compatibility layer doesn't support all S3 features, so migrating from AWS or other S3-compatible services can require code changes.

### Tigris[​](#tigris "Direct link to Tigris")

Tigris is S3-native. Your existing boto3, @aws-sdk, AWS CLI, and Terraform configurations work without translation layers or compatibility caveats.

## Global distribution[​](#global-distribution "Direct link to Global distribution")

### Google Cloud Storage[​](#google-cloud-storage-1 "Direct link to Google Cloud Storage")

GCS makes you choose between single-region (cheapest), dual-region (two specific locations), or multi-region (continent-wide). Each tier has different pricing, availability guarantees, and replication semantics. Choosing wrong means paying more or re-creating buckets.

### Tigris[​](#tigris-1 "Direct link to Tigris")

Every Tigris bucket is globally distributed automatically. Data moves to where it's accessed through Dynamic Data Placement — no region selection, no replication configuration, no trade-offs to evaluate.

## Pricing[​](#pricing "Direct link to Pricing")

### Google Cloud Storage[​](#google-cloud-storage-2 "Direct link to Google Cloud Storage")

GCS charges $0.12/GB for internet egress (standard pricing). Even inter-region transfer within Google Cloud costs money. Dual-region and multi-region storage classes cost more per GB stored than single-region.

### Tigris[​](#tigris-2 "Direct link to Tigris")

Tigris has no egress fees regardless of where data is read from. There are no inter-region transfer charges because there are no regions to transfer between.

## Snapshots and forks[​](#snapshots-and-forks "Direct link to Snapshots and forks")

### Google Cloud Storage[​](#google-cloud-storage-3 "Direct link to Google Cloud Storage")

GCS has Object Versioning for tracking changes to individual objects, but no snapshot or fork concept for entire buckets.

### Tigris[​](#tigris-3 "Direct link to Tigris")

Tigris lets you snapshot a bucket's state and create independent copy-on-write forks — instant, no data copying. Useful for ML experiments, staging environments, and safe rollbacks.

## Where Google Cloud Storage fits better[​](#where-google-cloud-storage-fits-better "Direct link to Where Google Cloud Storage fits better")

* **Google Cloud ecosystem** — tight integration with BigQuery, Dataflow, Vertex AI, Cloud CDN, and other GCP services
* **Dual-region and turbo replication** — if you need data in exactly two specific Google regions with RPO guarantees
* **Autoclass** — automatic tier management that moves objects between storage classes based on access patterns
* **Compliance** — broader set of compliance certifications for regulated workloads within the Google Cloud ecosystem

## Summary[​](#summary "Direct link to Summary")

|                          | **Tigris**                                       | **Google Cloud Storage**                                     |
| ------------------------ | ------------------------------------------------ | ------------------------------------------------------------ |
| **Global distribution**  | Automatic — data moves to where it's accessed    | Manual — choose region, dual-region, or multi-region         |
| **Egress fees**          | Free                                             | $0.12/GB (varies by destination)                             |
| **Region selection**     | Not required — single global endpoint            | Required — region, dual-region, or multi-region per bucket   |
| **S3 API compatibility** | Full — standard S3 SDKs work                     | Partial — S3-compatible XML API, but native API is different |
| **Consistency**          | Strong read-after-write                          | Strong read-after-write                                      |
| **Storage tiers**        | Standard, IA, Archive, Archive Instant Retrieval | Standard, Nearline, Coldline, Archive                        |
| **Snapshots & forks**    | Native — zero-copy clones                        | No equivalent                                                |
| **Custom domains**       | Supported                                        | Supported (via load balancer or CNAME)                       |
| **IAM**                  | IAM policies, bucket policies, ACLs              | IAM policies, ACLs, signed URLs                              |

## Migration[​](#migration "Direct link to Migration")

Moving from GCS to Tigris is straightforward. Use [rclone](/docs/quickstarts/rclone/.md) to sync data, or the [data migration guide](/docs/migration/gcs/.md) for a zero-downtime cutover. Since Tigris uses the S3 API, any code using the GCS S3-compatible XML API already works — just change the endpoint and credentials.
