Amazon Keyspaces の Auto Scaling でスケールアウトするまでの所要時間を実測してみた。
キャパシティモードがプロビジョンドのテーブル最小 RCU/WCU: 2000、最大 RCU/WCU: 20,000、目標使用率: 70% に対して、YCSB から負荷をかけてみて、3〜4分程度でAuto Scaling が発動した。
前提
Amazon Keyspaces
- テーブルを作成する
$ cqlsh cassandra.ap-northeast-1.amazonaws.com 9142 --ssl cqlsh> create keyspace ycsb WITH REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor': 3 }; cqlsh> USE ycsb; cqlsh> create table usertable ( y_id varchar primary key, field0 varchar, field1 varchar, field2 varchar, field3 varchar, field4 varchar, field5 varchar, field6 varchar, field7 varchar, field8 varchar, field9 varchar);
- テーブルのキャパシティ設定
EC2 から YCSB で負荷をかける
recordcount=100000 operationcount=1000000 workload=site.ycsb.workloads.CoreWorkload readallfields=true readproportion=0.95 updateproportion=0.05 scanproportion=0 insertproportion=0 requestdistribution=uniform
- データをロードする
$ cd ~/YCSB/ $ ./bin/ycsb load cassandra-cql -p hosts=cassandra.ap-northeast-1.amazonaws.com -p port=9142 -P ./workloads/workloada_keyspaces -s \ -threads 8 -p cassandra.writeconsistencylevel=LOCAL_QUORUM -p cassandra.ssl=true \ -jvm-args=" -Djavax.net.ssl.trustStore=/home/ec2-user/.cassandra/cassandra_truststore.jks -Djavax.net.ssl.trustStorePassword=amazon"
- 負荷をかける
$ cd ~/YCSB/ $ ./bin/ycsb run cassandra-cql -p hosts=cassandra.ap-northeast-1.amazonaws.com -p port=9142 -P ./workloads/workloada_keyspaces -s \ -threads 100 -p cassandra.writeconsistencylevel=LOCAL_QUORUM -p cassandra.ssl=true \ -p cassandra.coreconnections=100 -p cassandra.maxconnections=100 \ -jvm-args=" -Djavax.net.ssl.trustStore=/home/ec2-user/.cassandra/cassandra_truststore.jks -Djavax.net.ssl.trustStorePassword=amazon"