Skip to content

feat: Add documentation for S3-compatible API for network volumes #267

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 61 commits into from
Jun 11, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
a23e23d
Rewrite pods overview
muhsinking May 21, 2025
f078060
Rewrite storage types
muhsinking May 22, 2025
f17efc5
Merge branch 'main' into storage-docs
muhsinking May 22, 2025
822b725
Update types
muhsinking May 22, 2025
78b54eb
Delete sync volumes page
muhsinking May 22, 2025
be948a2
Add note about attaching volume
muhsinking May 22, 2025
b385710
Minor change
muhsinking May 23, 2025
7db6c62
Rewrite choose-a-pod
muhsinking May 23, 2025
14d4c7c
Update pods overview
muhsinking May 23, 2025
b38e970
Update rp-styleguide.mdc
muhsinking May 23, 2025
cb3bb36
Update cursor styleguide
muhsinking May 23, 2025
7ff9bca
Update rules
muhsinking May 23, 2025
899722b
Update connect-to-pod (first half)
muhsinking May 23, 2025
0a0dd1b
Simplify connect-to-runpod, improve manage-pods, finish connect-to-a-pod
muhsinking May 27, 2025
3ad4a92
Rewrite network volumes
muhsinking May 27, 2025
ae0da6d
Rewrite network volumes page
muhsinking May 27, 2025
b2e18fa
Update architecture section
muhsinking May 28, 2025
7041f09
Add docs for serverless storage
muhsinking May 28, 2025
9543574
Rename section
muhsinking May 28, 2025
99b7902
Trim serverless storage overview
muhsinking May 28, 2025
d66d4ab
Trim serverless storage overview (again)
muhsinking May 28, 2025
8d0c282
Undo openapi change
muhsinking May 28, 2025
ae6757e
Minor update
muhsinking May 28, 2025
11cc168
Merge branch 'main' into storage-docs
muhsinking May 28, 2025
0f114ea
Add note about allowing long cold starts
muhsinking May 29, 2025
ee6cbd0
Update rp-styleguide.mdc
muhsinking May 29, 2025
23fa2d6
Update vram guidance
muhsinking May 29, 2025
105429e
Update network volume speeds
muhsinking May 29, 2025
e27cc1a
Add S3 API how-to
muhsinking May 29, 2025
5e54313
Update title
muhsinking May 29, 2025
53caf94
Update wording
muhsinking May 29, 2025
08bf5a3
Update
muhsinking May 29, 2025
5178bd0
Update examples
muhsinking May 29, 2025
acbfd6e
Update CLI examples
muhsinking May 29, 2025
4dd7ae3
Update links, region -> Region
muhsinking May 29, 2025
bfd23d4
Update after review
muhsinking May 29, 2025
6864fd0
add limitations section
muhsinking May 29, 2025
fb51713
Add limitations
muhsinking May 29, 2025
9d122fc
update section title
muhsinking May 29, 2025
c783282
Update
muhsinking May 29, 2025
fc6cc4a
Update limitations
muhsinking May 29, 2025
7fea5a6
Add note to network-volumes
muhsinking May 29, 2025
12dbe3d
update title
muhsinking May 29, 2025
7c9c31a
Add code comments
muhsinking May 30, 2025
b02de6e
Update boto3 intro
muhsinking May 30, 2025
e4feacc
Update limitations & styleguide
muhsinking May 30, 2025
b6b7a1b
Merge branch 'main' into s3-api-docs
muhsinking May 30, 2025
079040a
Add datacenter availability
muhsinking Jun 2, 2025
a8795a7
Update wording
muhsinking Jun 2, 2025
2035cf8
Update wording
muhsinking Jun 2, 2025
0297990
Update wording
muhsinking Jun 2, 2025
51904f2
Update wording
muhsinking Jun 2, 2025
ba3185d
Change section header
muhsinking Jun 3, 2025
4d14fa8
Update wording
muhsinking Jun 3, 2025
788c68b
Add network volume billing info
muhsinking Jun 5, 2025
77051ae
Merge branch 'main' into s3-api-docs
muhsinking Jun 5, 2025
58b3b51
update
muhsinking Jun 5, 2025
fb13476
shared key -> s3 API key
muhsinking Jun 5, 2025
9844346
Merge branch 'main' into s3-api-docs
muhsinking Jun 5, 2025
83efd4b
Merge branch 'main' into s3-api-docs
muhsinking Jun 11, 2025
de9b347
Update title
muhsinking Jun 11, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .cursor/rules/rp-styleguide.mdc
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ alwaysApply: true
Always use sentence case for headings and titles.
These are proper nouns: Pods, Serverless, Hub, Instant Clusters, Secure Cloud, Community Cloud, Tetra.
These are generic terms: endpoint, worker, cluster, template, handler, fine-tune, network volume.
Prefer using paragraphs to bullet points unless directly asked.
When using bullet points, end each line with a period.
Prefer using paragraphs to bullet points unless specifically requested.
When using bullet points, use hyphens instead of asterisks, and end each line with a period.
3 changes: 2 additions & 1 deletion docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,8 @@
"group": "Storage",
"pages": [
"serverless/storage/overview",
"serverless/storage/network-volumes"
"serverless/storage/network-volumes",
"serverless/storage/s3-api"
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion hub/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ description: "Discover, deploy, and share preconfigured AI repos."

<Note>

**The RunPod Hub is currently in beta**. We're actively developing features and gathering user feedback to improve the experience. Please [join our discord](https://discord.gg/runpod) if you'd like to provide feedback.
**The RunPod Hub is currently in beta**. We're actively developing features and gathering user feedback to improve the experience. If you'd like to provide feedback, please [join our Discord](https://discord.gg/runpod).

</Note>

Expand Down
2 changes: 2 additions & 0 deletions serverless/pricing.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ Your total Serverless costs include both compute time (GPU usage) and temporary

If you have many workers continuously running with high storage costs, you can utilize [network volumes](/serverless/storage/network-volumes) to reduce expenses. Network volumes allow you to share data efficiently across multiple workers, reduce per-worker storage requirements by centralizing common files, and maintain persistent storage separate from worker lifecycles.

Network volumes are billed hourly at a rate of \$0.07 per GB per month for the first 1TB, and \$0.05 per GB per month for additional storage beyond that.

### Compute cost breakdown

Serverless workers incur charges during these periods:
Expand Down
18 changes: 12 additions & 6 deletions serverless/storage/network-volumes.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,12 @@ description: "Persistent, portable storage for Serverless workers."

Network volumes offer persistent storage that exists independently of the lifecycle of a [Serverless worker](/serverless/workers/overview). This means your data will be retained even if a worker is stopped or your endpoint is deleted.

Network volumes can be attached to multiple Serverless endpoints, making them ideal for sharing data, or maintaining datasets between Serverless workers.
Network volumes can be attached to multiple Serverless endpoints, making them ideal for sharing data, or maintaining datasets between workers.

When attached to a Serverless endpoint, a network volume is mounted at `/runpod-volume` within the worker environment.

Network volumes are billed hourly at a rate of \$0.07 per GB per month for the first 1TB, and \$0.05 per GB per month for additional storage beyond that.

<Warning>

If your account lacks sufficient funds to cover storage costs, your network volume may be terminated. Once terminated, the disk space is immediately freed for other users, and RunPod cannot recover lost data. Ensure your account remains funded to prevent data loss.
Expand All @@ -18,11 +20,11 @@ If your account lacks sufficient funds to cover storage costs, your network volu

## When to use a network volume

Consider using a network volume when your Serverless endpoints needs:
Consider using a network volume when your endpoints needs:

* **Persistent data that outlives individual workers:** Keep your data safe and accessible even after a worker is stopped or an endpoint is scaled to zero.
* **Shareable storage:** Use the same data across different workers of the same endpoint or even different endpoints. While a network volume can be *attached* to multiple Serverless endpoint configurations, ensure your application logic handles concurrent access appropriately if workers from different endpoints write to the volume to prevent data corruption.
* **Efficient data management:** Store frequently used models or large datasets to avoid re-downloading them for each new Serverless worker, saving time, bandwidth, and reducing cold start times.
* **Efficient data management:** Store frequently used models or large datasets to avoid re-downloading them for each new worker, saving time, bandwidth, and reducing cold start times.
* **Stateful applications:** Maintain state across multiple invocations of a Serverless function, enabling more complex, long-running tasks.

## Create a network volume
Expand All @@ -32,7 +34,7 @@ To create a new network volume:
1. Navigate to the [Storage page](https://www.runpod.io/console/user/storage) in the RunPod console.
2. Select **New Network Volume**.
3. **Configure your volume:**
* Select a datacenter for your volume. Datacenter location does not affect pricing, but the datacenter location will determine which Serverless endpoints your network volume can be used with. Your Serverless endpoint must be in the same datacenter as the network volume.
* Select a datacenter for your volume. Datacenter location does not affect pricing, but the datacenter location will determine which endpoints your network volume can be paired with. Your Serverless endpoint must be in the same datacenter as the network volume.
* Provide a descriptive name for your volume (e.g., "serverless-shared-models" or "project-gamma-datasets").
* Specify the desired size for the volume in gigabytes (GB).

Expand All @@ -50,7 +52,7 @@ You can edit and delete your network volumes using the [Storage page](https://ww

To enable workers on an endpoint to use a network volume:

1. Navigate to the [Serverless Endpoints page](https://www.runpod.io/console/serverless/user/endpoints) in the RunPod console.
1. Navigate to the [Serverless page](https://www.runpod.io/console/serverless/user/endpoints) in the RunPod console.
2. Either create a **New Endpoint** or select an existing endpoint and choose **Edit Endpoint** from the options menu (three dots).
3. In the endpoint configuration, expand the **Advanced** section.
4. From the **Network Volume** dropdown, select the network volume you want to attach to the endpoint.
Expand All @@ -64,6 +66,10 @@ Multiple workers cannot write to a single network volume simultaneously.

</Warning>

## Manage files

To manage files in your network volume (for example, to upload large models used by your workers), use the [RunPod S3-compatible API](/serverless/storage/s3-api).

## Architecture details

Network volumes are backed by high-performance storage servers co-located with RunPod GPU servers. These are connected via high-speed networks and use NVMe SSDs for optimal performance, but data transfer speeds can vary widely based on location and network conditions (200-400MB/s, up to 10GB/s).
Expand All @@ -74,4 +80,4 @@ Using network volumes with Serverless provides significant flexibility and can l

* **Reduced cold starts:** By storing large models or datasets on a network volume, workers can access them quickly without needing to download them on each cold start.
* **Cost efficiency:** Network volume storage space costs less than frequently re-downloading large files or relying solely on container storage for data that needs to persist.
* **Simplified data management:** Centralize your datasets and models for easier updates and management across multiple Serverless workers and endpoints.
* **Simplified data management:** Centralize your datasets and models for easier updates and management across multiple workers and endpoints.
Loading