DynamoDBがバックアップを取るとき、処理中にパフォーマンスの影響が出ないそうですが、

boitumelo-0DJHJcpwN9Q-unsplash.jpg

質問

DynamoDBがバックアップを取るとき、処理中にパフォーマンスの影響が出ないそうですが、どうしてそんなことができるの?
どういう技術を裏で使っていますか?


世界征服系妹2 (電撃文庫) [ 上月 司 ]

価格:737円
(2026/5/27 20:17時点)
感想(0件)

サーバーレスシングルページアプリケーション ―S3、AWS Lambda、API Gateway、DynamoDB、Cognitoで構築するスケーラブルなWebサービス

価格:425円
(2026/5/27 20:16時点)
感想(0件)


解答

DynamoDBのバックアップで性能影響が小さいのは、ざっくり言うと
**「動いているテーブルをそのままコピーしているわけではない」**からです。

裏側では、DynamoDBの分散ストレージ基盤の「スナップショット」と「ログ(変更履歴)」の仕組みを使って、オンラインのまま整合性を保っています。


普通のDBバックアップで重くなる理由

まず比較です。

昔ながらのDBだと:

  1. データを読み出す

  2. ファイルコピーする

  3. 整合性を保つためロック

  4. I/O大量発生

となりやすく、性能影響が出ます。


DynamoDBは「分散ストレージ前提」

DynamoDBは最初から:

  • データを多数ノードへ分散

  • 複数コピー保持

  • 書き込みログ管理

する設計です。

つまり、
「常時レプリケーションと履歴管理をしている巨大分散KVストア」
に近い。

この構造がバックアップと相性がいいです。


ポイント1:スナップショット方式

オンデマンドバックアップでは、
ある瞬間の論理状態を「参照」します。

重要なのは:

「全部コピー開始!」ではない

という点です。

多くの分散ストレージでは:

  • immutable(不変)データ

  • Copy-on-Write

  • MVCC(多版管理)

系の考え方を使います。

つまり:

「バックアップ時点のデータビュー」を固定し、
その後の更新は別領域へ書く。

だから、
バックアップ中でも通常書き込みを止めなくていい。


ポイント2:増分・ログ活用

PITR(Point-In-Time Recovery)はさらに典型的です。

これは:

  • 全コピーを毎回取る
    ではなく、

  • 変更ログ

  • redo log的な履歴

を保持して、
任意時点を再構築します。

つまり:

「全部保存」ではなく、
「変化だけ追跡」。

だから効率がいい。


ポイント3:ストレージ層で処理

ここがかなり重要です。

バックアップ処理は、
ユーザテーブルをScanしているわけではなく、
内部ストレージ層で直接処理しています。

なので:

  • RCU大量消費

  • 通常API競合

が起きにくい。

ユーザ視点では:
「いつの間にかバックアップ終わってる」
に近い。


なぜAWSで特にやりやすいのか

DynamoDBは:

  • ストレージ抽象化

  • 完全マネージド

  • 分散前提設計

なので、
内部実装をかなり自由に最適化できます。

利用者が:

  • ファイル配置

  • ディスク構成

  • レプリカ管理

を知らなくていいのも大きい。


裏で使われている思想(推定含む)

AWSは内部実装を全部公開していませんが、
一般的に近い技術思想としては:

  • MVCC

  • Log-Structured Storage

  • Copy-on-Write

  • Immutable SSTable系

  • 分散スナップショット

  • WAL/redo log

あたりが強く関係しています。

Cassandra系やLSM-tree系の思想に近い部分があります。


完全に無負荷なの?

ここは注意。

「ユーザが体感するほど大きな影響が少ない」
のであって、
内部では当然:

  • ストレージI/O

  • ネットワーク

  • レプリケーション

は動いています。

ただAWS側でかなり吸収している。


まとめ

DynamoDBバックアップが高性能なのは、

「動作中データを直接コピーする」のではなく、
分散ストレージのスナップショットと変更履歴管理を利用しているから

です。

特に重要なのは:

  • Copy-on-Write的発想

  • MVCC

  • ログベース復元

  • ストレージ層バックアップ

このあたりです。

つまり、
「バックアップ専用に重い処理をしている」というより、

「普段から持っている分散ストレージ機能をバックアップに転用している」

イメージに近いです。




Believe in Your Own Magic: A 45-Card Oracle Deck and Guidebook [With Book(s)] BELIEVE IN YOUR OWN MAGIC [ Amanda Lovelace ]

価格:3960円
(2026/5/22 20:30時点)
感想(0件)


Learn SQLite in 24 Hours【電子書籍】[ Alex Nordeen ]

価格:1681円
(2026/4/17 22:22時点)
感想(0件)


 



この記事へのコメント