kazu22002の技術覚書

PHPer, Golang, AWS エンジニアの日々

DynamoDBを理解するための訓練 ~環境構築~

amplifyを使用してアプリケーションを構築している際に、データ取得の手段で困ることがかなり発生しました。

これはデータがDynamoDBに登録されているためデータ取得の際にRDBの考え方とは別の知識が必要になっていると思いました。

NoSQLといわれる分野をセッション周りでのみしか使ってきていないため、実際のアプリケーションのデータを使用する際の勘所がありません。

いままでRDBを利用してきたためNoSQLの経験値が圧倒的に足りていません。

とりあえず使い倒して経験値を上げていこうと思います。

使用PCはmacで行なっています。

DynamoDB localの導入

DynamoDBをそのまま使うのもいいですが、色々と試したいためローカル環境の構築を行います。

docs.aws.amazon.com

今回は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

github.com

GUIを作っている人がいたので、利用させてもらいます。

npm install -g dynamodb-admin
export DYNAMO_ENDPOINT=http://localhost:8000

実行

dynamodb-admin

起動が完了した場合、URLが表示されます。表示されたURLへ移動し、テーブル追加やデータの操作を試すことができます。

とりあえず環境構築を以上にします。

テーブルやインデックス、データの操作を適当にやって学んでいこうと思います。