bucket-sort logo bucket-sort

プログラミングとインフラエンジニアリングの覚え書き

  • Posts
  • About
  • Contact
  1. Home
  2. All Posts
  3. Dockerを使ってDynamoDB LocalをWSL上のUbuntuで動かす

Dockerを使ってDynamoDB LocalをWSL上のUbuntuで動かす

Feb 28, 2026 DynamoDB , AWS bucket-sort

Amazon DynamoDB は AWS が提供するクラウド専用のマネージドサービスであり、 一般的な Linux サーバーにインストールして本番運用することはできません。

その理由としては以下のようなことがあります。

  • 分散アーキテクチャ前提
  • AWS 内部の専用インフラで動作
  • ストレージやレプリケーションも AWS 側で制御

しかし例外として、開発用途に限りローカル環境で実行させることが可能です。

DynamoDB Local とは

AWS が提供している DynamoDB のローカル実行版です。

  • Java ベース
  • Docker でも起動可能
  • Linux サーバー上でも動く
  • ただし本番用途ではない

Setting up DynamoDB local (downloadable version) - Amazon DynamoDB   https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html

以下に DynamoDB Local のインストール手順を覚え書きとして記します。

実行環境は WSL2 上の Ubuntu です。Docker を使えば簡単に動かせます。

AWS CLI v2のインストール

まずは AWS CLI をインストールします。

依存パッケージを確認
$ sudo apt update
$ sudo apt install unzip curl -y

AWS CLI v2をダウンロード
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

解凍してインストール
$ unzip awscliv2.zip
$ sudo ./aws/install

動作確認
$ aws --version
aws-cli/2.31.34 Python/3.13.9 Linux/6.6.87.2-microsoft-standard-WSL2 exe/x86_64.ubuntu.24

アンインストール (必要なとき)
$ sudo ./aws/install --bin-dir /usr/local/bin --install-dir /usr/local/aws-cli --remove

AWS CLI の設定 (DynamoDB Local用)

AWSアカウントがなくてもOKです。適当なダミーキーを設定します。

$ aws configure --profile local-dynamo
AWS Access Key ID [None]: dummy
AWS Secret Access Key [None]: dummy
Default region name [None]: ap-northeast-1
Default output format [None]: json

Dockerを使った実行

注意点

  • 永続化したい場合は -dbPath オプションを指定してローカルディレクトリをマウント
  • AWS 本番とは一部仕様が異なる(特に認証・制限系)
  • パフォーマンスやスループットの概念はシミュレートされない

永続化しない場合

$ docker run -d -p 8000:8000 amazon/dynamodb-local

永続化する場合

(1) 保存用ディレクトリを作成(WSL 内)

$ mkdir -p ~/dynamodb_local/data

(2) 永続化付きで起動

$ docker run -d --name ddb-local \
  -p 8000:8000 \
  --restart unless-stopped \
  -v "$HOME/dynamodb_local/data:/home/dynamodblocal/data" \
  amazon/dynamodb-local \
  -jar DynamoDBLocal.jar -sharedDb -dbPath /home/dynamodblocal/data

オプションの意味

  • -v ...:/home/dynamodblocal/data コンテナのDB保存先をホスト(WSL)にマウント
  • -sharedDb プロファイル/認証情報に依存しない単一DBに統一(開発時はこれが便利)
  • --restart unless-stopped WSL 再起動後も自動再起動

(3) 動作確認

$ aws dynamodb list-tables \
  --endpoint-url http://localhost:8000 \
  --profile local-dynamo
{
    "TableNames": []
}

テーブルを作ってコンテナを再起動しても、~/dynamodb_local/data に保存されるので残ります。

$ docker restart ddb-local

Windows側のパスを直接マウントしたい場合

  • -v "/mnt/c/Users/<YourName>/dynamodb_data:/home/dynamodblocal/data" のように /mnt/c 形式で指定する
  • 権限やパフォーマンスの都合で、WSL内のホームディレクトリに置くのが無難

docker-compose 派なら

# docker-compose.yml
services:
  dynamodb:
    image: amazon/dynamodb-local
    container_name: ddb-local
    ports: ["8000:8000"]
    command: -jar DynamoDBLocal.jar -sharedDb -dbPath /home/dynamodblocal/data
    volumes:
      - ./data:/home/dynamodblocal/data
    restart: unless-stopped
$ mkdir -p ./data
$ docker compose up -d

確認
$ aws dynamodb list-tables \
  --endpoint-url http://localhost:8000 \
  --profile local-dynamo
DynamoDB AWS NoSQL Docker WSL
← Tailwind CSSの覚え書き RDBのつもりでlaravel-dynamodbを使うとハマりそうなポイントを整理する →

Related Posts

  • 監査ログをDynamoDBに保存するlaravel-dynamodb-auditingパッケージの概要まとめ Mar 3, 2026
  • RDBのつもりでlaravel-dynamodbを使うとハマりそうなポイントを整理する Mar 1, 2026
  • RDBMS経験者がDynamoDBを理解するための整理メモ Jan 5, 2026
  • LaravelでDynamoDBを使うには?モジュールを調べてみた Jan 7, 2026

Table of Contents

  • DynamoDB Local とは
  • AWS CLI v2のインストール
  • AWS CLI の設定 (DynamoDB Local用)
  • Dockerを使った実行
    • 永続化しない場合
    • 永続化する場合

Recent Posts

  • Laravel の Event / Listener で Pub/Sub を実装する Apr 2, 2026
  • [C#] delegate と event の仕組みを整理する Apr 1, 2026
  • Pub/Sub パターンとは何か Mar 31, 2026
  • PHP/Laravel で値の状態を判定するヘルパ関数まとめ Mar 30, 2026
  • Filament の dehydrated メソッドとは何か Mar 29, 2026

Categories

  • AWS27
  • C#22
  • .NET20
  • Laravel16
  • Linux12
  • Apache8
  • MySQL8
  • PHP8
  • DynamoDB6
  • Nginx5
  • WordPress4
  • インフラ4
  • Hugo3
  • セキュリティ3
  • .NET Framework1
  • Aurora1
  • Filament1
  • Git1
  • SQS1

Tags

  • AWS
  • C#
  • .NET
  • Laravel
  • PHP
  • MySQL
  • セキュリティ
  • Linux
  • Apache
  • Code Snippet
  • DynamoDB
  • NoSQL
  • PHP-FPM
  • RDS
  • DoS
  • Nginx
  • Windows
  • WordPress
  • パフォーマンス
  • 監視
  • Amazon Linux 2023
  • CMS
  • Docker
  • Ipset
  • Iptables
  • OPCache
  • Webサーバー
  • 認可
  • Aurora
  • Blade
Powered by Hugo & Explore Theme.