AWS DynamoDBサービスの利用


 
AWSで提供されているサービスの一つであるDynamoDBを用いて、データの書き出しや書き込みを行いました。
 
今回もDocker imageであるtomomano/labcのhandsonフォルダ中のファイルを利用させていただきました。





 

スタックのデプロイ

 
まず、handsonフォルダ内に用意されたファイルを利用するために、以下のよにプロジェクトのディレクトリに移動しました。

$ cd handson/serverless/dynamodb

 
次にvenvを用いて、Pythonの依存ライブラリをインストールしました。

$ python3 -m venv .env
$ source .env/bin/activate
$ pip install -r requirement.txt

 
最後にデプロイを実行しました。

$ cdk deploy


 
デプロイに成功するとターミナル上に以下のような出力が表示されます。
 

 
ここに表示されている"SimpleDynamoDb.TableName = " 以降の文字列は今後のコマンド入力に使用します。

 
また、AWSコンソールのDynamoDBに以下のようなテーブルが追加されました。
 



 

データの書き込み

 
handsonのフォルダ内には4つのペアの要素を書き込むためのファイルが用意されています。
 
以下のコマンドによりDynamoDBに要素を書き込みました。

コマンド内には先ほどターミナルに表示された文字列が必要です。

$ python simple_write.py <SimpleDynamoDb.TableName>

 
これにより、コンソールに以下のようなアイテムが追加されました。
 




 

データの読み出し

 
先ほど書き込んだデータを読み出すには以下のコマンドにより行うことができます。

$ python simple_read.py <SimpleDynamoDb.TableName>

 
出力結果は以下のようになりました。
 

 
上の画像より、書き込んだ4つのペアの要素が出力されているのが確認できます。




 

大量のデータの読み書き

 
handsonフォルダ内に用意されているbatch_rw.pyを用いて一度に大量のデータを書き込むことができます。
 
以下のコマンドで1000個のデータを書き込むことができます。

$ python batch_rw.py <SimpleDynamoDb.TableName> 1000

 
ターミナル上には以下が出力されました。
 

 
上の画像より、DynamoDBに1000個のデータが書き込まれたことがわかります。


 
データの読み込みには以下のコマンドを用いることにより行うことができます。
 
また、ageが2以下のデータに絞って出力するようにしました。

$ python batch_rw.py <SimpleDynamoDb.TableName> search_under_age 2

 
結果は以下のようになりました。
 

上の画像より、引数の指示通りに出力されたこを確認することができます。





 

スタックの削除

 
スタックの削除は以下のコマンドより行うことができます。
 

$ cdk destroy