Exoscale’s Simple Object Storage (SOS) has long provided robust, S3-compatible object storage with features like versioning, server-side encryption (SSE-C), and object locking. Now, we’re excited to introduce Bucket Replication, a powerful new feature designed to enhance data resilience, accessibility, and compliance.

Bucket Replication enables automatic, asynchronous copying of objects from one SOS bucket to another, either within the same zone or across different zones. This feature ensures that data is consistently duplicated, providing an additional layer of redundancy and facilitating various use cases.

Key Use Cases

  • Disaster Recovery (DR) & High Availability By replicating data to another bucket, you ensure business continuity. If one zone experiences an outage, your secondary bucket remains accessible.

  • Faster Access If your users are spread across different zones, replicating data closer to them reduces latency and improves access speeds.

  • Compliance & Data Residency Requirements Certain industries mandate that data be stored in specific geographic locations. Bucket Replication helps meet these regulations effortlessly.

How Bucket Replication Works

  1. First, we create Source and Destination Buckets. We set up two buckets in different zones (e.g., Geneva and Zurich) based on your disaster recovery or compliance needs. The source bucket acts as your primary data store.

  2. Next, we enable Object Versioning by activating versioning on both buckets to ensure proper tracking and replication of object changes.

  3. Then, we configure Replication Rules by defining rules using object prefixes to control what gets replicated, allowing fine-grained, targeted synchronization.

  4. We also need to set IAM Permissions, granting the necessary permissions to authorize replication between buckets securely within your Exoscale organization.

Bucket Replication Diagram

How Exoscale Bucket Replication Ensures Data Consistency

Exoscale Bucket Replication ensures data consistency through an automated, asynchronous process, reliably propagating object changes (uploads, overwrites, deletions) to the destination bucket.

Both source and target buckets within the same Exoscale organization must have versioning enabled, and if Object Locking is used, it must be configured identically.

The system is version-aware, replicating each object version, including delete markers. Priority settings allow fine-tuning replication rules to resolve conflicts, ensuring fast writes, resilience to latency, and consistent replication for disaster recovery and compliance.

Example Scenario: Cross-Zones Replication for Disaster Recovery

The following schema illustrates a seamless recovery strategy with minimal manual effort. It offers policy-based controls to meet business and compliance requirements, and significantly reduces downtime and data loss risks. It’s important to take into consideration that Bucket replication operates within the same customer organization.

    +--------------------+        Replication         +---------------------+
    |  Source Bucket     |  ----------------------->  |  Destination Bucket |
    |  Zone A: Geneva    |                            |  Zone B: Zurich     |
    +--------------------+                            +---------------------+
           |                                               |
           | 1. Versioning Enabled                         | 1. Versioning Enabled
           | 2. Object Locking (if used)                   | 2. Object Locking (must match)
           |                                               |
           |--> Asynchronous, Eventual Consistency --------|

                          [Custom Rules & Priorities]
                - Prefix filters
                - Priority values (to resolve conflicts)
                - IAM permissions applied

                          [Use Case: Disaster Recovery]
  • In the event of Zone A outage (Geneva), applications switch to reading/writing from Zone B bucket (Zurich). If bidirectional replication is set up, the destination can take over as the active zone and serve as the recovery point. You can later reverse the replication direction if needed.

  • In the event of a Human Error (accidental deletion, corruption), versioning and object locking help roll back to earlier versions or preserve undeletable states.

Best Practices

We recommend using client-side encryption for sensitive data to maintain customer-controlled security. 💡 Pre-encrypted objects (i.e., encrypted before upload) will be treated as raw data by SOS and will be replicated as-is, offering an alternative for customers needing both encryption and replication.

Getting Started with Exoscale Bucket Replication

Exoscale’s Bucket Replication boosts operational efficiency by automating data redundancy and eliminating the need for manual backups. Whether you’re preparing for disaster recovery, enhancing global access, or ensuring compliance, this feature offers a reliable solution to keep your data secure and available. With easy setup via the Exoscale Portal, CLI, or S3 API, you can quickly configure replication to suit your needs.

📖 Learn more: Exoscale Bucket Replication Documentation