ablog

不器用で落着きのない技術者のメモ

Amazon DynamoDB に負荷をかけてみる

YCSBでDynamoDBを殴ってみた | DevelopersIO を参考に Amazon DynamoDB に負荷をかけてみた。

セットアップ

DynamoDBのセットアップ
  • テーブルを作成する
    • テーブル名: usertable
    • プライマリパーティションキー:firstname(文字列)
JDKのインストール
$ sudo yum -y install java-1.7.0-openjdk-devel git
Mavenの取得
  • Mavenのダウンロード
curl -O http://ftp.tsukuba.wide.ad.jp/software/apache/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.tar.gz
  • 展開する
$ tar xzvf apache-maven-3.5.0-bin.tar.gz
$ vi .bash_profile
MAVEN_HOME=~/apache-maven-3.5.0
PATH=$PATH:$MAVEN_HOME/bin
 $ source .bash_profile
YCSBのダウンロードとビルド
$ git clone https://github.com/brianfrankcooper/YCSB.git
$ cd YCSB/
$ mvn clean package
  • ワークロードの設定
$ cd ~/YCSB/workloads/
$ cp workload first_attack
$ vi first_attack
recordcount=100
operationcount=300
workload=com.yahoo.ycsb.workloads.CoreWorkload
readallfields=true
readproportion=0.95
updateproportion=0.05
scanproportion=0
insertproportion=0
requestdistribution=zipfian
  • DynamoDBの接続設定
$ vi ~/YCSB/dynamodb/conf/dynamodb.properties
dynamodb.awsCredentialsFile = dynamodb/conf/AWSCredentials.properties
dynamodb.primaryKey = firstname
dynamodb.endpoint = http://dynamodb.us-east-1.amazonaws.com
  • クレデンシャルの設定
$ vi dynamodb/conf/AWSCredentials.properties
accessKey = <記述する>
secretKey = <記述する>
  • データをロードする
$ cd YCSB
$ ./bin/ycsb load dynamodb -P workloads/first_attack -P dynamodb/conf/dynamodb.properties

ベンチマークの実行

$ cd YCSB
$ ./bin/ycsb run dynamodb -P workloads/first_attack -P dynamodb/conf/dynamodb.properties

参考

アプリケーションのデータレイテンシーを減らすため、ほとんどの Amazon Web Services は、リクエストを行うためのリージョンのエンドポイントを提供しています。 エンドポイントは、ウェブサービスのエントリポイントとなる URL です。たとえば、https://dynamodb.us-west-2.amazonaws.com は、Amazon DynamoDB サービスのエントリポイントです。

AWS のリージョンとエンドポイント - アマゾン ウェブ サービス