# Create Remote Read Replicas

> For the complete documentation index, see [llms.txt](https://docs.redpanda.com/llms.txt). Component-specific: [cloud-data-platform-full.txt](https://docs.redpanda.com/cloud-data-platform-full.txt)

---
title: Create Remote Read Replicas
latest-operator-version: v26.1.4
latest-console-tag: v3.7.3
latest-connect-version: 4.93.0
latest-redpanda-tag: v26.1.9
docname: cluster-types/byoc/remote-read-replicas
page-component-name: cloud-data-platform
page-version: master
page-component-version: master
page-component-title: Cloud
page-relative-src-path: cluster-types/byoc/remote-read-replicas.adoc
page-edit-url: https://github.com/redpanda-data/cloud-docs/edit/main/modules/get-started/pages/cluster-types/byoc/remote-read-replicas.adoc
description: Learn how to create a remote read replica topic with BYOC, which is a read-only topic that mirrors a topic on a different cluster.
page-git-created-date: "2024-08-01"
page-git-modified-date: "2026-05-26"
---

<!-- Source: https://docs.redpanda.com/cloud-data-platform/get-started/cluster-types/byoc/remote-read-replicas.md -->

A remote read replica topic is a read-only topic that mirrors a topic on a different cluster. You can create a separate remote cluster just for consumers of this topic and populate its topics from object storage. A read-only topic on a remote cluster can serve any consumer, without increasing the load on the source cluster. Because these read-only topics access data directly from object storage, there’s no impact to the performance of the cluster. Remote read replica topics do not store any data. When a cluster running a remote read replica is terminated, the topic data only exists on the origin cluster.

Redpanda Cloud supports remote read replica topics in BYOC clusters on AWS or GCP. These clusters can be ephemeral; that is, created temporarily to handle specific or transient workloads, but they don’t have to be. The ability to make them ephemeral provides flexibility and cost efficiency: you can scale resources up or down as needed and pay only for what you use.

## [](#prerequisites)Prerequisites

To use remote read replicas, you need:

-   A BYOC reader cluster in Ready state. This separate reader cluster must exist in the same Redpanda organization as the source cluster.

    -   AWS: The reader cluster can be in the same or a different region as the origin cluster’s S3 bucket. For cross-region remote read replica topics, see [Create a cross-region remote read replica topic on AWS](#create-cross-region-rrr-topic).

    -   GCP: The reader cluster can be in the same or a different region as the source cluster. The reader cluster must be in the same project as the source cluster.

    -   Azure: Remote read replicas are not supported.



### [](#byovpc-grant-storage-permissions)BYOVPC: Grant storage permissions

> 📝 **NOTE**
>
> This prerequisite only applies to BYOVPC deployments. Skip this step if you’re enabling remote read replicas on standard BYOC clusters.

#### GCP

To grant additional permissions to the cloud storage manager of the reader cluster, run:

```bash
gcloud storage buckets add-iam-policy-binding \
    gs://<source-cluster-tiered-storage-bucket-name> \
    --member="serviceAccount:<reader cluster redpanda_cluster_service_account email>" \
    --role="roles/storage.objectViewer"
```

#### AWS

To grant additional permissions to the cloud storage manager of the reader cluster, set the `source_cluster_bucket_names` and `reader_cluster_id` variables in [cloud-examples](https://github.com/redpanda-data/cloud-examples/blob/main/customer-managed/aws/terraform/variables.tf). This should be done in the Terraform of the reader cluster.

## [](#configure-remote-read-replica)Configure remote read replica

Add or remove reader clusters to a source cluster in Redpanda Cloud with the [Cloud Control Plane API](https://docs.redpanda.com/cloud-data-platform/manage/api/controlplane/). For information on accessing the Cloud API, see the [authentication guide](https://docs.redpanda.com/api/doc/cloud-controlplane/authentication).

1.  To update your source cluster to add one or more reader cluster IDs, make a [`PATCH /v1/clusters/{cluster.id}`](https://docs.redpanda.com/api/doc/cloud-controlplane/operation/operation-clusterservice_updatecluster) request. The full list of clusters is expected on every call. If an ID is removed from the list, it is removed as a reader cluster.

    ```bash
    export SOURCE_CLUSTER_ID=.......
    export READER_CLUSTER_ID=.......

    curl -X PATCH $API_HOST/v1/clusters/$SOURCE_CLUSTER_ID \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $API_TOKEN" \
    -d @- << EOF
    {
      "read_replica_cluster_ids": ["$READER_CLUSTER_ID"]
    }
    EOF
    ```

2.  Optional: To see the list of reader clusters on a given source cluster, make a [`GET /v1/clusters/{id}`](https://docs.redpanda.com/api/doc/cloud-controlplane/operation/operation-clusterservice_getcluster) request:

    ```bash
    export SOURCE_CLUSTER_ID=.......

    curl -X GET $API_HOST/v1/clusters/$SOURCE_CLUSTER_ID \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $API_TOKEN"
    ```


> 📝 **NOTE**
>
> A source cluster cannot be deleted if it has remote read replica topics. When you delete a reader cluster, that cluster’s ID is removed from any existing source cluster `read_replica_cluster_ids` lists.

## [](#create-remote-read-replica-topic)Create remote read replica topic

To create a remote read replica topic, run:

```bash
rpk topic create <topic_name> -c redpanda.remote.readreplica=<source-cluster-bucket-name> --tls-enabled
```

-   For `<topic_name>`, use the same name as the original topic.

-   For `<source-cluster-bucket-name>`, use the bucket specified in the `cloud_storage_bucket` properties for the origin cluster.


For standard BYOC clusters, the source cluster bucket name follows the pattern: `redpanda-cloud-storage-${SOURCE_CLUSTER_ID}`

### [](#create-cross-region-rrr-topic)Create a cross-region remote read replica topic on AWS

Use this configuration only when the remote cluster is in a **different AWS region** than the origin cluster’s S3 bucket. For same-region AWS or GCP deployments, use the standard [topic creation command](#create-remote-read-replica-topic).

#### [](#create-the-topic)Create the topic

To create a cross-region remote read replica topic, append `region` and `endpoint` query-string parameters to the bucket name.

In the following example, replace the placeholders:

-   `<topic_name>`: The name of the topic in the cluster hosting the remote read replica.

-   `<bucket_name>`: The S3 bucket configured on the origin cluster (`cloud_storage_bucket`).

-   `<origin_bucket_region>`: The AWS region of the origin cluster’s S3 bucket (not the remote cluster’s region).


```bash
rpk topic create <topic_name> \
  -c redpanda.remote.readreplica=<bucket_name>?region=<origin_bucket_region>&endpoint=s3.<origin_bucket_region>.amazonaws.com
  --tls-enabled
```

For example, if the origin cluster stores data in a bucket called `my-bucket` in `us-east-1`:

```bash
rpk topic create my-topic \
  -c redpanda.remote.readreplica=my-bucket?region=us-east-1&endpoint=s3.us-east-1.amazonaws.com
  --tls-enabled
```

> 📝 **NOTE**
>
> The `endpoint` value must not include the bucket name. When using `virtual_host` URL style, Redpanda automatically prepends the bucket name to the endpoint. When using `path` URL style, Redpanda appends the bucket name as a path segment.

#### [](#limits)Limits

Each unique combination of region and endpoint creates a separate object storage target on the remote cluster. A cluster supports a maximum of 10 targets.

How targets are counted depends on `cloud_storage_url_style`:

-   `virtual_host`: Each unique combination of bucket, region, and endpoint counts as one target. You can create up to 10 distinct cross-region remote read replica topics for each cluster.

-   `path`: Each unique combination of region and endpoint counts as one target (the bucket name is not part of the key). You can create cross-region remote read replica topics for multiple buckets using the same region/endpoint combination, with a maximum of 10 distinct region/endpoint combinations for each cluster.


## [](#optional-tune-for-live-topics)Optional: Tune for live topics

For remote read replicas reading from a live topic (that is, a topic that’s being actively written to by a source cluster), it may be advantageous to control how often segments are flushed to object storage. By default, this is set to 60 minutes. To tune `cloud_storage_segment_max_upload_interval_sec` on the source cluster, contact [Redpanda support](https://support.redpanda.com/hc/en-us/requests/new). (For cold topics, where segments are closed and older than 60 minutes, this configuration is unnecessary: the data is already uploaded to object storage.)