最終更新日:2025.03.17

Amazon ElastiCacheとは? Redis、Memcached、Valkeyの違いや料金体系を解説!

Webサービスを運用するうえで、ネットワークの応答時間の遅延(レイテンシー)問題は避けて通れません。そのようなレイテンシーの短縮に役立つのが、キャッシュサービスです。
AWSでは、高速なデータアクセスを実現するためのキャッシュサービスとして、Amazon ElastiCacheを提供しています。本記事では、Amazon ElastiCacheの基礎的な知識や活用例、料金例をご紹介します。

Amazon ElastiCacheとは

Amazon ElastiCacheとはAWSが提供する、フルマネージド型のインメモリキャッシュサービスです。まずは、キャッシュサービスの基本的な知識から、確認していきましょう。

キャッシュとは

キャッシュとは、一度利用したデータをメモリに保存しておくことで、再アクセス時のスピードを高速化する仕組みのことです。データを取得する際、データが保存されているストレージに毎回アクセスしていると、応答に時間がかかってしまいます。同じデータを取得する際には、ストレージにアクセスせずキャッシュにアクセスすることで、アクセスにかかる時間を短縮することが可能です。

Amazon ElastiCacheの特徴

Amazon ElastiCacheは、キャッシュの仕組みを備えたサービスです。Amazon ElasticCache最大の特徴は、高速のデータアクセスにあります。一般的なデータベースでは、ストレージに保管されているデータを取得し、メモリでデータを処理します。対してAmazon ElastiCacheは、メモリ上でデータの取得と処理をまとめて行うことで、高速の処理速度を実現しています。

Amazon ElastiCacheのエンジン:Redis、Memcached、Valkey

続いて、Amazon ElastiCacheがサポートしている3つのエンジン、Redis、Memcached、Valkeyについてご紹介します。なお、Valkeyは2024年10月に追加された新たなエンジンです。

RedisとMemcachedとの違い

まずは、RedisとMemcachedという従来エンジンの違いについて説明します。Redisは比較的多機能で複数のデータ構造をサポートしており、低レイテンシーが求められるリアルタイム分析や、データの永続性が求められるトランザクションデータなど、幅広い用途に対応しています。対してMemcachedは、シンプルさを重視して設計されています。

Valkeyとは?

Valkeyは、Redisのソースコードから開発されたインメモリデータベースです。Redisはオープンソースのデータベースとして人気を集めていましたが、Redis 7.4以降にライセンス形態が変更されることになり、従来通りにAWSのようなクラウドサービスで商用利用をすることが難しくなりました。そこでRedisの開発に携わっていた人材がRedisをフォーク(ソフトウェアのソースコードを分岐させ、独立した別のソフトウェアを開発すること)した「Valkey」を発表。AWSも、Redisと似た特徴を持つValkeyのサポートを開始することをアナウンスしました。

ValkeyがRedisよりも低価格・高パフォーマンスになることや、Redisからダウンタイムなしでアップグレードできることからも、Valkeyへの移行が推奨されています。

ここまでの内容を踏まえ、Redis、Memcached、Valkeyの主な違いを下記の通り表にまとめました。

Redis Memcached Valkey
データの型 豊富な型に対応 文字列のみ 豊富な型に対応
マルチスレッド ×
バックアップ ×
可用性(マルチAZ対応) ×

Amazon ElastiCacheの基本用語

続いて、Amazon ElastiCacheを理解するうえで知っておくべき基本用語、ノード、シャード、クラスターについてご紹介します。

ノード

ノードは、Amazon ElastiCacheにおける最小単位の要素で、データの保存・処理を行っている部分です。

エンジンにRedis、Valkeyを選択する場合、ノードは、データの読み書きを行える「プライマリノード」と読み取り専用の「レプリカノード」の2種類に分かれます。プライマリノード1つに対して、レプリカノードは5つまで組み合わせることが可能です。レプリカノードは、複数のアベイラビリティーゾーン(AZ)に配置してマルチAZ構成にできるため、プライマリノードで障害が発生した場合には、レプリカノードが処理を行うように設定できます。

シャード

AWSにおけるシャードとは、1つのプライマリノードと最大5つまでのレプリカノードから構成されるグループのことです。なお、大規模なデータベースをより速い処理速度で簡易に管理できるようにデータベースを水平分割する方法を、一般的に「シャーディング」あるいは「データベースシャード」と呼びます。

クラスター

クラスターは、シャードあるいはノードをまとめたグループのことです。RedisやValkeyでクラスターモードを有効にすると複数のシャードを保有でき、キャッシュデータを複数のシャードに分割して保存できます。これによってコストを抑えつつ、データの保存容量を増やすことが可能になります。クラスターモードが無効の場合は、クラスターが持てるシャードが1つになります。

Memcachedの場合、クラスターは1~60個のノードを持ち、ノード間で水平に分割してデータを保存できます。

Amazon ElastiCacheの活用事例:The Pokémon Company International

Amazon ElastiCacheの活用事例として、The Pokémon Company International (TPCi)の取り組みをご紹介します。

株式会社ポケモンの子会社であるTPCiでは、ポケモン(ポケットモンスター)に関する最新情報を発信しています。「Pokémon GO」「Pokémon UNITE」などのゲーム・アプリと連携して、ユーザーのプロファイル情報を管理するアカウントサービス「ポケモントレーナークラブ」も、TPCiが提供するコンテンツの1つです。

ポケモントレーナークラブにおいては当初、サードパーティーのNoSQLドキュメントデータベースを使ってユーザー情報を管理していました。しかし、Pokémon GOのユーザー数が2年間で3億人以上にまで上り、レイテンシーが増加していました。

そこで TPCiでは、フルマネージドデータベースを利用するためにAWSへの移行を決断。ユーザーのキャッシュについてはAmazon ElastiCacheを活用し、エンジンとしてRedisとMemcachedの両方を使って管理することにしました。これによって、認証プロセスの高速化を実現するとともに、データベースの管理にかかる時間も大幅に短縮。さらに、移行前の6か月間では168時間も発生していたダウンタイムが、移行後はゼロになりました。

Amazon ElastiCache の料金について

Amazon ElasticCacheの料金は、基本的にノードタイプによって設定されており、利用時間に応じて支払う方式となっています。

Amazon ElastiCache の料金体系

ElastiCacheのノードタイプには、利用した分だけ料金が発生するオンデマンドノードと、事前支払いで割引を受けられるリザーブドノードがあります。また、利用頻度の低いデータをSSDに移動させる「データ階層化」や、サーバーレスオプションといったAmazon ElastiCacheの機能によっても料金が変わります。

その他、AWS無料利用枠を使用できないケースがあるなど、細かな料金設定があるため、詳しくは下記をご参照ください。

参考:料金|Amazon ElastiCache 新規ウィンドウで開く

Amazon ElastiCache の料金例

東京リージョンでの料金例を2つご紹介します。

〈2025年2月時点の東京リージョンの料金〉
  • ノード: 0.0616 USD/時間 ※オンデマンド/Valkey/cache.m5.largeの場合
  • ElastiCache 処理装置 (ECPU)料金:0.0027 USD / 100 万 ECPU
  • cache.m5.largeのスペック
  • vCPU(仮想CPU):2
  • メモリ:6.3GB
  • ネットワークパフォーマンス:最大 10 ギガビット

〈料金例1〉アプリケーションのキャッシュを保存する(サーバーレス)

ElastiCacheサーバーレスでは、キャッシュのデータストレージとECPUの量に対して料金が発生します。

前提条件
  • データの平均サイズ:約10 GB/時間
  • 平均リクエスト:1秒あたり50,000リクエスト
  • 1リクエストで1 ECPUを消費する
料金計算結果
データストレージ料金 0.616 USD
ECPU料金 0.486 USD

合計(1時間あたり)

1.102 USD

内訳
  • データストレージ料金
    10 GB * 0.0616 USD/時間 = 0.616 USD

  • ECPU料金
    ECPU使用量 = 50,000リクエスト * 3,600秒(1時間)= 1億8000万リクエスト = 1億8000万ECPUであることから、
    (180,000,000/1,000,000) * 0.00227 USD = 0.486 USD

〈料金例2〉ECサイトにおいて、トラフィックの急増にも耐えられる、キャッシュ保存の仕組みを構築する

アイドル時とピーク時の平均を算出し、データストレージ料金とECPU料金を計算します。なお、AZ間のデータ転送料金は発生しません。

前提条件
  • アイドル状態でのキャッシュの合計サイズは10GB、リクエストは1秒あたり100,000件。アイドル時間は22時間
  • ピーク時のキャッシュの合計サイズは100 GB、リクエストは1秒あたり 100 万件。ピーク時間は2時間
  • 1リクエストで1 ECPUを消費する
料金計算結果
データストレージ料金 1.078 USD
ECPU 料金 1.701 USD

合計(1時間あたり)

2.779 USD

内訳
  • データストレージ料金
    1時間あたりのデータストレージの平均使用量 = ((10 GB * 22時間) + (100 GB * 2時間)) / 24時間 = 17.5 GBであることから、
    17.5 GB * 0.0616 USD/時間 = 1.078 USD

  • ECPU 料金
    1時間あたりの平均ECPU使用量 = (100,000 ECPU/秒 * 3,600秒 * 22時間 + 1,000,000 ECPU/秒 * 3,600秒 * 2時間) / 24時間 = 630,000,000 ECPUであることから、
    (630,000,000/1,000,000) ECPU * 0.0027 USD = 1.701 USD

まとめ

Amazon ElastiCacheをうまく活用すれば、データの高速処理によるレイテンシーの短縮や、ユーザーエクスペリエンスの向上が見込めます。導入する際にはRedis、Memcached、Valkeyという3つのエンジンの違いを理解し、用途にあった適切なものを選びましょう。
AWSの導入や移行でお悩みの方は、当社までお気軽にご相談 新規ウィンドウで開くください。多数の導入実績を誇る当社が、お客様のニーズに合った最適なプランを提案いたします。

関連サービス

おすすめ記事

導入のお問い合わせはこちら

AWSやAmazon WorkSpacesの導入から接続回線、運用・保守まで何でもお任せください。

お問い合わせ

TOPへ戻る