amplifyを使用してアプリケーションを構築している際に、データ取得の手段で困ることがかなり発生しました。
これはデータがDynamoDBに登録されているためデータ取得の際にRDBの考え方とは別の知識が必要になっていると思いました。
NoSQLといわれる分野をセッション周りでのみしか使ってきていないため、実際のアプリケーションのデータを使用する際の勘所がありません。
いままでRDBを利用してきたためNoSQLの経験値が圧倒的に足りていません。
とりあえず使い倒して経験値を上げていこうと思います。
使用PCはmacで行なっています。
DynamoDB localの導入
DynamoDBをそのまま使うのもいいですが、色々と試したいためローカル環境の構築を行います。
今回はdockerを利用した環境構築になります。
version: '3.7'
services:
dynamodb-local:
image: amazon/dynamodb-local:latest
container_name: dynamodb-local
ports:
- "8000:8000"
command: -jar DynamoDBLocal.jar -dbPath /data
volumes:
- ./docker/dynamodb/data:/data
docker-compose.ymlを作成します。data部分をvolumeにして、データを保存しておきます。
docker-compose up
docker-composeを利用して、起動してDynamoDB localを利用できる環境を起動させます。
http://localhost:8000/shell/ にアクセスできれば起動完了です。
awsコマンドでテーブル作成やデータ追加をしてもいいですが、コマンドが多かったためGUIを利用します。
GUI
GUIを作っている人がいたので、利用させてもらいます。
npm install -g dynamodb-admin export DYNAMO_ENDPOINT=http://localhost:8000
実行
dynamodb-admin
起動が完了した場合、URLが表示されます。表示されたURLへ移動し、テーブル追加やデータの操作を試すことができます。
とりあえず環境構築を以上にします。
テーブルやインデックス、データの操作を適当にやって学んでいこうと思います。