【Docker】DynamoDB localをローカル起動する方法【管理画面付き】
前書き:DynamoDB、はじめまして
本記事では、DynamoDBをローカルで起動する方法を説明します。DynamoDBは、AWSが提供するNoSQLデータベースです。サーバーレスのKey Valueストアであり、フルマネージドサービスです。
検証環境
本記事は、Ubuntu環境で検証しています。Docker Composeを使用するため、別途インストールが必要です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
.-:/++oooo++/:-. nao@nao `:/oooooooooooooooooo/-` ------- -/oooooooooooooooooooo+ooo/- OS: Ubuntu Cinnamon 23.04 x86_64 .+oooooooooooooooooo+/-`.ooooo+. Host: B450 I AORUS PRO WIFI :oooooooooooo+//:://++:. .ooooooo: Kernel: 6.2.0-32-generic /oooooooooo+o:`.----.``./+/oooooooo/ Uptime: 1 hour, 31 mins /ooooooooo+. +ooooooooo+:``/ooooooooo/ Packages: 5364 (dpkg), 2 (brew), 4 ( .ooooooooo: .+ooooooooooooo- -ooooooooo. Shell: bash 5.2.15 /oooooo/o+ .ooooooo:`+oo+ooo- :oooooooo/ Resolution: 2560x1080 ooo+:. .o: :ooooo:` .+/. ./o+:/ooooooooo DE: Cinnamon 5.6.7 oooo/-`.o: :ooo/` `/+. ./.:ooooooooo WM: Mutter (Muffin) /oooooo+o+``++. `:+- /oooooooo/ WM Theme: Green-Submarine (Default) .ooooooooo/`` -+:` :ooooooooo. Theme: QogirBudgie-Dark [GTK2/3] /ooooooooo+--+/` .+ooooooooo/ Icons: Yaru-red-dark [GTK2/3] /ooooooooooo+.` `.:++:oooooooo/ Terminal: gnome-terminal :oooooooooooooo++++oo+-` .ooooooo: CPU: AMD Ryzen 5 3400G (8) @ 3.700GH .+ooooooooooooooooooo+:..ooooo+. GPU: AMD ATI Radeon Vega Series / Ra -/oooooooooooooooooooooooo/- Memory: 6046MiB / 30012MiB `-/oooooooooooooooooo/:` .-:/++oooo++/:-. |
1 2 |
$ docker compose version Docker Compose version v2.6.1 |
Docker上でDynamoDB本体と管理画面を立ち上げ
DynamoDBをローカル上で立ち上げる方法がAWS公式サイトに書かれています。jarファイルをローカルにインストールしてDynamoDBを立ち上げる方法もありますが、JREを準備する必要があり、手間がかかります。
そこで、AWS公式が提供しているamazon/dynamodb-local(Dockerイメージ)を利用して、DynamoDBをローカルに立ち上げます。ローカルで立ち上がったDynamoDBをAWS CLIで操作するのは億劫なので、管理画面ブラウザから操作できるようにします。具体的には、aaronshaf/dynamodb-admin(Dockerイメージ)を使用します。こちらのイメージはAWS公式提供ではないので、気になる方はAWS CLIで操作しましょう。
compose.ymlの中身
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
version: '3.8' services: dynamodb-local: image: "amazon/dynamodb-local:latest" container_name: dynamodb-local ports: - "8000:8000" volumes: - "./dynamodb:/home/dynamodblocal/data" working_dir: /home/dynamodblocal command: "-jar DynamoDBLocal.jar -sharedDb -dbPath ./data" dynamodb-admin: image: "aaronshaf/dynamodb-admin:latest" tty: true container_name: dynamodb-admin ports: - "8001:8001" depends_on: - dynamodb-local environment: DYNAMO_ENDPOINT: http://dynamodb-local:8000 |
実行結果
以下のコマンドでDockerをバックグラウンド実行する。初回実行時は、イメージの取得から始まるため、時間がかかります。
1 |
$ docker compose up -d |
Dockerの起動が確認できたら、http://127.0.0.1:8001にアクセスします。DynamoDBの管理画面が表示されていれば成功です。
余談ですが、DynamoDB localは内部的にSQLiteを使用しています。今回示した例ではファイルにデータを書き込みますが、インメモリーに書き込むこともできます。その場合は、dynamodb-localイメージ(compose.yml)のcommandを以下の設定に変更します。
1 |
command: "-jar DynamoDBLocal.jar -sharedDb -inMemory" |
最後に
AWSの勉強を真面目に始めましたが、サービスが多すぎて覚えられない。
ロシア人と国際結婚した地方エンジニア。
小学〜大学院、就職の全てが新潟。
大学の専攻は福祉工学だったのに、エンジニアとして就職。新卒入社した会社ではOS開発や半導体露光装置ソフトを開発。現在はサーバーサイドエンジニアとして修行中。HR/HM(メタル)とロシア妻が好き。サイトに関するお問い合わせやTwitterフォローは、お気軽にどうぞ。