ElastiCache
AWS のマネージドインメモリキャッシュサービスで、Valkey / Redis OSS / Memcached をサポートする
ElastiCache とは
ElastiCache は、AWS のマネージドインメモリキャッシュサービスで、Valkey・Redis OSS・Memcached をサポートする。2026 年 8 月時点では新規クラスターの既定エンジンが Valkey であり、Redis OSS 互換のコマンドとデータ構造をそのまま使える。データベースの前段にキャッシュを配置し、読み取りレイテンシをミリ秒からマイクロ秒に短縮する。
Valkey・Redis OSS vs Memcached
Valkey / Redis OSS と Memcached の違いを以下にまとめる。
| 観点 | Valkey / Redis OSS | Memcached |
|---|---|---|
| データ構造 | 文字列、リスト、セット、ハッシュ、ソート済みセット | 文字列のみ |
| 永続化 | あり (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 専用 |
| API | Redis コマンド | DynamoDB 互換 |
| コード変更 | キャッシュロジックを自前実装 | エンドポイント変更のみ |
| データ構造 | 豊富 | DynamoDB アイテム |
よくある用途
よくある用途を以下にまとめる。
| 用途 | Valkey / Redis OSS の機能 |
|---|---|
| セッション管理 | 文字列 + TTL |
| ランキング | ソート済みセット (ZADD, ZRANGE) |
| レート制限 | INCR + EXPIRE |
| リアルタイム通知 | Pub/Sub |
体系的に学ぶなら関連書籍を参照してほしい。
この記事は役に立ちましたか?
関連用語
キャッシュ無効化とは - TTL / イベント駆動 / パージ戦略の比較
キャッシュ無効化は古くなったキャッシュデータを最新に更新する仕組み。TTL 方式 / Write-through / イベント駆動パージの使い分けと実装パターンを解説
DynamoDB
AWS のフルマネージド NoSQL データベースで、ミリ秒単位のレイテンシとシームレスなスケーリングを提供する
フェイルオーバー
障害発生時にスタンバイシステムへ自動的に切り替え、サービスの継続性を確保する仕組み
キャッシュ
頻繁にアクセスされるデータを高速なストレージに保存し、読み取り性能を向上させる手法
TTL
データやキャッシュの有効期限を設定し、自動的に削除 / 更新する仕組み
Redis
インメモリデータストアで、キャッシュ、セッション管理、Pub/Sub に使われる