ElastiCache
AWS のマネージドインメモリキャッシュサービスで、Redis と Memcached をサポートする
AWSキャッシュ
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 |
体系的に学ぶなら関連書籍を参照してほしい。
この記事は役に立ちましたか?
関連用語
関連する記事
技術書がキャリアを変えた話 - 読書とキャリアの関係
技術書の読書習慣がエンジニアのキャリアに影響する 3 つの経路と、キャリア段階に応じた読書戦略を具体的に解説します。
年収を上げた 1 冊 - エンジニア 50 人に聞いたキャリアを変えた本
エンジニアのキャリアに転機をもたらした本にはどんな共通点があるのか。50 人の回答から見えてきた、キャリアを変える本の 3 つの特徴を分析します。
技術書 1 冊分の知識で年収が 50 万円変わる計算
技術書への投資リターンを具体的な数字で試算します。1 冊 3000 円の本が、スキルアップを通じてどれだけの年収増につながりうるのか。投資対効果の観点から技術書の価値を考えます。