自分で設計した Amazon ElastiCache for Redis クラスターに適したインスタンスタイプとノードサイズを選択しようと考えています。
簡単な説明
自分の ElastiCache クラスターのノードサイズと自分のクラスター設定を選択する際は、次のアクションを取ります。
- 適切なノードタイプを選択する。
- ノードのベンチマーキングをする。
- 保存するデータ量を決定する。
- 予想されるネットワークトラフィックを判断する。
- 適切なクラスターモードを選択する。
解決策
適切なノードタイプを選択する
ユースケースに適した量のメモリと CPU 処理能力があるノードタイプを選択します。
ノードのベンチマーキングをする
予想されるワークロードでのインスタンスパフォーマンスを見積もるため、redis-benchmark ユーティリティを使用して、ノードのベンチマーキングをします。詳細については、Redis ウェブサイトの「Redis benchmark」を参照してください。また、「Five workload characteristics to consider when right sizing Amazon ElastiCache Redis clusters」も参照してください。
ベンチマークテストを実行する際は、アプリケーショントラフィックのワークロードをレプリケートし、リクエスト数、キー分散、アイテムサイズを含めます。また、メモリ使用量、プロセッサー使用率、アプリケーションデータリクエストに関する Amazon CloudWatch メトリクスを監視します。詳細については、「ノードサイズの選択」を参照してください。
保存するデータ量を決定する
保存する予定のデータ量と Redis バージョンのリザーブドメモリパラメーターによって、選択するインスタンスタイプとノードサイズが決まります。リザーブドメモリパラメーターの詳細については、「リザーブドメモリ管理パラメーターの指定」を参照してください。
予想されるネットワークトラフィックを判断する
選択したノードタイプで、送信されるデータ量を管理できることと、ネットワークトラフィックの最大値に達しないことを確実にします。ElastiCache ノードの最大スループットを判断するには、ベンチマークテストを同様の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスで実行します。たとえば、cache.m4.large ノードの場合は、ベンチマークテストを Amazon EC2 m4.large インスタンスで実行します。
ベンチマークテストでは、クライアントと Redis ノードとの間で送信できる帯域幅がどれくらいかも推定されます。ネットワークの最大値に達すると、帯域幅グラフに平らな線が現れます。結果として、ハードウェアも最大クォータに達します。
バースト可能なネットワークパフォーマンスを備えたノードインスタンスタイプの場合、バースト帯域幅 (Gbps) が短時間しか持続しません。予想されるネットワークトラフィックを管理できるノードタイプについて、より正確に判断するには、ベースライン帯域幅 (Gbps) を確認します。ノードタイプのベースラインとバースト帯域幅を確認するには、現行世代の General テーブルを参照してください。実際のトラフィックがベースライン帯域幅 (Gbps) に近いか上回っている場合、アプリケーションのレイテンシーとタイムアウトが増加する可能性があります。ネットワーク帯域幅を広げるには、スケールアップかスケールアウトをします。
ネットワークパフォーマンスはクライアントにも適用されます。t2.micro で、ネットワークパフォーマンスが低から中程度で、データが m4.10xlarge に送信されるクライアントの場合は、まずクライアントの最大スループットまで使用してください。
適切なクラスターモードを選択する
予想されるネットワークトラフィックがどのくらいかに基づいて、適切なクラスターモードを選択します。