0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon ElastiCache

Last updated at Posted at 2024-05-27

1.ElastiCacheとは

ElastiCacheはMemcachedRedis(レディス)の2種類のエンジンをサポートしているステートフルなインメモリデータベースサービス。そのため、node.jsのアプリケーションを実行することはできません。

1.1.インメモリ

インメモリキャッシュは高速で低レイテンシが求められるアプリケーションに適しており、非インメモリキャッシュは大容量データを長期間保持する必要がある場合に適しています。

1.2.ステートフルとステートレス

ステートフルシステムは、各リクエスト間の状態を保持し、ユーザーの連続した操作を追跡するのに適しています。一方、ステートレスシステムは、各リクエストが独立しており、スケーラビリティとリソース効率の点で優れています。

セッション情報をEC2などのサーバーに保管するとステートフルになってしまいスケーラビリティがなくなるため、これを回避する方法として、ElastiCache(もしくはDynamoDB)にセッション情報を保管するシナリオもあります。

2.Memcached

Memcachedとは、キーと値のための高速なメモリのキャッシュサーバーです。

Pythonでも簡単にimportできます。

!pip install python-memcached
import memcached

MemcachedはマルチAZに対応していません。

3.Redis

Memcachedとは異なり、Redisは次のことを実行できます。

  • ディスクにデータを保存できるので信頼性が高く、再起動できる
  • 古いデータを消さずに残しておける
  • 単純な文字列以外のデータ構造もある

3.1.Amazon ElastiCache for Redis

Amazon ElastiCache for Redis は、ミリ秒未満のレイテンシーを実現する非常に高速なインメモリデータストアで、インターネット規模のリアルタイムアプリケーションを強化できます。(ネットゲームのランキングのリアルタイム更新など)

セッションをクライアントが接続しているEC2インスタンスだけで管理している場合、サーバーがダウン時すると継続して処理を行うことが出来なくなってしまいます。しかしながら、Amazon ElastiCache For Redisでセッション管理しておくと継続して処理が行えるようになります。

データの永続性を提供するため、ディスク上にデータを保存できます。また、データ構造を操作できるため、より複雑なデータ処理が可能です。

Pub/Subをサポートしています。

予算のことを特に心配しなくてよい時はこれを使います。

3.2.Redisに関するQiitaの記事

以下の記事が凄く参考になりました。

Pythonでも簡単にimportできます。

!pip install redis
import redis
conn = redis.Redis()
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?