ドキュメントの説明
Q: アクティブなリードレプリカの状態はどのように把握できますか?
デプロイ済みのすべてのキャッシュクラスター (リードレプリカを含む) のリストを取得するには、標準の DescribeCacheClusters API を使用するか、Amazon ElastiCache マネジメントコンソールの [Cache Clusters] タブをクリックします。
Amazon ElastiCache では、リードレプリカのレプリケーション状態を監視し、何らかの理由でレプリケーションが停止した場合は、[Replication State] フィールドが [Error] に更新されます。Redis エンジンによってスローされた、対応するエラーの詳細を確認するには、[Replication Error (レプリケーションエラー)] フィールドを調べます。この情報に基づいて、回復のための適切な措置をとります。レプリケーションの問題を解決する方法の詳細については、Amazon ElastiCache ユーザーガイドの「Troubleshooting a Read Replica problem」セクションをご覧ください。レプリケーションエラーが解決すると、[Replication State (レプリケーションステータス)] は [Replicating (レプリケーション中)] に変化します。Amazon ElastiCache では、AWS マネジメントコンソールまたは Amazon CloudWatch API を介して Amazon CloudWatch メトリクス (「Replica Lag」) を使用し、リードレプリカがプライマリからどのくらい遅れているかを確認できます。
よくある質問 - Amazon ElastiCache | AWS
Redis のメトリクス - Amazon ElastiCache for Redis
メトリクス 説明 単位 ReplicationLag このメトリクスは、リードレプリカとして実行中のノードにのみ適用できます。レプリカのプライマリノードからの変更適用の進行状況を秒で表します。Redis エンジンバージョン 5.0.6 以降の場合、ラグはミリ秒単位で測定できます。 Seconds
負荷をかける
- 負荷をかけて、レプリケーションラグを見てみる
$ chmod u+x ycsb_redis.sh
$ ./ycsb_redis.sh
- レプリケーションラグは概ね 1ms 以下となった(以下のワークロード下では)
- ElastiCache(Redis)は3シャード、1シャードあたり2レプリカの構成。
bash スクリプトと YCSB の workload 設定
- YCSB のインストール方法
- ycsb_redis.sh
#!/bin/bash -x export LC_ALL=C cd YCSB ENDPOINT=${ENDPOINT:-redis-cluster-no-auth2.******.clustercfg.apne1.cache.amazonaws.com} WORKLOAD=${WORKLOAD:-workloads/workload_redis} PORT=${PORT:-6379} CLUSTER_MODE=${CLUSTER_MODE:-true} while : do ./bin/ycsb load redis -s -P $WORKLOAD} -p "${ENDPOINT}" -p "redis.port=${PORT}" -p "redis.cluster=${CLUSTER_MODE}" done
- YCSB/workloads/workload_redis
recordcount=100000 operationcount=1000000 workload=com.yahoo.ycsb.workloads.CoreWorkload readallfields=true readproportion=0.5 updateproportion=0.5 scanproportion=0 insertproportion=0 requestdistribution=zipfian