ElastiCache
AWS のマネージドインメモリキャッシュサービスで、Redis と Memcached をサポートする
ElastiCache とは
ElastiCache は、AWS のマネージドインメモリキャッシュサービスで、Redis と Memcached をサポートする。データベースの前段にキャッシュを配置し、読み取りレイテンシをミリ秒からマイクロ秒に短縮する。
Redis vs Memcached
Redis と Memcached の違いを以下にまとめる。
| 観点 | Redis | Memcached |
|---|---|---|
| データ構造 | 文字列、リスト、セット、ハッシュ、ソート済みセット | 文字列のみ |
| 永続化 | あり (RDB, AOF) | なし |
| レプリケーション | あり (Multi-AZ) | なし |
| Pub/Sub | あり | なし |
| Lua スクリプト | あり | なし |
| 用途 | セッション、ランキング、キュー | 単純なキャッシュ |
ほとんどのケースで Redis を選択する。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 は、キャパシティの自動スケーリングとノード管理が不要なモードだ。ECU (ElastiCache Processing Units) 単位で課金される。
Lambda からの接続
Lambda から ElastiCache に接続するには、同じ VPC 内に配置する必要がある。
DynamoDB DAX との比較
DynamoDB DAX との主な違いを以下に比較する。
| 観点 | ElastiCache (Redis) | DynamoDB DAX |
|---|---|---|
| 対象 | 汎用キャッシュ | DynamoDB 専用 |
| API | Redis コマンド | DynamoDB 互換 |
| コード変更 | キャッシュロジックを自前実装 | エンドポイント変更のみ |
| データ構造 | 豊富 | DynamoDB アイテム |
よくある用途
よくある用途を以下にまとめる。
| 用途 | Redis の機能 |
|---|---|
| セッション管理 | 文字列 + TTL |
| ランキング | ソート済みセット (ZADD, ZRANGE) |
| レート制限 | INCR + EXPIRE |
| リアルタイム通知 | Pub/Sub |
体系的に学ぶなら関連書籍を参照してほしい。
この記事は役に立ちましたか?
関連用語
キャッシュ無効化とは - TTL・イベント駆動・パージ戦略の比較
キャッシュ無効化は古くなったキャッシュデータを最新に更新する仕組み。TTL 方式・Write-through・イベント駆動パージの使い分けと実装パターンを解説
DynamoDB
AWS のフルマネージド NoSQL データベースで、ミリ秒単位のレイテンシとシームレスなスケーリングを提供する
フェイルオーバー
障害発生時にスタンバイシステムへ自動的に切り替え、サービスの継続性を確保する仕組み
キャッシュ
頻繁にアクセスされるデータを高速なストレージに保存し、読み取り性能を向上させる手法
Redis
インメモリデータストアで、キャッシュ、セッション管理、Pub/Sub に使われる
TTL
データやキャッシュの有効期限を設定し、自動的に削除・更新する仕組み
関連する記事
技術書がエンジニアのキャリアを変える - 読書習慣と年収の関係
技術書の読書習慣がエンジニアのキャリアアップに影響する 3 つの経路と、ジュニア・ミドル・シニア各段階に応じた読書戦略を具体的に解説します。
年収を上げた 1 冊 - エンジニア 50 人に聞いたキャリアを変えた本
エンジニアのキャリアに転機をもたらした本にはどんな共通点があるのか。50 人の回答から見えてきた、キャリアを変える本の 3 つの特徴を分析します。
技術書の読む順番戦略 - 複数冊を組み合わせて理解を加速させる
技術書を 1 冊ずつ読むのではなく、複数冊を戦略的に組み合わせることで理解の深さと速度を飛躍的に高める方法を解説します。