Amazon ElastiCache

Redis または Memcached をフルマネージドで提供するインメモリキャッシュサービスで、マイクロ秒単位のレスポンスタイムを実現する

概要

Amazon ElastiCache は、Redis と Memcached の 2 つのオープンソースエンジンに対応したフルマネージドなインメモリキャッシュサービスです。データベースへのクエリ結果やセッション情報をメモリ上にキャッシュすることで、アプリケーションのレスポンスタイムをミリ秒からマイクロ秒に短縮できます。ノードの起動、パッチ適用、バックアップ、フェイルオーバーなどの運用タスクを AWS が自動的に処理します。ElastiCache for Redis はデータの永続化、レプリケーション、Pub/Sub メッセージング、Lua スクリプト、地理空間インデックスなどの高度な機能をサポートし、ElastiCache for Memcached はシンプルなキーバリューキャッシュとして高いスループットを提供します。ElastiCache Serverless を使えば、キャパシティの管理なしにワークロードに応じて自動スケールするキャッシュ環境を構築できます。

Redis と Memcached の選択基準

ElastiCache で Redis と Memcached のどちらを選ぶかは、ワークロードの要件によって決まります。Redis はデータの永続化 (RDB スナップショット、AOF ログ)、Multi-AZ レプリケーション、自動フェイルオーバー、ソート済みセット、ハッシュ、リスト、ストリームなどの豊富なデータ構造をサポートします。セッション管理、リーダーボード、リアルタイム分析、メッセージキューなど、データの永続性や高度なデータ操作が必要な場合に適しています。一方、Memcached はマルチスレッドアーキテクチャにより単一ノードでの並列処理性能が高く、シンプルなキーバリューキャッシュとして大量の読み取りリクエストを処理する場合に適しています。ただし、データの永続化やレプリケーション機能がないため、キャッシュの消失が許容できるワークロードに限定されます。

Azure Cache for Redis との比較

Azure で ElastiCache に対応するサービスは Azure Cache for Redis です。Azure Cache for Redis は Redis エンジンのみをサポートし、Memcached には対応していません。料金面では、ElastiCache for Redis の cache.t3.micro (0.5 GB) が時間あたり約 0.022 ドル (東京リージョン) であるのに対し、Azure Cache for Redis の Basic C0 (250 MB) は時間あたり約 0.022 ドルで同程度です。ElastiCache の特徴として、Global Datastore 機能によりクロスリージョンレプリケーションが可能で、リージョン間のフェイルオーバーを 1 秒未満で実行できます。Azure Cache for Redis にもアクティブ geo レプリケーション機能がありますが、Enterprise 層でのみ利用可能で、Standard/Premium 層ではパッシブ geo レプリケーションに限定されます。