本文へスキップ
← 記事一覧に戻る

Amazon ElastiCache

ElastiCache とは?

データの読み書きをディスク(HDD / SSD)ではなく、 メモリ(RAM) 上で行う「インメモリデータベース」を提供するサービスです。 通常、データベース(RDS 等)からデータを取得するには時間がかかりますが、一度取得したデータを ElastiCache に保存(キャッシュ)しておくことで、2 回目以降は超高速にデータを返すことができます。

主な特徴

  • 低レイテンシ: マイクロ秒単位の応答速度を実現
  • フルマネージド: ハードウェアのプロビジョニング、パッチ適用、バックアップなどの運用を AWS が自動で行う
  • スケーラブル: 需要に合わせてメモリ容量を拡張・縮小

選べる 2 つのエンジン

ElastiCache では、用途に合わせて以下の 2 つのオープンソースエンジンから選択します。現在では、多機能な Redis が選ばれることが一般的です。

特徴 Redis (OSS) / Valkey Memcached
データ型 文字列、リスト、セット、ハッシュなど多彩 シンプルな Key-Value のみ
永続性 あり(ディスクへの保存が可能) なし(再起動でデータ消失)
可用性 高い(マルチ AZ、レプリケーション) 低い(基本はシングルノード)
主な用途 キャッシュ、ランキング、セッション管理 単純なキャッシュ(軽量・高速)

ヒント

最近では Redis のフォークである Valkey もサポートされており、より高いコストパフォーマンスが期待できます。

主なユースケース

  1. データベースキャッシュ 頻繁にアクセスされるクエリ結果をキャッシュし、RDS などのメインデータベースへの負荷を軽減します。
  2. セッション管理 Web アプリケーションのログイン情報(セッション)を保持します。サーバーが複数あっても、ElastiCache を参照することで一貫したセッション状態を維持できます。
  3. リアルタイムランキング Redis の「ソート済みセット(Sorted Set)」という機能を使うと、膨大なユーザーのスコアランキングをリアルタイムで高速に更新・取得できます。
  4. メッセージキュー

Pub/Sub(発行 / 購読)機能を利用して、アプリケーション間でのメッセージのやり取りを仲介します。

構成のイメージ

  1. アプリケーションがデータをリクエストする
  2. まず ElastiCache を見にいく
  3. データがあれば(Cache Hit)、そのまま高速に返す
  4. データがなければ(Cache Miss)、RDS に問い合わせ、結果を ElastiCache に保存してから返す。