Amazon Web Services ブログ

Redis 用の Amazon ElastiCache を使用したアプリケーションパフォーマンスの向上とコストの削減

シニアソフトウェア開発エンジニアの Shawn Wang 氏、ソフトウェア開発エンジニアの Maddy Olson 氏、およびソフトウェアエンジニアリング担当シニアマネージャーの Itay Maoz 氏による寄稿。

Redis 用の Amazon ElastiCache を使用すると、クラウド規模で非常に低いレイテンシーで最高のパフォーマンスと最小限の管理コストを実現できます。Redis の高性能、シンプルさ、そして多様なデータ構造サポートは、最も人気のある NoSQL キーバリューストアとなっています。キャッシング、リアルタイム分析、ゲームのリーダーボード、チャットやメッセージングのいずれの場合であっても、スピードが勝ります。Redis 用 Amazon ElastiCache で簡単に実現できます。

昨年、弊社は ElastiCache が AWS でさらに優れたパフォーマンス実現への道を歩み始めました。ElastiCache で M5 および R5 インスタンスのサポートを追加する一環として、AWS Nitro ベースシステムを使って、Redis 用のElastiCache を実行するためにインスタンスを最適化しました。Amazon ベース Linux イメージを最適化することで、M5 と R5 のネットワークパフォーマンスをチューニングしました。この結果は有望でした。R5 では、R4 と比較して、1 秒あたり最大 144% を超えるトランザクションを達成しました。平均 (p50) とテール (p99) のレイテンシーを最大 23% 削減しました。それ以来、多くの大規模な ElastiCache のお客様は、より良く、より速く、そしてより安価な R5 ノードを利用してきました。

Redis 5.0.3 用の Amazon ElastiCache の拡張 I/O 処理

本日、Redis 5.0.3 用の Amazon ElastiCache 内の I/O 要求の処理を改善するための動的ネットワーク処理を発表します。この機能により、Redis 用の Amazon ElastiCache はノードあたり最大 83% のスループット向上、そして最大 47% のレイテンシー低減を実現します。これは、前述した M5 と R5 のパフォーマンス改善を超えたものです。4 個以上の vCPU を備えたノードで利用可能な増強した CPU 能力を利用することで、Redis 用の ElastiCache はネットワーク処理をオフロードすることができますが、これは多くの場合 Redis ワークロードのボトルネックになります。この方法を選択すると、レイテンシーが低減されてスループットが向上します。

1,470 万のユニークキー、16 バイトのキー値の幅、200 バイトの文字列値、80% 取得、20% のセット、およびコマンドパイプラインなしで Redis ベンチマークを実行しました。すべてのテストは、空の Redis データベースから始めました。15個 のAmazon EC2 インスタンスクライアントと同じアベイラビリティーゾーンにおいて、最適化された R5 インスタンスを使用しました。

100個 のクライアントで、最大 56% のスループット向上と、p50 レイテンシーでわずかな改善が見られました。800 個のクライアントとの高い競合において、拡張した I/O 処理により、さらに優れたスループット向上 (最大 83%) をもたらしました。
拡張 I/O 処理により、クライアント側のレイテンシーも最大 47% 低減されました (p50)。詳しくは、以下の表をご参照ください。

100個 のクライアントによるテスト

R5 ノード

拡張 I/O 処理前

(Redis 5.0.0 用の ElastiCache 以前)

拡張 I/O 処理の使用

(Redis 5.0.3 用の ElastiCache)

スループット向上
Xlarge 215,000 RPS 245,000 RPS 13%
2Xlarge 208, 000 RPS 327,000 RPS 56%
4Xlarge 232,000 RPS 347,000 RPS 49%
12Xlarge 252,000 RPS 389,000 RPS 54%
24Xlarge 259,000 RPS 407,000 RPS 56%

次の表に示すように、同時接続数が多い場合ではスループットはさらに向上しました。

800 個のクライアントによるテスト

R5 ノード

拡張 I/O 処理前

(Redis 5.0.0 用の ElastiCache 以前)

拡張 I/O 処理の使用

(Redis 5.0.3 用の ElastiCache)

スループット向上
Xlarge 209,000 RPS 238,000 RPS 13%
2Xlarge 201,000 RPS 360,000 RPS 78%
4Xlarge 247,000 RPS 453,000 RPS 83%
12Xlarge 257,000 RPS 452,000 RPS 75%
24Xlarge 254,000 RPS 434,000 RPS 70%

概要

Redis 用の Amazon ElastiCache でネットワーク処理が改善されたことをお知らせします。これで、大規模ノードや追加シャードに多くの費用を投入することなく、既存のノードからより高いスループットを得ることができます。我々は Redis のパフォーマンスを最適化するために投資を続け、その利益をお客様に提供します。Redis 用の ElastiCacheを使い始めるには、AWS マネジメントコンソールをご参照ださい。

 


著者について

Ruchita Arora 氏は、Amazon ElastiCache のシニアプロダクトマネージャーです。