ElastiCache

AWS のマネージドインメモリキャッシュサービスで、Valkey / Redis OSS / Memcached をサポートする

AWSキャッシュ

ElastiCache とは

ElastiCache は、AWS のマネージドインメモリキャッシュサービスで、Valkey・Redis OSS・Memcached をサポートする。2026 年 8 月時点では新規クラスターの既定エンジンが Valkey であり、Redis OSS 互換のコマンドとデータ構造をそのまま使える。データベースの前段にキャッシュを配置し、読み取りレイテンシをミリ秒からマイクロ秒に短縮する。

Valkey・Redis OSS vs Memcached

Valkey / Redis OSS と Memcached の違いを以下にまとめる。

観点Valkey / Redis OSSMemcached
データ構造文字列、リスト、セット、ハッシュ、ソート済みセット文字列のみ
永続化あり (RDB, AOF)なし
レプリケーションあり (Multi-AZ)なし
Pub/Subありなし
Lua スクリプトありなし
用途セッション、ランキング、キュー単純なキャッシュ

ほとんどのケースで Valkey (または既存の Redis OSS) を選択する。Memcached はマルチスレッドで単純なキャッシュに特化している。

キャッシュパターン

Cache-Aside (Lazy Loading)

async function getUser(id: string): Promise<User> {
  const cached = await redis.get(`user:${id}`);
  if (cached) return JSON.parse(cached); // キャッシュヒット

  const user = await db.get({ TableName: 'users', Key: { id } });
  await redis.set(`user:${id}`, JSON.stringify(user), 'EX', 3600); // 1時間 TTL
  return user;
}

Write-Through

async function updateUser(id: string, data: Partial<User>): Promise<void> {
  await db.update({ TableName: 'users', Key: { id }, ... });
  await redis.set(`user:${id}`, JSON.stringify({ ...existing, ...data }), 'EX', 3600);
}

ElastiCache Serverless

ElastiCache Serverless は、キャパシティの自動スケーリングとノード管理が不要なモードだ。課金は保存データ量 (GB-時) と、リクエスト処理量を表す ECPU (ElastiCache Processing Units) の 2 軸で行われる。ECPU は転送データ量と vCPU 時間の両方を含み、単純な読み書きでは 1 KB の転送あたり 1 ECPU を消費する。

Lambda からの接続

Lambda から ElastiCache に接続するには、同じ VPC 内に配置する必要がある。

DynamoDB DAX との比較

DynamoDB DAX との主な違いを以下に比較する。

観点ElastiCache (Valkey / Redis OSS)DynamoDB DAX
対象汎用キャッシュDynamoDB 専用
APIRedis コマンドDynamoDB 互換
コード変更キャッシュロジックを自前実装エンドポイント変更のみ
データ構造豊富DynamoDB アイテム

よくある用途

よくある用途を以下にまとめる。

用途Valkey / Redis OSS の機能
セッション管理文字列 + TTL
ランキングソート済みセット (ZADD, ZRANGE)
レート制限INCR + EXPIRE
リアルタイム通知Pub/Sub

体系的に学ぶなら関連書籍を参照してほしい。

この記事は役に立ちましたか?

関連用語

関連する記事