返回 AWS Marketplace 產品列表
S4 — Squished S3
儲存與資料

S4 — Squished S3

透明的 GPU S3 壓縮閘道

減少 50–80% 的儲存位元組 替換的 AWS 服務: Amazon S3 儲存
在 AWS Marketplace 取得

何時收回成本?

範例:可壓縮 S3 儲存每月 $10,000

如果可壓縮 S3 儲存支出為每月 $10,000,降低 50–80% 約等於 $5,000–$8,000/月的可避免總使用費 — 不含 S4 軟體費、執行運算和工作負載差異。

用您的帳單估算

估算您的節省金額

輸入相關每月支出或使用量即可獲得粗略估算 — 無需上傳帳單。

完整帳單上傳與其他產品

自包含的 S4 透明 S3 壓縮閘道 EC2 AMI,預裝 NVIDIA nvCOMP GPU codecs。在 GPU instance (g4dn / g5 / g6) 上啟動,將 S3 clients 指向它,即可將可壓縮資料的 S3 storage bytes 減少 50–80% — 無需修改應用程式。

S4 是一個隨插即用、S3-compatible gateway,會在物件進入 bucket 的途中透明壓縮每個物件。該 AMI 捆綁 Amazon Linux 2023、NVIDIA driver、container runtime 和 S4 的 GPU build (nvCOMP Bitcomp / zstd / GDeflate),並預裝為 systemd service — 無需設定 CUDA、driver 或 nvCOMP。在 GPU instance 上,它會按物件將整數和欄位式資料 (Parquet, ORC, postings, time-series) 路由到 nvCOMP GPU codecs,將文字或日誌資料路由到 CPU zstd。已壓縮的輸入會原樣通過。

面臨挑戰

您的 S3 儲存帳單與您保留的位元組數呈線性成長,而其中大部分位元組(日誌、JSON、Parquet/ORC)都是高度可壓縮的。由於更改資料儲存方式不值得投入工程精力,您的應用程式會以未壓縮的方式寫入它們,因此您在為並不真正需要的位元組付費。這導致帳單每月攀升,而這些資料原本可以縮小 3× 甚至更多。

運作原理

  1. 1

    啟動 GPU AMI

    在您自己 VPC 內的 g4dn、g5、g6 或 g6e 執行個體上啟動 S4 AMI — 預裝了 NVIDIA 驅動程式和 nvCOMP,且 S4 作為 systemd 服務執行的 Amazon Linux 2023。

  2. 2

    重導向您的 S3 用戶端

    只需修改 boto3 / aws-cli / Spark / Trino / DuckDB 用戶端的端點 URL;SigV4 驗證、分段上傳和 Range GET 將保持原樣運作。

  3. 3

    傳輸時進行透明壓縮

    在每次 PUT 操作時,分發器會對 payload 進行採樣,並將其路由至最佳編解碼器 — 文字/日誌採用 CPU zstd,欄位式整數採用 GPU nvCOMP Bitcomp,已壓縮的資料採用 passthrough — 而 GET 則傳回原始位元組。

產品亮點

預裝 GPU compression:NVIDIA driver + nvCOMP (Bitcomp / zstd / GDeflate) 已內建到 AMI。啟動在 g4dn / g5 / g6 上,S4 會自動對整數和欄位式資料使用 GPU。

可壓縮資料的 S3 storage bytes 減少 50–80%,並內建按 bucket 實測的節省報告 (s4 savings)。

零應用程式修改,無 lock-in:S3 wire-compatible endpoint;即使沒有 gateway,也可透過 Apache-2.0 CLI / Python / fsspec 工具讀取物件。

包含內容

  • 基於 Amazon Linux 2023 的 EC2 AMI,預裝了 NVIDIA 驅動程式和 nvCOMP,且 S4 作為 systemd 服務執行,按您一般 AWS 帳單上的執行個體小時數計費。
  • 支援的 GPU 執行個體系列:g4dn、g5、g6 和 g6e。
  • 與 S3 協定相容的端點 — 支援 SigV4 / SigV4a 驗證、分段上傳、Range GET 和 SSE — 可作為任何 S3 SDK 或工具的直接替換方案。
  • 按 payload 進行編解碼器分發,支援 CPU zstd、GPU nvCOMP Bitcomp / zstd / GDeflate 以及 passthrough — 透過熵和魔術位元組採樣自動選擇,已壓縮的輸入將被直接透傳。
  • 節省報告:在部署前,s4 estimate 可預測現有儲存貯體的節省空間,而 s4 savings 總帳則會報告實際節省的儲存位元組和金額,並包含 Prometheus 指標和 Grafana 儀表板。
  • 無鎖定讀取工具:Apache-2.0 的 s4-codec CLI、s4-codec Python 套件、s4fs fsspec 配接器(pandas / pyarrow / DuckDB)以及 WASM 瀏覽器解碼器,均可在無需閘道器的情況下讀取物件。
  • Day-2 維運工具:s4 migrate 可對現有物件進行追溯壓縮,s4 recompact 可對冷資料進行再壓縮,同時 Range GET 將透過與 Parquet/ORC 讀取器相容的邊車幀索引來保持高速運作。

適用場景

擷取大量日誌或 JSON(nginx 存取日誌、應用程式日誌)的團隊,且其 S3 帳單主要由高度可壓縮的文字構成。

儲存 Parquet/ORC 和欄位式整數 data(倒排列表、時間序列),並希望在保持 Range GET 分析速度的同時縮減占用空間的資料湖。

每月 S3 帳單超過約 $3,000,或者已經執行 GPU 執行個體,且節省的儲存費用可以輕鬆覆蓋 GPU 計算成本的組織。

希望在不重寫應用程式程式碼的情況下引入壓縮的 ETL / ML 管線 — 只需重新指向 S3 端點。

案例與基準測試

Elasticsearch frozen-tier 儲存壓縮

在真實的 Elasticsearch 9.4.2 叢集上進行端對端測試(ES → S4 → MinIO,400 萬份文件的日誌索引)。在預設的 zstd-3 下壓縮 frozen-tier 快照儲存庫,可減少 27%(標準)/ 22%(LogsDB)的儲存空間 — 使用 s4 recompact 時最高可達 33% — 而冷 frozen 分析查詢保持在直接查詢的 ±1ms 以內,快照實際耗時幾乎沒有增加。與 LogsDB 結合使用時效果累加,生成的儲存庫比普通標準預設寫入小 2.82×。

查看基準測試

OpenSearch searchable-snapshot 儲存壓縮

在真實的 OpenSearch 2.19 叢集上進行端對端測試(OpenSearch → S4 → MinIO,400 萬份文件的日誌索引)。使用 S4 壓縮 searchable-snapshot S3 儲存庫,可減少 28%(預設)/ 17%(best_compression / zstd / zstd_no_dict)的儲存空間。由於 OpenSearch 的 index.codec 僅壓縮 stored fields,S4 透過壓縮 doc-values 和 postings,在原生 zstd 編解碼器之上仍能額外節省 ~17%。在本次本地測試中,remote_snapshot 搜尋延遲保持在直接查詢的 ~1.5ms 以內(S4 效能相同或更快)。repository-s3 搭配需要 S4 的 --logical-etag 旗標(已在此項工作中新增)。

查看基準測試

Grafana Loki chunk 壓縮

在真實的 Grafana Loki 3.3.2 執行個體上進行端對端測試(Loki → S4 → MinIO,400 萬行日誌)。使用 S4 zstd-3 重新壓縮 Loki 的 snappy chunk,可將 bucket 儲存空間減少 18.4%(zstd-9 為 19.3%)。坦白說,如果將 Loki 自身的 chunk_encoding 切換為 zstd,新 chunk 可節省 38% — 效果優於 S4 — 因此 S4 的價值在於處理唯讀且不可變的現有 snappy 歷史積壓資料,而非全新專案(屬於互補而非替代)。讀取方面:透過 S4 進行整塊 GET 會多出 ~1.7ms 延遲(位元組完全一致;在本地測試中為解壓成本)。與 OpenSearch 不同,Loki 不需要 --logical-etag 旗標(但建議使用以確保 ETag 的正確性)。

查看基準測試

Kafka 分層儲存壓縮

在真實的 Apache Kafka 3.9.1 叢集上進行端對端測試(KIP-405 分層儲存 + Aiven 外掛程式 → S4 → MinIO,每個主題 600k 條記錄)。使用 S4 zstd-3 重新壓縮分層的日誌區段,按生產者的 compression.type 劃分,儲存位元組數分別減少了:none(未壓縮)74.7% / snappy 22.6% / lz4 20.6% / zstd 0.0%。坦白說,如果生產者自身傳送 zstd,它會在源頭縮小區段大小(43.9 MB — 這與 S4 在 none 上達到的最低限制 42.0 MB 處於同一水平),而 S4 對於已經是 zstd 的日誌區段幾乎沒有任何額外幫助。因此,S4 的價值主要在於 none/snappy/lz4 以及無法變更生產者的場景中的日誌區段(屬於互補而非替代)。在冷資料遠端提取(remote-fetch)中,沒有表現出一致的 S4 延遲懲罰(本地執行,單次雜訊樣本)。與 OpenSearch 不同,Kafka 不需要 --logical-etag 旗標(但建議使用以確保 ETag 的正確性)。

查看基準測試

冷 Parquet 再壓縮

在本地針對 MinIO 進行測試(2,000,000 行 ECS 風格日誌的 Parquet,13 欄)。新的 s4 parquet-recompact 子命令可將資料湖 cold Parquet 的欄位區塊(column chunks)重新編碼為 zstd,並寫回原生 Parquet — pyarrow / Spark / Trino / DuckDB 可以直接讀取,且讀取路徑中不需要 S4。相較於 snappy(資料湖預設)它縮減了 36.6% 的儲存,未壓縮縮減了 51.7%,gzip 縮減了 3.8%,已經是 zstd 的則為 0.0%(跳過)。每一份輸出在數值上都完全一致(透過 pyarrow table.equals 驗證)。坦白說,如果將寫入端的編解碼器設定為 zstd,在源頭就能縮減到同等水平(79.4 MB),因此 S4 的切入點是現有的 snappy/none/gzip 歷史積壓資料,畢竟沒有人會為了這些資料重新執行寫入作業(屬於互補而非替代)。在進行就地覆蓋之前,每個物件都會按列組(row group)進行值驗證(記憶體受限),且絕不會覆蓋無法驗證的物件。

查看基準測試

常見問題

如果我停止執行 S4,還能讀取我的資料嗎?

是的。壓縮的物件及其 S4IX 邊車仍保持 S3 原生狀態,並可繼續使用一般的 aws-cli 或 boto3 進行列出和下載。要復原原始 payload,您可以使用 Apache-2.0 的 s4-codec CLI、s4-codec Python 套件、s4fs fsspec 配接器(pandas / pyarrow / DuckDB)或 WASM 瀏覽器解碼器 — 這些全部是開源的純解碼工具,無需執行閘道器。

我需要修改我的應用程式嗎?

不需要。S4 使用 S3 協定 — 相同的 SigV4 驗證、分段上傳、Range GET 和 SDK 呼叫。您只需變更 boto3 / aws-cli / Spark / Trino / DuckDB 用戶端指向的端點 URL;無需其他改動。

我的帳單中具體哪一部分會變便宜?

僅限儲存位元組數。對於可壓縮資料,S4 可將 S3 中的儲存位元組數減少 50–80% — 例如,1 TiB 的 nginx 日誌可以壓縮到約 6.6 GiB。請求成本(PUT/GET)、egress 和 GPU 計算保持不變。由於存在 GPU 執行個體成本,S4 通常在每月 S3 帳單大約超過 $1,000 時才劃算(使用競價執行個體或如果您已經執行 GPU,這一門檻會更低)。

該 AMI 支援哪些 GPU 執行個體?

EC2 AMI(預裝 Amazon Linux 2023、NVIDIA 驅動及 nvCOMP)執行在 g4dn、g5、g6 和 g6e 執行個體上,在您的一般 AWS 帳單上按執行個體小時計費。沒有許可證金鑰 — 計量透過 AWS Marketplace 處理。

S4 在哪裡執行?誰能看到我的資料?

您在自己的 AWS 帳戶 and VPC 中啟動該 AMI,它會與您自己的 S3 儲存貯體通訊 — 沒有任何資料離開您的帳戶,且路徑中不存在第三方服務。它支援 TLS 和伺服器端加密(SSE)。

為什麼更便宜

假設在 S3 Standard (us-east-1) 上儲存 100 TB 可壓縮約 3× 的資料 (Parquet/ORC、JSON 等)。

不使用 S4
應用
100 TB 原始資料
S3 儲存桶
S3 儲存 (100 TB)
$2,300 / 月
月度合計
$2,300 / 月
使用 S4
應用
100 TB 原始資料
S4
g4dn.xlarge
34 TB (3× 壓縮)
S3 儲存桶
S3 儲存 (壓縮後 34 TB)
$800 / 月
S4 執行個體 (g4dn.xlarge + 軟體費)
$385 / 月
月度合計
$1,185 / 月
−49%與不使用 S4 相比

按寫入負載選擇 S4 執行個體

寫入負載推薦執行個體S4 執行個體費用儲存 100 TB 時的合計
~1 TB / 日g4dn.xlarge$385 / 月$1,185 / 月 (−49%)
~10 TB / 日g6.xlarge$590 / 月$1,390 / 月 (−40%)
高並發 / 100 TB / 日g6.4xlarge$965 / 月$1,765 / 月 (−23%)

僅供參考。儲存費用基於 S3 Standard (us-east-1) 的公開費率 ($0.023/GB·月) 和 g4dn / g6 的 EC2 隨需價格。S4 軟體費用透過 AWS Marketplace 按小時計費,獨立於 EC2 費用 (1 年 Savings Plan 通常可將 EC2 部分降低 30–40%)。實際節省取決於資料的可壓縮性 (Parquet、JSON 約 3–5×;文字日誌約 4–10×) 以及讀寫模式。

計費模式

按小時计費的軟體費用 + 您選擇的 GPU EC2 (g4dn / g5 / g6)。按 instance type 計量,提供年度選項,無需 license keys。

在 AWS Marketplace 取得