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 のシニアプロダクトマネージャーです。