DynamoDB はオープンソースですか?

いいえ。DynamoDB はプロプライエタリなフルマネージドの AWS サービスです。ソースコードは公開されておらず、本番のエンジンをセルフホストすることはできません。ローカル開発向けには、AWS が無料でダウンロードできるエミュレーターの DynamoDB Local を提供しており、いくつかのサードパーティのデータベースが、自分で動かせる DynamoDB 互換の API を掲げています。

実務上の意味

DynamoDB は AWS の中でしか動きません。API として利用するものであり、ダウンロード、ライセンス、検査、運用の対象となるサーバーソフトウェアはなく、コミュニティエディションもありません。それはそのまま売りでもあります。セットアップ、パッチ適用、レプリケーション、スケーリング、バックアップは AWS が扱い、このサービスにはバージョンもメンテナンスウィンドウもありません。

DynamoDB Local は無料だが、オープンではない

AWS は DynamoDB Local を提供しています。これは自分のコンピューター上で Docker イメージ、Java アーカイブ、Apache Maven の依存関係として動く、ダウンロード版の DynamoDB です。無料で使え、オフラインでも動きますが、開発とテストのためのエミュレーターであり、本番のエンジンではなく、オープンソースでもありません。

エミュレーターはエンジンではない

その差は、ライセンス以上に重要です。エミュレーターはキャパシティをまったく強制しないからです。1 RCU でテーブルを作り、4 KB をわずかに下回るアイテムを保存し、それを強整合読み取りで逐次ループして読み返してみます。

for (let i = 0; i < 500; i++) {
  await client.send(
    new GetItemCommand({TableName: 'demo', Key: {pk: {S: 'HOT'}}, ConsistentRead: true})
  );
}

500 回の読み取りが 353 ミリ秒で終わり、何ひとつスロットリングされませんでした。1 に対してプロビジョニングされたテーブルに、毎秒およそ 1,400 回の強整合読み取りです。エミュレーターは ProvisionedThroughput を受け付け、そして無視します。

本物のサービスに対して同じ形のループを回すと、蓄積したバーストクレジットが尽きた時点、49 回目の読み取りでスロットリングされます。

つまりローカルで緑のままの負荷テストは、キャパシティについて何も教えてくれません。リトライとバックオフのローカルテストも同様です。スロットリングされるものが何もないので、リトライも起きないからです。

互換の代替

DynamoDB の API はよく文書化されているので、いくつかのオープンソースやサードパーティのデータベースが DynamoDB 互換のエンドポイントを実装しています。互換性は機能によってまちまちなので、いずれかをそのまま差し替えられるものとして扱う前に、依存している操作(トランザクション、ストリーム、セカンダリインデックス)を検証してください。

さらに詳しく

DynamoDB Local ガイドでエミュレーターをローカルに動かし、式ビルダーでクエリをビジュアルに組み立て、DynoTable をダウンロードしてください。DynoTable は AWS とローカルの両方のエンドポイントに接続します。

参考資料

最終検証日 2026-07-13、上記にリンクした公式 AWS ドキュメントに照らして確認しました。

2026-07-28 に、Node v24.18.0 上の @aws-sdk/client-dynamodb 3.1095.0 で DynamoDB Local 3.3.0 に対して測定しました。49 回という実サービスの数字は、us-east-1 の DynamoDB に対して以前に行った当方の再現によるものです。

Console なしで DynamoDB を扱う

DynamoDB では実行できない本物の SQL(JOINs、GROUP BY、集計)を実行する高速な DynamoDB デスクトップクライアント。ビジュアル編集と、あなた自身の Bedrock キーで動く AI エージェントを備えています。

30日間無料トライアル、クレジットカード不要 — その後は期限のない Free プラン。