DynamoDB を学ぶ

DynamoDB を学ぶ

DynamoDB を正しく学ぶ — 基礎からデータモデリング、インデックス、式、PartiQL、ツール、内部構造まで、体系立てたカリキュラムです。

DynamoDB の基礎。いつ使うかから、データ型、DynamoDB JSON、アイテムサイズと制限、アイテム操作、複合キー、コレクション、一貫性まで。

10 件中 0 件読了クイズ
DynamoDBをいつ使うべきか(そしていつ使うべきでないか)
DynamoDB をいつ使い、いつ使わないべきか。リレーショナルデータベースより有利になるアクセスパターン・スケール・コストのシグナルと、そうでない場合に組み合わせるべきもの。
初級読了 10 分
DynamoDB のデータ型:全型を例付きで
DynamoDB の 10 のデータ型:スカラー(S、N、B、BOOL、NULL)、ドキュメント(M、L)、セット(SS、NS、BS)、DynamoDB JSON での見え方、キーになれる型。
初級読了 7 分
DynamoDB JSON とマーシャリング
DynamoDB JSON とマーシャリング。なぜすべての値が型タグで包まれるのか、素の JSON とどう違うのか、そしてコードで両者をどう変換するのか。
初級読了 7 分
DynamoDB のアイテムサイズ上限(400 KB)
DynamoDB の 400 KB アイテムサイズ上限について、何がカウントされるか、大きなアイテムのコスト、そして増え続けるアイテムを分割、圧縮、オフロードする方法を解説します。
初級読了 7 分
DynamoDB の制限とクォータ:実サービスに対して検証
設計を左右する DynamoDB の制限とクォータ、そのうちどれを引き上げられるか、それぞれの回避策、そして実測した制限について実サービスが返すそのままのエラー。
中級読了 13 分
DynamoDBのアイテムベース操作
DynamoDBのアイテムベース操作。GetItem、PutItem、UpdateItem、DeleteItemは、それぞれ完全なプライマリキーで単一のアイテムを指定し、QueryやScanとは異なる。
初級読了 7 分
DynamoDB 複合プライマリキー:パーティションキー + ソートキー
DynamoDB の複合プライマリキーはパーティションキー + ソートキーです。この組み合わせは一意でなければならず、ソートキーによって1回の Query でソート済みの範囲を読み取れます。
初級読了 9 分
DynamoDB のアイテムコレクション
DynamoDB のアイテムコレクション(同じパーティションキーを共有するすべてのアイテム)とは何か、なぜそれが 1 回の Query の単位なのか、そして LSI が加える 10 GB の制限。
初級読了 8 分
DynamoDB の強い整合性と結果整合性のある読み取り
DynamoDB の強い整合性のある読み取りと結果整合性のある読み取り。それぞれが保証すること、ConsistentRead の 2 倍の読み取りコスト、GSI が結果整合性のみである理由。
中級読了 7 分
理解度チェッククイズに挑戦
このセクションで学んだ内容を確認しましょう。

DynamoDB のデータモデリング — アクセスパターンからのモデリング、シングルテーブル設計、type 属性、非正規化、そして 1 テーブルが間違った選択になるとき。

7 件中 0 件読了クイズ
DynamoDB でデータをモデル化する方法
DynamoDB でアクセスパターンファーストにデータをモデル化する方法。4 つの問いをパーティションキー、ソートキー、2 つの GSI に落とし込む、ゲームのリーダーボードの解説。
中級読了 8 分
DynamoDB シングルテーブル設計:1 つのテーブルで複数のエンティティをモデル化する
DynamoDB のシングルテーブル設計は、オーバーロードしたキープレフィックスの下にすべてのエンティティを 1 つのテーブルへ格納し、親と子を 1 回の Query で返します。
中級読了 8 分
DynamoDB でシングルテーブル設計を使うべきでないとき
DynamoDB でシングルテーブル設計を使うべきでないとき。重い分析、無関係なエンティティへの単純な CRUD、独立してスケールしたり障害が起きたりするエンティティ。
中級読了 8 分
DynamoDB の Type 属性
DynamoDB の Type 属性 — すべての項目にエンティティ型を刻み込むことで、行を識別し、GSI を 1 つのエンティティに絞り込み、将来のマイグレーションを乗り切る理由。
中級読了 8 分
DynamoDB の非正規化
DynamoDB の非正規化:結合する代わりにデータを複製する理由を、ブログの著者名の例、古びる(staleness)という地雷、そして埋め込みか複製かの使い分けとともに解説。
中級読了 9 分
DynamoDB のシングルトンアイテム
DynamoDB のシングルトンアイテム — 機能フラグや設定のようなグローバルな状態を保持する固定キーの 1 行を、GetItem で読み、条件式で更新する。
中級読了 8 分
理解度チェッククイズに挑戦
このセクションで学んだ内容を確認しましょう。

join を使わずに DynamoDB でリレーションシップをモデル化する。一対多、隣接リストパターン、多対多、複合ソートキー、参照カウント。

6 件中 0 件読了クイズ

DynamoDB のクエリとソート。Query 対 Scan、ページネーション、フィルター式、なぜ Scan が遅いのか、並列スキャン、ゼロパディングを含むソートキー戦略。

10 件中 0 件読了クイズ
DynamoDB の Query と Scan:どちらをいつ使うか
DynamoDB の Query と Scan。Query は 1 つのアイテムコレクションを読み、キー条件が選んだ分だけ課金されます。Scan はフィルターが動く前にテーブル全体を課金します。
初級読了 9 分
DynamoDB のページネーション:LastEvaluatedKey 解説
DynamoDB のページネーションの仕組み。LastEvaluatedKey と ExclusiveStartKey でループする方法、Limit がページサイズでない理由、安全なステートレスカーソルの公開方法。
初級読了 9 分
DynamoDB のフィルタリング戦略
DynamoDB のフィルタリング戦略を比較(パーティションキー、ソートキー、スパースインデックス、FilterExpression)し、どれが本当に読み取り課金を削るのかを解説。
中級読了 9 分
DynamoDB の Scan が遅くて高コストな理由
DynamoDB の Scan が遅くて高コストな理由、実際に何に対して課金されるのか、そして反射的な Scan をコストがわずかで済むキー付き Query に変える方法。
初級読了 6 分
DynamoDB のパラレルスキャン
DynamoDB のパラレルスキャンが Segment と TotalSegments でテーブル全体の読み取りをワーカーに分割する仕組み、役立つ場面、そして S3 へのエクスポートのほうが適した仕事。
上級読了 8 分
DynamoDB ソートキー戦略:3 つのパターンと使い分け
範囲読み取りのための DynamoDB ソートキー戦略。バイト順が読み取り順と一致するソートキーを設計し、1 つの Query で多くのアクセスパターンに応える。
中級読了 6 分
DynamoDB を降順にクエリする方法
ScanIndexForward=false または PartiQL の ORDER BY DESC で DynamoDB を降順にクエリする。新しい順の結果、順序がソートキーに従う理由、そしてコスト。
初級読了 6 分
変化する (可変な) 属性で DynamoDB をソートする
変化する属性で DynamoDB をソートする。キー属性が変更できない理由、削除して put するパターン、キーの付け替え、そして値を GSI のソートキーへ移す方法。
中級読了 8 分
DynamoDB におけるソートキーのゼロ埋め
DynamoDB の文字列ソートキーで "10" が "2" より前に並ぶ理由と、固定幅のゼロ埋めが辞書順のバイト順を数値順に一致させる仕組み。
中級読了 5 分
理解度チェッククイズに挑戦
このセクションで学んだ内容を確認しましょう。

DynamoDB のグローバルセカンダリインデックスにいくらかかるか。定価で見た GSI 書き込み増幅、GSI 対 LSI 対フィルターの判断表、そして拘束する上限。

8 件中 0 件読了クイズ
DynamoDB の GSI と LSI
DynamoDB の GSI vs LSI。パーティションキー、整合性、キャパシティ、10 GB の違いと、どちらのセカンダリインデックスに手を伸ばすかのシンプルなルール。
初級読了 8 分
DynamoDB のインデックス射影
DynamoDB のインデックス射影。KEYS_ONLY、INCLUDE、ALL が GSI や LSI に何をコピーするか、それぞれの読み取りと書き込みのコスト、そして後から変更する方法。
中級読了 7 分
DynamoDB のスパースインデックス
DynamoDB のスパースインデックスは、そのキーを持つアイテムだけを GSI に保持させます。大きなテーブルの小さなサブセットを、スキャンなしで安くクエリする方法です。
中級読了 8 分
DynamoDB のキーオーバーロード
DynamoDB のキーオーバーロード。汎用的な pk/sk という名前の下に多数のエンティティ型を置き、型を値にエンコードして、begins_with でそれぞれを切り出します。
上級読了 8 分
DynamoDB の GSI が結果整合性である理由
DynamoDB の GSI が結果整合性である理由。書き込み直後の読み取りで古い結果が返る落とし穴、その裏にある伝播の仕組み、そしてそれを前提に設計する方法。
中級読了 8 分
DynamoDB GSI がベーステーブル書き込みをスロットルする理由
プロビジョニング不足またはホットな DynamoDB GSI がベーステーブルの書き込みをスロットルする理由。GSI バックプレッシャー、読むべきスロットリングの理由、そしてそれぞれの直し方。
上級読了 8 分
DynamoDB のベクトル検索
ネイティブの DynamoDB ベクトル検索をライブのインデックスで計測。SearchVectors のレイテンシー、バイト単位の書き込みと検索の課金、落とし穴、S3 Vectors の方が安くなる条件。
中級読了 16 分
理解度チェッククイズに挑戦
このセクションで学んだ内容を確認しましょう。

DynamoDB の式: 式の属性名と値、それらをいつ必ず使うか、そして条件式、更新式、キー条件式、射影式。

6 件中 0 件読了クイズ

DynamoDB の書き込みと運用。バッチ書き込みと削除、ReturnValues、アトミックカウンター、属性横断の一意性、ゼロダウンタイム移行、ホットパーティション。

8 件中 0 件読了クイズ
DynamoDBのバッチ操作
DynamoDBのバッチ操作。BatchGetItemは1回で100件を読み、BatchWriteItemは25件を書く。バッチはトランザクションではないこと、そして未処理分の再試行方法。
中級読了 8 分
DynamoDBで複数のアイテムを削除する方法
DynamoDBで複数のアイテムを削除する方法(BatchWriteItem、TransactWriteItems、PartiQLバッチ、TTL)と、DELETE ... WHERE文が存在しない理由。
初級読了 9 分
DynamoDBのReturnValues:古いまたは新しいアイテムを取得する
DynamoDBのReturnValuesは、PutItem、UpdateItem、DeleteItemから2回目の読み取りなしで古いまたは新しいアイテムを返します。5つの選択肢と、それぞれが役立つ場面。
中級読了 5 分
DynamoDB のアトミックカウンター:ADD の仕組みと限界
DynamoDB のアトミックカウンターが ADD 更新式でどう動くか、なぜ冪等でないのか、そしてインクリメントを安全に再試行できるようにする方法。
中級読了 7 分
DynamoDB で複数の属性に一意性を課す
DynamoDB で複数の属性に一意制約を課す方法。メールとユーザー名の両方の一意性を、マーカー項目と条件付きの TransactWriteItems で保証します。
上級読了 6 分
ダウンタイムなしの DynamoDB 移行
ダウンタイムなしの DynamoDB 移行。オンライン GSI、ガード付きのバックフィル、デュアルライトで、稼働中のテーブルへ新しいエンティティ型とアクセスパターンを追加する方法。
上級読了 6 分
DynamoDB のホットパーティション:見つけ方と直し方
DynamoDB のホットパーティションとは、1つのパーティションキーが1パーティションでさばける以上のトラフィックを受けている状態です。Contributor Insights でキーを特定し、シャーディングで分散させます。
中級読了 11 分
理解度チェッククイズに挑戦
このセクションで学んだ内容を確認しましょう。

DynamoDB 上の PartiQL と SQL。PartiQL とは何か、何ができないか、ネイティブな回避策、そして DynoTable の Workbench が JOIN、GROUP BY、集約をどう実行するか。

7 件中 0 件読了クイズ
DynamoDB のための SQL と PartiQL の限界
DynamoDB を SQL でクエリできる? PartiQL はキーによる SELECT・INSERT・UPDATE・DELETE を扱いますが、JOIN、GROUP BY、COUNT(*) は扱えません。何が動くのかを解説します。
初級読了 8 分
DynamoDB PartiQL vs SQL: 何が壊れるのか
DynamoDB の PartiQL は SQL に似ていますが、JOIN・GROUP BY・サブクエリ・集計はありません。各ステートメントはネイティブのアイテム操作に対応します。何が壊れるのかを解説。
初級読了 8 分
例で学ぶ DynamoDB の PartiQL
例で学ぶ DynamoDB の PartiQL。SQL に似た構文での SELECT、INSERT、UPDATE、DELETE と、パーティションキーやテーブル全体のスキャンにまつわる落とし穴を解説します。
初級読了 6 分
DynamoDB の JOIN: テーブルを結合する方法
DynamoDB に JOIN はなく、PartiQL もそれを追加しません。その理由、開発者が使う4つの回避策、そして DynoTable の SQL Workbench が本物の JOIN を実行する仕組み。
中級読了 10 分
DynamoDB GROUP BY:代わりに集計する方法
DynamoDB に GROUP BY・SUM・AVG はなく、PartiQL も追加しません。アトミックカウンター、Streams + Lambda のロールアップ、S3 へのエクスポート + Athena、アプリ側グルーピング。
中級読了 11 分
DynamoDB で COUNT、SUM、集計を行う方法
DynamoDB で COUNT、SUM、集計を行う方法。Select=COUNT のコスト、ネイティブの SUM や AVG がない理由、そして本当の合計を得るためのパターン。
初級読了 6 分
理解度チェッククイズに挑戦
このセクションで学んだ内容を確認しましょう。

DynamoDB のツール:DynamoDB Local、LocalStack、最良の GUI クライアント、データの閲覧と編集、テーブルのコピー、CSV エクスポートと MCP サーバー。

13 件中 0 件読了
Docker で DynamoDB Local を動かす方法
Docker で DynamoDB Local を動かしてオフライン開発とテストを行う。コンテナを起動し、SDK をローカルエンドポイントに向け、テーブルを作成する。
初級読了 7 分
DynamoDB LocalとLocalStackへの接続方法
GUIをDynamoDB LocalとLocalStackに接続する方法:エンドポイント、ダミー認証情報、よくあるエラー。DynoTableでローカルテーブルを視覚的に参照・クエリ。
中級読了 8 分
2026年に読む価値のあるDynamoDB本
2026年にお金を払う価値のあるDynamoDB本は2冊。それぞれの価格と、刊行時期が早すぎて各書がカバーできていないDynamoDB機能を正確に示します。
初級読了 6 分
DynamoDB のデータを表示、閲覧、編集する方法
DynamoDB のデータを閲覧・フィルタ・編集する方法と、それぞれの操作が実行する API 操作(Scan、Query、GetItem、PutItem、UpdateItem、DeleteItem)。
初級読了 7 分
DynamoDBテーブルを別のアカウントやリージョンにコピーする方法
DynamoDBテーブルを別のアカウントやリージョンにコピーする:データをエクスポートし、scan+write、S3エクスポート/インポート、AWS Backup、グローバルテーブルのいずれかでロードします。
初級読了 12 分
DynamoDBテーブルをCSVにエクスポートする方法(4つの方法)
DynamoDBテーブルをCSVにエクスポートする方法:DynoTableのフィルタ付きエクスポート、jqを使うAWS CLIスキャン、マネージドなS3エクスポートとAthena、またはスクリプト。
初級読了 14 分
DynamoDBテーブルからTypeScriptの型を生成する方法
DynamoDBはアイテムのスキーマを保存しないため、DescribeTableからは型を得られません。interfaceを手書きするか、スキーマファーストのライブラリを使うか、実際のアイテムから推論します。
中級読了 8 分
AIでDynamoDBをクエリする方法(自然言語)
DynamoDBを自然な言葉でクエリする方法。APIに自然言語のエンドポイントはないため、LLMが下書きするPartiQL、MCPエージェント、スキーマを理解するツールを比較します。
初級読了 6 分
DynamoDB MCP サーバー: Claude Code、Cursor、Codex
AI エージェントに MCP 経由で DynamoDB へのライブアクセスを与える。AWS、コミュニティ、DynoTable の各サーバーを比較し、どれでも読み取り専用で動かし、読み取りコストを抑える方法。
中級読了 11 分
Claude Code 向けの DynamoDB MCP
Claude Code を MCP 経由で DynamoDB に接続する。正確な claude mcp add コマンド、使うべきスコープ、ログイン手順、そして AWS キーをエージェントから遠ざける方法。
中級読了 9 分
Cursor 向けの DynamoDB MCP
Cursor を MCP 経由で DynamoDB に接続する。mcp.json の設定、プロジェクトとグローバルのファイル、サーバーの有効化と承認、そして AWS キーをリポジトリに置かない方法。
中級読了 7 分
Codex 向けの DynamoDB MCP
OpenAI Codex を MCP 経由で DynamoDB に接続。~/.codex/config.toml のエントリ、mcp_servers の snake_case の罠、トランスポートの選択、ログイン、タイムアウト。
中級読了 6 分
ExtendDB: 自分のデータベースで DynamoDB API を動かす
ExtendDB は、PostgreSQL など自分で運用するデータベースから DynamoDB API を提供する、AWS のオープンソースなアダプターです。手持ちの AWS SDK はそのまま動きます。
中級読了 7 分

DynamoDB の運用とコスト。トランザクション、Streams、TTL、オンデマンド対プロビジョンドキャパシティ、グローバルテーブル、バックアップ/PITR を、稼働中の 1 つの SaaS で学ぶ。

12 件中 0 件読了クイズ
DynamoDB のコストモデル: なぜ SQL は請求を見えなくするのか
DynamoDB 上の SQL が請求を見えなくする理由:JOIN、任意の WHERE フィルター、集計が Scan にコンパイルされる仕組みと、フル Scan 1回のコスト。
中級読了 4 分
DynamoDB Transactions:複数アイテムへのオールオアナッシングな書き込み
TransactWriteItems による DynamoDB トランザクション。最大 100 個の all-or-nothing アクション、4 MB の制限、2 倍の書き込みキャパシティ、そして競合でキャンセルされる仕組み。
上級読了 9 分
DynamoDB Streams:アイテムの変更すべてに反応する
DynamoDB Streams:24 時間の変更ログ、StreamViewType、アイテムごとの順序、Lambda トリガー、そして変更をより長く保持したり S3 にアーカイブしたりするための Kinesis 経由の方法。
上級読了 9 分
DynamoDB TTL:期限切れアイテムが削除される仕組み
DynamoDB TTL は、Unix エポックのタイムスタンプ属性が過ぎるとアイテムを自動削除します。通常は数日以内で、その削除に書き込みキャパシティはかかりません。
中級読了 6 分
DynamoDB オンデマンド vs プロビジョンドキャパシティ
DynamoDB のオンデマンドとプロビジョンドキャパシティ。リクエスト課金とプロビジョンドスループットの比較、使用率約 29% の損益分岐点、そして月額請求の計算例。
中級読了 8 分
DynamoDB オンデマンドスループットの実測
DynamoDB のオンデマンドスループットを実測。新規テーブルの書き込み上限 4,000/秒、スロットリングなしの読み取り 12,762/秒、負荷の下で上限がどう伸びたか。
中級読了 5 分
DynamoDB Auto Scaling (オートスケーリング) の設定方法
プロビジョンドキャパシティで DynamoDB のオートスケーリングを設定する方法。コンソールと CLI の手順、ターゲット使用率と最小/最大の選び方、それでも起きるスロットリング。
中級読了 9 分
DynamoDB のスロットリングとその直し方
DynamoDB がスロットリングする理由: 文書化された4つの原因、パーティションあたり読み取り 3,000 ユニット・書き込み 1,000 ユニットの上限、オンデマンドの立ち上がり、そして原因ごとの対処。
中級読了 10 分
DynamoDBテーブルのサイズとアイテム数を取得する方法
DynamoDBテーブルのサイズとアイテム数を、最大6時間遅れるDescribeTableの無料の推定値か、Scan Select COUNTによる正確なカウントで取得する。
初級読了 5 分
DynamoDB Global Tables:マルチリージョンレプリケーション解説
DynamoDB グローバルテーブル。マルチリージョンのアクティブ-アクティブ複製、last-writer-wins の競合解決、MREC と MRSC の整合性モード、RPO、99.999% の SLA。
上級読了 7 分
DynamoDB のバックアップと Point-in-Time Recovery ガイド
DynamoDBのバックアップとポイントインタイムリカバリ:オンデマンドのスナップショットと継続的なPITR、1〜35日のウィンドウ、リストアのコマンド、そしてリストア後に再適用すべきもの。
中級読了 7 分
理解度チェッククイズに挑戦
このセクションで学んだ内容を確認しましょう。

DynamoDB の内部。パーティションキー、物理パーティション、アダプティブキャパシティ、ストレージ、リクエストルーティングと GSI がどう動くか、そして Dynamo 論文とどう違うか。

8 件中 0 件読了クイズ
DynamoDB のパーティションキーの仕組み
DynamoDB のパーティションキーの仕組み。キーを物理パーティションへ対応づけるハッシュ、キー選びがスループットを決める理由、ホットパーティションの避け方。
中級読了 8 分
DynamoDB の物理パーティション
DynamoDB の物理パーティション:10 GB、3,000 読み取りユニット、1,000 書き込みユニットの上限、パーティション分割の仕組み、キャパシティに余裕があってもホットキーがスロットリングする理由。
上級読了 8 分
DynamoDB アダプティブキャパシティー:できることとできないこと
DynamoDB のバーストキャパシティーとアダプティブキャパシティー。スパイクを吸収し、ホットパーティションを自動的にブーストする仕組みと、どちらも引き上げられない項目ごとの上限。
上級読了 6 分
DynamoDB のストレージ内部の仕組み
DynamoDB がデータをどう保存するか。パーティションキーのハッシュ化、パーティションのアイテムをキー順に保つ B-tree、そして 3 つの AZ にまたがるリーダーベースのクォーラムレプリケーション。
上級読了 8 分
DynamoDB のリクエストルーティングの仕組み
DynamoDB のリクエストルーティングの仕組み:ルーターの一群が各リクエストを認証し、キーをハッシュ化して、それを所有するパーティションのレプリカへ送ります。
上級読了 7 分
DynamoDB の GSI は内部的にどう保存されるか
DynamoDB の GSI がどう保存されるか。独自のパーティション、ベーステーブルからの非同期更新、射影された属性だけ、そしてテーブルとは別のキャパシティ。
上級読了 9 分
Dynamo 論文から DynamoDB へ
2007 年の Dynamo 論文と DynamoDB の比較。リング、sloppy クォーラム、ベクタークロックが何をしていたか、そして 2022 年の DynamoDB 論文が何がそれらを置き換えたと述べているか。
上級読了 7 分
理解度チェッククイズに挑戦
このセクションで学んだ内容を確認しましょう。

その他の DynamoDB リソース

実践してみる準備はできましたか?

自分の DynamoDB テーブルを閲覧・クエリ・モデリング — DynoTable の SQL Workbench と AI エージェントはあなたの AWS 上で動作。30日間無料トライアル、クレジットカード不要 — その後は期限のない Free プラン。