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 のリージョンとエンドポイント - アマゾン ウェブ サービス