ElastiCacheとは
- RedisやMemcachedのマネージドサービス
- ユースケース
- DBの負荷軽減
- SQLの取得結果をキャッシュしておき、同じリクエストが来た場合はキャッシュを返すことでDBにアクセスを減らす
- ユーザセッションストア
- 複数のEC2でアプリケーションを運用するシーンで、ElastiCacheにユーザのセッション情報を保存しておき、どのEC2からアクセスがきてもElastiCacheのセッション情報を参照できるようにする(ステートレス化)
- DBの負荷軽減
Redis / Memcached 違い
- Redis
- オートフェイルオーバー付きマルチAZ
- リードレプリカによるリードの拡張と高可用性
- バックアップ・リストア機能
- Memcached(軽量高速)
- データ分割保持、マルチノード(シャーディング)
- レプリケーション機能なし
- 非永続的(サーバ停止で保存データ消失)
- バックアップ・リストアなし
セキュリティ
- セキュリティグループを設定できる
- IAM認証に対応していない
- Redis認証
- Redisクラスタ作成時に「パスワード/トークン」を設定できる
- キャッシュのセキュリティレベルを向上
- SSL通信の暗号化に対応
Cacheパターン
- レイジーローディング
- 読みこまれたデータをすべてキャッシュ
- キャッシュされたものは更新されないので、キャッシュデータが古くなる可能性あり
- ライトスルー
- DBに書き込まれた際に、キャッシュ内のデータを追加、更新
- ElastiCacheの負荷がかかる
- セッションストア
- 一時的なセッションデータをキャッシュに保存(TTL機能を使用)
- TTL:Time To Live、有効期限
- 一時的なセッションデータをキャッシュに保存(TTL機能を使用)
Redis使用例
- ゲームなどのリアルタイムランキング