DynamoDB Accelerator(DAX)がよくわからなかったので勉強しました。
DynamoDB DAXの公式ドキュメントはこちらです。 ]
DynamoDB DAXは以下のようなケースで使えるようです。
・同じデータを何度も読み取る必要のあるアプリケーションの場合
・コストを抑えたい場合
・大きいデータセットに繰り返し読み取り処理を行う場合
以下作業メモです。
DynamoDBを作成する前に 9111ポートとSSHポート22を空けるセキュリティグループを作っておきます。
次にDynamoDB DAXを作成しました。
次にGitHubにDynamoDB検証に使えるリポジトリがあったので、EC2を立ち上げてGolangをインストールしてからgo getコマンドでEC2に入れました。
上記リポジトリを入れてから下記コマンドをEC2で実行し、DynamoDBにテーブル作成とデータ挿入を行います。
go run ~/go/src/github.com/aws-samples/aws-dax-go-sample/try_dax.go -service dynamodb -command create-table go run ~/go/src/github.com/aws-samples/aws-dax-go-sample/try_dax.go -service dynamodb -command put-item
次に以下のコマンドでDynamoDBからデータを取得します。
go run ~/go/src/github.com/aws-samples/aws-dax-go-sample/try_dax.go -service dynamodb -command get-item go run ~/go/src/github.com/aws-samples/aws-dax-go-sample/try_dax.go -service dynamodb -command query go run ~/go/src/github.com/aws-samples/aws-dax-go-sample/try_dax.go -service dynamodb -command scan
ターミナルに以下のように取得時間が表示されました。
[root@ip-172-31-17-156 ec2-user]# go run ~/go/src/github.com/aws-samples/aws-dax-go-sample/try_dax.go -service dynamodb -command get-item Total Time: 9.835309386s, Avg Time: 393.412375ms [root@ip-172-31-17-156 ec2-user]# go run ~/go/src/github.com/aws-samples/aws-dax-go-sample/try_dax.go -service dynamodb -command query Total Time: 176.041692ms, Avg Time: 7.041667ms [root@ip-172-31-17-156 ec2-user]# go run ~/go/src/github.com/aws-samples/aws-dax-go-sample/try_dax.go -service dynamodb -command scan Total Time: 204.441134ms, Avg Time: 8.177645ms
次にDynamoDBのマネジメントコンソールからDAXのエンドポイントをコピーし、以下のコマンドを実行してDynamoDBではなくDAXに対して読み取り処理を実行しました。
[root@ip-172-31-17-156 ec2-user]# go run ~/go/src/github.com/aws-samples/aws-dax-go-sample/try_dax.go -service dax -command get-item -endpoint daxs://test202109.gs14wu.dax-clusters.us-east-1.amazonaws.com Total Time: 8.631963432s, Avg Time: 345.278537ms [root@ip-172-31-17-156 ec2-user]# go run ~/go/src/github.com/aws-samples/aws-dax-go-sample/try_dax.go -service dax -command query -endpoint daxs://test202109.gs14wu.dax-clusters.us-east-1.amazonaws.com Total Time: 114.967814ms, Avg Time: 10.598712ms [root@ip-172-31-17-156 ec2-user]# go run ~/go/src/github.com/aws-samples/aws-dax-go-sample/try_dax.go -service dax -command scan -endpoint daxs://test202109.gs14wu.dax-clusters.us-east-1.amazonaws.com Total Time: 145.015295ms, Avg Time: 8.800611ms
DAXエンドポイントからもデータが取得でき、取得時間が短くなりました。
作業メモは以上です。