ElastiCacheとは?机の引き出し方式|Redisとの関係

画面の表示が遅いという話をしていたら、先輩が「そこ、キャッシュ効かせようか。エラスティキャッシュ立てて」と言って次の話題に移ってしまった。データベースの話をしていたはずなのに、また知らないサービス名が出てきた。そんな場面に心当たりはありませんか。

この記事では、Amazon ElastiCacheを「よく使う道具を机の引き出しに置く」というたとえで整理します。何のために置くのか、Redisという言葉とどうつながるのか、そして料金がどこで発生するのかまで順番に見ていきます。

結論から言うと、Amazon ElastiCacheとはよく使うデータを手元に置いて、データベースまで取りに行く回数を減らすためのサービスです。

この記事でわかること

  • キャッシュという言葉の中身を、書庫と引き出しのたとえで理解する
  • Valkey・Redis OSS・Memcachedという3つのエンジンと、Redisとの関係
  • 置いた量と読み書きの量で決まる料金のしくみと、同じ場所に置くだけで通信費が変わる話
目次

Amazon ElastiCacheとは?一言でいうと「机の引き出し」

Amazon ElastiCacheとは、よく使うデータを取り出しやすい場所に置いておくためのサービスです。AWS公式は、マイクロ秒のレイテンシーを実現するフルマネージドのキャッシュサービスだと説明しています。マイクロ秒は1000分の1ミリ秒で、人間の感覚ではまばたきの数万分の一にあたる短さです。

仕事の道具で考えると分かりやすくなります。会社の資料はすべて書庫にしまってあるとします。1枚必要になるたびに書庫まで歩いて往復していたら、それだけで時間が過ぎます。そこで、毎日開く数冊だけを自分の机の引き出しに入れておく。手を伸ばせば届くので、往復がまるごと消えます。

この書庫がデータベースで、引き出しがElastiCacheです。引き出しは狭いので全部は入りませんし、入っているのはあくまで書庫にある原本の写しです。引き出しの中身が消えても、原本は書庫に残っている。これがキャッシュという考え方の核心で、あとで出てくる料金や設計の話もすべてここから派生します。

速さの規模感も公式に書かれています。AWS公式の機能ページは、マイクロ秒の応答時間で1秒あたり数百万回のオペレーションまでスケールできると案内しています。データベースへの問い合わせがミリ秒単位で返ってくるとすれば、引き出しから取るほうは桁が2つも3つも違う、というイメージで構いません。

ElastiCacheは引き出し。当たれば書庫(データベース)まで行かずに済み、外れたときだけ取りに行って写しを置く
図: ElastiCacheは引き出し。当たれば書庫(データベース)まで行かずに済み、外れたときだけ取りに行って写しを置く(筆者作成)

Amazon ElastiCacheの仕組みと使いどころ

エンジンは3種類。Redisという言葉との関係

ElastiCacheを触ろうとすると、最初にValkey・Redis OSS・Memcachedという3つの選択肢が出てきます。ここが「Redisとどう違うのか」で混乱する場所です。

結論を言うと、Redisは元になったソフトウェアの名前で、ElastiCacheはそれを動かしてくれるAWSのサービスです。エンジンと車体の関係に近く、どちらか一方を選ぶものではありません。

  • Redis OSS — 広く使われてきたキャッシュ用ソフトウェア。世の中の解説記事や書籍がいちばん多い
  • Valkey — Redis OSSから枝分かれして生まれたオープンソース。使い方はほぼ同じで、公式はサーバーレス構成で33%割安になると案内している
  • Memcached — もっと単純な作りのキャッシュ。機能は少ないが、そのぶん分かりやすい

新しく作るなら、迷ったときはValkeyで問題ありません。安く、Redis OSSの知識がそのまま通用するためです。すでに動いているシステムに合流する場合は、先輩に「うちはどのエンジンですか」と聞くのがいちばん早い確認方法です。

現場で登場する4つの場面

公式が挙げている代表的な使い道は次の4つです。

  • データベースの負荷を下げる — 同じ問い合わせが何度も来るなら、答えを引き出しに置いておく
  • アプリのデータを手元に持つ — 商品一覧や設定値など、変わりにくいものを速く返す
  • セッションの保管 — ログイン状態を置いておく場所として使う
  • ランキングの表示 — 点数の並べ替えのように、頻繁に更新されて頻繁に読まれるもの

このうち、新人がいちばん納得しやすいのはセッションの保管です。サーバーが3台に増えると、1台目でログインした人が2台目に案内された瞬間にログアウトしてしまう、という問題が起きます。全員が同じ引き出しを見に行くようにすれば、どのサーバーに当たっても同じログイン状態になります。

壊れたときにどうなるか

引き出しの中身は消えてもよいものですが、消えるたびにデータベースへ問い合わせが殺到するのは困ります。ElastiCacheは、離れた場所にあるデータセンターへ分けて配置するマルチAZ構成に対応しており、公式は99.99%のサービスレベル契約(SLA)を掲げています。

また、中心となるノードに障害が起きた場合は、控えとして動いていた読み取り用のノードへ自動的に切り替わります。手作業での切り替えを待たなくてよい、という点が管理サービスを使う価値です。

新社会人がAmazon ElastiCacheに出会う場面

よくあるのは、冒頭のように「この一覧、毎回データベースを叩いているからキャッシュに載せよう」と言われる場面です。置くこと自体は難しくありません。詰まるのは、たいていいつ消すかのほうです。

引き出しに入れた写しは、原本が更新されても勝手には変わりません。値段を修正したのに古い値段が表示され続ける、という事故はここから起きます。キャッシュには有効期限(TTL)を設定できるので、「この情報は何分古くても許されるか」を先に決めてから作業に入ってください。この一言を確認できる新人は、それだけで信頼されます。

Amazon ElastiCacheと関連サービスの違い・つながり

最初に押さえるべきは、RDSAuroraとの関係です。ElastiCacheはデータベースの置き換えではなく、前に置くものです。原本はあくまでRDSやAurora側にあり、ElastiCacheが持っているのは写しにすぎません。ここを取り違えて大事なデータをキャッシュだけに置くと、消えたときに取り返しがつきません。

次に、DynamoDBとの関係です。DynamoDB自体もかなり速いデータベースですが、さらに手前にキャッシュを置きたい場合はDAXという専用のしくみが用意されています。ElastiCacheはもっと汎用的で、どのデータベースの前にも置ける点が違いです。

混同しやすいのがCloudFrontです。どちらもキャッシュという言葉を使いますが、置き場所が違います。CloudFrontは利用者に近い場所で画像やページを預かる配信のためのキャッシュで、ElastiCacheはアプリケーションの内側でデータを預かるキャッシュです。前者は外向き、後者は内向きと覚えると混ざりません。

接続する側は、たいていEC2のサーバーかLambdaの関数です。ElastiCacheはVPCという自分専用のネットワークの中に置かれるため、外から直接つなぐことはできません。効き具合を確かめる数字はCloudWatchに集まります。

現場ではAmazon ElastiCacheをこう見ている

ここからは、運用監視から設計構築まで10年ほどインフラを見てきた筆者(AWS認定8冠)が、案件でキャッシュを扱うときに使っている判断の物差しを書きます。公式ページには載っていない部分です。

まず、キャッシュは「速くする道具」ではなく「守る道具」だと考えています。体感速度が上がるのは分かりやすい効果ですが、本当に効くのは、アクセスが急に増えた日にデータベースが落ちずに済むことです。引き出しが9割を引き受けてくれれば、書庫に届く人数は10分の1になります。障害対応の場に何度も立つと、この「落ちなかった」のほうが価値が大きいと分かってきます。

次に、入れ方より消し方を先に決めます。キャッシュの不具合は、動かないという形ではなく「古い情報が出続ける」という形で表に出ます。しかも、その場で再現しないので原因究明に時間がかかります。有効期限を短めに始めて、問題がなければ伸ばす。この順番なら事故の被害が小さくて済みます。

最後に、ヒット率が9割を切ったら設計を疑います。ヒット率とは、引き出しの中で用が足りた割合のことです。低いということは、毎回ちがうデータを取りに行っているという意味で、そもそもキャッシュに向いていない使い方をしている可能性があります。置く量を増やす前に、何を置いているかを見直すほうが早く直ります。

Amazon ElastiCacheの料金と無料枠

Amazon ElastiCacheには課金方式が2つあります。使った分だけ払うサーバーレスと、あらかじめ大きさを決めるノードベースです。

サーバーレスの料金は、置いたデータの量と、読み書きの量の足し算で決まります。執筆時点(2026年9月)の公式料金ページには次のように記載されています。

  • データの保管 — ValkeyとRedis OSSは1GB-時間あたり0.084USD、Memcachedは0.125USD
  • 読み書き(ECPU) — ValkeyとRedis OSSは100万ECPUあたり0.0023USD、Memcachedは0.0034USD。公式は、転送されるデータ1キロバイトごとに1 ECPUと説明している(3.2KBを返すGETなら3.2 ECPU)。並べ替えのようにCPUを多く使うコマンドは、転送量ではなくCPU時間のほうで計算されることがある
  • 最小の計測単位 — Valkeyは100MB、そのほかのエンジンは1GB

ここで注意したいのは、保管料が時間あたりで発生する点です。データが少なくても、立てたまま放置すれば時間は進み続けます。公式の機能ページには、サーバーレスの利用料は最小構成でも月額6USD程度からという案内があります。検証用に作って忘れる、が実際にいちばん多い無駄づかいです。

ノードベースのほうは、メモリの大きさに応じて時間単位で支払います。1時間に満たない利用も1時間として請求されます。使い続けることが決まっているなら、1年または3年の契約を結ぶリザーブドノードという選択肢があり、公式は3年・全額前払いの場合で最大55%の割引になるとしています。

意外と効いてくるのが通信費です。同じアベイラビリティーゾーン(離れた場所にあるデータセンターのまとまり)にあるEC2との通信は無料ですが、ゾーンをまたぐと1GiBあたり0.01USDがかかります。使う側と同じ場所に置くという基本を守るだけで、この費用は発生しません。

無料枠については、2025年7月15日より前にAWSへサインアップした場合はcache.t3.microノードを12か月間・月750時間まで無料で使えます。それ以降にサインアップした新しいアカウントでは、この形の無料枠ではなく100USD相当のクレジットが付与され、基本的なサービスの利用でさらに最大100USDが加算される方式になっています。

なお単価も無料枠の条件も見直されることがあります。実際に使う前には、必ず公式の料金ページで最新の条件を確認してください。

Amazon ElastiCacheのまとめ

ここまでの要点を整理します。

  • ElastiCacheは、よく使うデータを手元の引き出しに置いてデータベースへの往復を減らすサービス。中身は写しであり、原本はデータベース側にある
  • エンジンはValkey・Redis OSS・Memcachedの3つ。Redisは元になったソフトウェアの名前で、新しく作るならValkeyが安い
  • 料金は置いた量と読み書きの量で決まり、時間あたりで進む。使う側と同じアベイラビリティーゾーンに置けば通信費はかからない

まずは自分が関わっているシステムで、データベースの前にキャッシュがあるかどうかを確認してみてください。あるなら「何を、何分置いているのか」を聞いてみる。それだけで、表示が速い理由と、たまに古い情報が出る理由が同時に分かるようになります。

参考リンク

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次