{
  "schema_version": 2,
  "id": "operate/rc/rdi/networking",
  "title": "Networking",
  "url": "https://redis.io/docs/latest/operate/rc/rdi/networking/",
  "summary": "Network reference for connecting a Data Integration pipeline to your source database.",
  "tags": [
    "docs",
    "operate",
    "rc"
  ],
  "last_updated": "2026-10-12T14:51:21+03:00",
  "children": [
    {
      "id": "operate/rc/rdi/networking/aws-privatelink",
      "summary": "How traffic flows over AWS PrivateLink between a Data Integration pipeline and your source database, and how to keep the connection available during failover.",
      "title": "AWS PrivateLink reference",
      "url": "https://redis.io/docs/latest/operate/rc/rdi/networking/aws-privatelink/"
    }
  ],
  "page_type": "content",
  "content_hash": "54737521e45887dc646b7154745bf3d6c5a96b20ecc16db6f70ad7f5413d578c",
  "sections": [
    {
      "id": "overview",
      "title": "Overview",
      "role": "overview",
      "text": "Configure connectivity for each source in your Data Integration pipeline. Sources can share an Amazon Web Services (AWS) PrivateLink endpoint service or use separate services. They can also use public endpoints where the [source requirements](https://redis.io/docs/latest/operate/rc/rdi#prerequisites) permit them."
    },
    {
      "id": "workspaces-sources-and-targets",
      "title": "Workspaces, sources, and targets",
      "role": "content",
      "text": "Create one Data Integration workspace for each Pro subscription that needs a pipeline. All sources in a pipeline write to one target Redis database in that subscription. To write to targets in different subscriptions, set up a workspace and pipeline in each subscription.\n\nRedis Cloud manages the workspace and its virtual private cloud (VPC) endpoints. A public source uses an Internet Protocol (IP) address or hostname. For a customer-managed source, you manage the endpoint service, Network Load Balancer (NLB), and database access rules. The endpoint service must be in the same AWS region as the workspace.\n\nThe example shows two subscriptions connecting to the same customer endpoint service. Subscription A also connects to a separate service and a public hostname. All resources in this example use the same AWS region.\n\n<div style=\"overflow-x: auto;\" role=\"region\" aria-label=\"PrivateLink topology diagram\" tabindex=\"0\">\n\n[code example]\n\n</div>\n\nSource boxes are configured sources in the pipeline, not the source databases. Solid arrows show initiated network connections. Dotted arrows show data passed from each source to its shared processor. The processor writes the data to the pipeline's Redis target. Source 4 connects directly to a public IP address or hostname, without PrivateLink. The listener ports are examples. A listener can forward to a different database port."
    },
    {
      "id": "choose-your-connectivity-setup",
      "title": "Choose your connectivity setup",
      "role": "content",
      "text": "| Your setup | What you configure |\n|:--|:--|\n| Several databases behind one NLB | Use a separate listener port and target group for each database. Enter the same endpoint service name for each source, with its matching listener port. Redis Cloud reuses the workspace's endpoint for that service. |\n| Databases in separate networks | Use separate endpoint services when one NLB cannot privately reach all databases. Configure the matching service for each source. Your source networks do not need to connect to each other. |\n| The same source feeds several subscriptions | You can reuse your endpoint service and NLB. Each workspace needs its own VPC endpoint connection. Allow the principal shown for each workspace and accept each new connection. Configure and test the source in each pipeline. |\n| Private and public sources in one pipeline | Choose connectivity separately for each source. For public sources, allow the outbound IP addresses shown in that workspace's console. |\n\nSharing an endpoint service does not share source configuration. Each source still needs its own connection details, credentials, and data selection. A second subscription does not reuse the first workspace's VPC endpoint."
    },
    {
      "id": "set-up-customer-managed-privatelink",
      "title": "Set up customer-managed PrivateLink",
      "role": "content",
      "text": "1. [Create the NLB and endpoint service](https://redis.io/docs/latest/operate/rc/rdi/setup#set-up-connectivity). For shared connectivity, add a listener and target group for each database.\n1. Allow the Redis Cloud principal shown in the console for each workspace that will connect.\n1. [Configure each source](https://redis.io/docs/latest/operate/rc/rdi/define#source-connectivity) with its endpoint service name. Use the matching listener port in the source configuration.\n1. Accept each new endpoint connection in your AWS endpoint service. Sources sharing an existing workspace endpoint do not need a new acceptance.\n1. Share each source's [credentials](https://redis.io/docs/latest/operate/rc/rdi/setup#share-source-database-credentials).\n1. Select **Test source** for every source.\n\nYou manage routes from the NLB to its database targets, database access rules, and target updates after failover. See the [AWS PrivateLink reference](https://redis.io/docs/latest/operate/rc/rdi/networking/aws-privatelink) for address visibility, databases outside the VPC, and failover."
    },
    {
      "id": "managed-source-providers",
      "title": "Managed source providers",
      "role": "content",
      "text": "MongoDB Atlas manages its endpoint service. Follow the [Atlas setup steps](https://redis.io/docs/latest/operate/rc/rdi/setup#set-up-connectivity): give Redis Cloud the Atlas service ID, then register the returned VPC endpoint ID in Atlas. Repeat the handshake for each workspace connection.\n\nProvider requirements still apply. Snowflake is in Preview and must be hosted on AWS. Supabase AWS PrivateLink connectivity is not supported. Check the [source requirements](https://redis.io/docs/latest/operate/rc/rdi#prerequisites) and [source setup instructions](https://redis.io/docs/latest/operate/rc/rdi/setup) before choosing connectivity."
    }
  ],
  "examples": [
    {
      "id": "workspaces-sources-and-targets-ex0",
      "language": "mermaid {width=\"100%\"}",
      "code": "---\nconfig:\n  elk:\n    nodePlacementStrategy: NETWORK_SIMPLEX\n  flowchart:\n    minNodeWidth: 60\n    wrappingWidth: 90\n    padding: 6\n    diagramPadding: 4\n---\ngraph TB\n    subgraph redis[\"Redis Cloud — Redis manages\"]\n        subgraph subA[\"Pro subscription A\"]\n            subgraph workspaceA[\"Workspace A / pipeline\"]\n                sourceA1[\"Source 1\"]\n                sourceA2[\"Source 2\"]\n                sourceA3[\"Source 3\"]\n                sourceA4[\"Source 4<br/>Public connection\"]\n                processorA[\"Shared processor A\"]\n                endpointA[\"VPC endpoint A1\"]\n                endpointA2[\"VPC endpoint A2\"]\n                sourceA1 -->|Port 5432| endpointA\n                sourceA2 -->|Port 5433| endpointA\n                sourceA3 -->|Port 3306| endpointA2\n                sourceA1 -.-> processorA\n                sourceA2 -.-> processorA\n                sourceA3 -.-> processorA\n                sourceA4 -.-> processorA\n            end\n            targetA[\"Redis target A\"]\n            processorA -->|Write| targetA\n        end\n        subgraph subB[\"Pro subscription B\"]\n            subgraph workspaceB[\"Workspace B / pipeline\"]\n                sourceB1[\"Source 1\"]\n                sourceB2[\"Source 2\"]\n                processorB[\"Shared processor B\"]\n                endpointB[\"VPC endpoint B1\"]\n                sourceB1 -->|Port 5432| endpointB\n                sourceB2 -->|Port 5433| endpointB\n                sourceB1 -.-> processorB\n                sourceB2 -.-> processorB\n            end\n            targetB[\"Redis target B\"]\n            processorB -->|Write| targetB\n        end\n    end\n    subgraph customer[\"Your AWS networks — you manage\"]\n        shared[\"Endpoint service 1 / NLB<br/>Two listeners\"]\n        separate[\"Endpoint service 2 / NLB\"]\n        db1[\"Source database 1\"]\n        db2[\"Source database 2\"]\n        db3[\"Source database 3\"]\n        shared -->|Listener 5432| db1\n        shared -->|Listener 5433| db2\n        separate -->|Listener 3306| db3\n    end\n    publicDb[\"Source database 4<br/>Public IP or hostname\"]\n    endpointA -->|PrivateLink| shared\n    endpointB -->|PrivateLink| shared\n    endpointA2 -->|PrivateLink| separate\n    sourceA4 -->|Public connection| publicDb",
      "section_id": "workspaces-sources-and-targets"
    }
  ]
}
