DynamoDB は S3 にエクスポートできますか?
はい。DynamoDB には Amazon S3 への組み込みエクスポートがあり、直近 35 日間の任意の時点でのテーブルのフルまたは増分スナップショットを、DynamoDB JSON または Amazon Ion として書き出します。ポイントインタイムリカバリ(PITR)が必要で、非同期に実行され、読み取りキャパシティは消費しません。
フルエクスポートと増分エクスポート
フルエクスポート は、選んだ時点でのテーブル全体(データとローカルセカンダリインデックス)を取得します。一方の 増分エクスポート は、指定した 15 分から 24 時間までの時間枠のあいだに変更・更新・削除されたデータだけを取得します。どちらも非同期に実行され、テーブルのパフォーマンスや可用性に影響しません。
前提条件と出力先
唯一の前提条件は、テーブルで PITRが有効になっていることです。エクスポートはライブのテーブルではなく継続的バックアップから読み取ります。別の AWS アカウント、さらには別のリージョンの S3 バケットにもエクスポートでき、データはエンドツーエンドで暗号化されます。
出力は CSV ではありません
エクスポートは DynamoDB JSON または Amazon Ion — {"S": ...} や {"N": ...} の記述子を持つ型タグ付きのワイヤ形式 — で書き出され、CSV になることはありません。エクスポートから表計算用のデータを得るには、Athena、Glue、あるいはスクリプトによる 2 段目の処理が必要です。あらゆる選択肢は CSV へのエクスポートガイドが扱います。
コスト
フルエクスポートは、選んだ時点でのテーブルサイズで課金されます。増分エクスポートは、継続的バックアップから処理されたデータのサイズで課金されます(最低 10 MB 分)。S3 のストレージと PUT リクエストは別途課金されます。
エクスポートはテーブルを安く読む手段ではありません
us-east-1 の 100 GB のテーブルで見積もってみましょう。エクスポートは 1 GB あたり 0.10 ドルなので 10.00 ドルです。同じ 100 GB を結果整合性のある Scan で読むと 13,107,200 読み取りユニットを消費し、オンデマンドで 1.64 ドルです。エクスポートは 6 倍のコストがかかり、しかもその前提条件を数えていません。PITR は 1 GB-月あたり 0.20 ドルなので、そのテーブルをエクスポート可能に保つだけで、実際にエクスポートを実行するかどうかにかかわらず月 20 ドルかかります。
そのお金で買っているのはキャパシティです。この Scan は 5,000 RCU でおよそ 44 分かかり、その全ユニットを、アプリケーションが読んでいるのと同じテーブルに費やします。ですから忙しいプロビジョニング済みテーブルでは、本番をスロットリングさせるか、このジョブのためにプロビジョニングするかのどちらかになります。エクスポートはテーブルのキャパシティに一切触れず、何もスロットリングさせず、一貫した 1 時点のデータを渡してくれます。小さい、あるいはアイドル状態の、または一部しか必要のないテーブルはスキャンし、稼働中のテーブルはエクスポートしましょう。
1.64 ドルは下限として扱ってください。AWS は、スパースなテーブルや非常に大きなテーブルでは、実際にスキャンしたデータを超える読み取りユニットが課金されることがあると注記しています。
さらに詳しく
ワークフロー全体は CSV へのエクスポートガイドをたどり、エクスポートしたアイテムは DynamoDB JSON コンバータで展開するか、DynoTable をダウンロードしてデスクトップから直接テーブルのデータを閲覧・エクスポートしてください。
参考資料
- DynamoDB data export to Amazon S3: how it works — Amazon DynamoDB Developer Guide
- Quotas in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- Point-in-time backups for DynamoDB — Amazon DynamoDB Developer Guide
- Amazon DynamoDB pricing
- Scanning tables in DynamoDB — Amazon DynamoDB Developer Guide。
Scanが読み取りキャパシティをどう消費するかについて 2026-07-28 に再確認しました。
最終検証日 2026-07-13、上記にリンクした公式 AWS ドキュメントに照らして確認しました。
コストは 2026-07-28 に、AWS Price List API から読み取った us-east-1 のエクスポート、PITR、リクエストの料率で算出しました。Scan の数値が依拠する 4 KB の丸めは、仮定ではなく実測しました。DynamoDB Local 3.3.0 で 998 KB 分のアイテムをスキャンしたところ 125 読み取りユニットと報告され、これは集計モデルと一致し、アイテム単位の丸めを否定します。