觀點 · 資訊分享

AWS Kinesis 資料流可以直接存進 S3 了:不用自己寫搬運程式,官方說最多省 6 成

Amazon Kinesis Data Streams 新增資料送達功能,串流資料能直接存進一般 S3 儲存桶,或轉成 Iceberg 資料表。AWS 說跟自建搬運流程比,送達成本最多省 6 成。

發布
2026-08-30
篇幅
約 5 分鐘 · 2,403 字
結構
7 節 + 4 題常見問題
標籤
#AWS#Kinesis#Amazon S3#Apache Iceberg
AWS Kinesis 資料流可以直接存進 S3 了:不用自己寫搬運程式,官方說最多省 6 成

一句話看懂:AWS 讓 Kinesis 資料流可以直接存進 S3,不用再自己寫程式搬資料;官方說送達費用比自建方案最多省 6 成。

Kinesis 串流資料直接存進 S3資訊圖卡:不必再寫程式搬資料,開個設定就能存進 S3 或 Iceberg 資料表

先用白話講:Kinesis 與 S3 是什麼關係?

想像一條永遠不停的輸送帶,網站點擊紀錄、機器感測數據、應用程式日誌,一筆一筆放上去。這條輸送帶就是 Kinesis Data Streams。輸送帶上的東西如果沒人取走,過一陣子就掉了,所以通常會有人把資料搬到倉庫存起來,這個倉庫就是 Amazon S3。

以前「搬運工」要自己雇:寫一支消費程式,或串多個服務,還得顧擴充、重試、掛掉重啟。這次 AWS 把搬運工內建了,你只要在設定裡指定「送到哪個倉庫」。

發生什麼事

AWS 在兩天內宣布兩個相關功能:

  • 8 月 28 日:streaming tables:把串流資料持續送進 S3 Tables,格式是 Apache Iceberg(一種方便分析查詢的資料表格式)。官方說比自建方案最多省 50% 的送達成本,下游查詢成本最多再省 30%
  • 8 月 29 日:送達一般 S3 儲存桶:資料維持原本格式,不做轉換。官方說比自建方案最多省 60%

兩者都是全託管,採用量計價,沒有開通費、沒有最低消費,只有成功送達的資料才計費。所有提供 Kinesis Data Streams 的區域都能用,包括 GovCloud 與中國區域。

該選哪一種?

情境 建議
原始日誌封存、事件重播、批次處理 一般 S3 儲存桶
想用 Athena、Redshift、Spark 直接查 streaming tables(Iceberg)
資料要先經過自訂的轉換或清洗 這兩種送達不做自訂轉換,需要自己處理

給開發者的技術細節

依據官方開發人員指南:

  • 呼叫 CreateChannel 建立送達,指定目的地類型即可,也可從主控台設定
  • 串流必須是 On-Demand Standard 或 On-Demand Advantage 容量模式
  • 資料新鮮度可設定 300 到 900 秒(5 到 15 分鐘),預設 300 秒
  • 只送達建立設定之後產生的紀錄,不回補舊資料
  • Iceberg 送達:要用 AWS Glue Schema Registry 的結構定義、必須設定死信佇列、只能新增資料(append-only)、不支援欄位變更,也不能送進既有資料表,每個送達會建立新表
  • 一般 S3 送達:支援 JSON、字串與二進位格式,不需要結構定義,S3 路徑結構可用輸出 key 範本自訂;目的地儲存桶可以跨帳號,Iceberg 則不行
  • 目的地加密可使用客戶自管的 KMS 金鑰,不支援 AWS 受管的 aws/kinesis 金鑰

後續(8 月 31 日):官方部落格公布 us-east-1 的價格:Iceberg 送達每 TB 14 美元、一般 S3 送達每 TB 11 美元,並說自建方案依內部分析最高約每 TB 28 美元。

我的看法

常見的日誌封存做法,是在 Kinesis 後面接一支 Lambda 寫進 S3。小流量時沒什麼感覺,流量一大,帳單和維護工作就會一起長大。把搬運工內建、只收成功送達的資料量,對這種情境是明確的簡化。

但別忘了兩件事:一是 5 到 15 分鐘的延遲,要求「幾秒內就要看到」的場景不適用;二是來源串流必須是 On-Demand 模式,如果原本不是,得先評估整體計費變化,不是開了就一定省。官方的「最多省 6 成」是跟自建方案比,條件寫在「最多」兩個字裡,自己的帳單要自己算。

名詞小辭典

  • 串流(Stream):不斷產生、持續流動的資料,例如網站每一次點擊。
  • Apache Iceberg:一種資料表格式,讓存在 S3 的檔案可以像資料庫一樣被查詢。
  • 全託管(Fully managed):擴充、重試、維護都由 AWS 處理,使用者只需設定。
  • 死信佇列(Dead-letter queue):專門放「送不過去的資料」紀錄的地方,方便事後排查。

資料來源

常見問題

Kinesis Data Streams 是什麼?
它是 AWS 的資料串流服務,像一條不斷流動的輸送帶,網站點擊、感測器讀數、應用程式日誌等事件一筆一筆丟進去,再由別的程式取出處理。
這次新增的兩種送達方式差在哪?
一種是送進一般 S3 儲存桶,資料維持原本格式,適合封存日誌、事件重播、批次處理;另一種是送進 S3 Tables 的 Iceberg 資料表,會自動轉成 Parquet 並做合併,可以直接用 Athena 等工具查。
現有的 Kinesis 串流都能用嗎?
不是。官方文件寫明串流必須使用 On-Demand Standard 或 On-Demand Advantage 容量模式,而且目的地要和串流在同一個區域。
會把舊資料也搬過去嗎?
不會。官方文件說只送達建立設定之後產生的新資料,串流裡原本就有的紀錄不會回補。
LINE