本ページは、AWS に関する個人の勉強および勉強会で使用することを目的に、AWS ドキュメントなどを参照し作成しておりますが、記載の誤り等が含まれる場合がございます。

最新の情報については、AWS 公式ドキュメントをご参照ください。

フルマネージドのインメモリキャッシングサービスで、Memcached または Redis プロトコルに互換性があります。

【AWS Black Belt Online Seminar】Amazon ElastiCache(YouTube)(39:21)

blackbelt-elasticache

古い資料(PDF)はこちら【AWS Black Belt Online Seminar】 Amazon ElastiCache-2017.12.14

blackbelt-elasticache-2017-320.jpg

Amazon ElastiCache サービス概要

Amazon ElastiCache ドキュメント

Amazon ElastiCache よくある質問

Amazon ElastiCache 料金

Redis

レディス と読みます。

Memcached

memory cache daemon の略でメムキャッシュディーと読みます。

ハンズオン

Amazon Aurora Serverless と Amazon ElastiCache を使用してリアルタイムなリーダーボードをビルドする

Amazon ElastiCache for Redis を使い、オンラインアプリケーション用の高速セッションストアを構築する(※英語のみ)

Amazon ElastiCache for Redis を使い、MySQL データベースのパフォーマンスを向上させる(※英語のみ)

ElastiCache のチュートリアルと動画

https://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/red-ug/SelectEngine.html

主な比較は次のとおりです。

key

Memcached

Redis

マルチスレッド

Yes

No

データ型

シンプル

複雑

自動フェイルオーバー

No

Yes

レプリケーション

No

Yes

バックアップと復元

No

Yes

Pub/Sub

No

Yes

Memcached のほうが単純な Key-Value の処理だとパフォーマンスが優れるが、レプリケーション/自動フェイルオーバー/複雑な集計などが必要な場合は Redis を選択するケースが多くなると思います。

こちらにも詳しく記載があります。 https://aws.amazon.com/jp/elasticache/redis-vs-memcached/

DynamoDB も Key-Value で低レイテンシーのサービスです。同じように代用もできるのではないかと考えます。 ただ、DynamoDB は可用性担保のため複数 AZ に保存しているので書き込みは遅くなります。また、DynamoDB はリクエスト数で課金されるため、頻繁に利用されるセッション情報などの場合はコストが急増したり、キャパシティが枯渇する可能性があります。DAX を利用することでこれらを回避することも出来ます。

つまり、基本的には永続化が不要であれば ElastiCache のほうがよいケースが多いと思われます。

構成イメージはこのようになります。クラスタ化されていますが、レプリケーションの機能はありません。 Redis Cluster/Replication

クラスタモード有効/無効  ×  レプリケーション有/無のパターンがあります。 クラスタモードは複数のシャードにデータを分散させることが出来ます。クラスタモードが有効でもシャードを1つに設定することも可能です。

クラスタもレプリケーションもない単一の構成です。 Redis NonCluster/NonReplication

レプリケーションが有効な構成です。 Redis NonCluster/Replication

クラスタモードが有効ですが、レプリケーション無しの構成です。 Redis Cluster/NonReplication

クラスタモードが有効でレプリケーション有りの構成です。 Redis Cluster/Replication

https://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/red-ug/AutoFailover.html

レプリケーションされている場合、自動的にフェイルオーバーが実行されます。

https://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/red-ug/Redis-Global-Datastore.html

globaldatastore

Global Datastore for Redis 機能を使用すると、AWS リージョン全体で完全マネージド型、高速、信頼性、安全なレプリケーションを実行できます。

elasticache