EC2は複数台構成で冗長化するケースがほとんどだと思いますが
セッションをクライアントが接続しているサーバだけで管理している場合、
そのノードがダウン時に、継続して処理を行うことが出来なくなってしまいますが
ElastiCacheでセッション管理しておくと継続して処理が行えるようになります。
ElastiCacheの特徴
- インメモリキーバリューストア型のNoSQL
- ハイパフォーマンスと高いスケーラビリティ
- Redisとmemcachedが選択出来る
ElastiCacheによるセッション管理の利点
APサーバでのセッション管理をElastiCache管理にすると
APサーバとセッションの依存関係が無くなるため以下のようなメリットが得られます。
- EC2障害発生時に他のEC2にセッション情報を引き継いで処理が継続できる
- 特定のAPサーバを意識する必要がなくなるのでELBの振り分けの自由度が上がる
- 特定のAPサーバを意識する必要がなくなるのでスケールインが何時でも可能
MemcachedとRedisの主な違い
- Redisは永続化、レプリケーション・自動フェールオーバに対応
- Memcachedはマルチスレッドに対応
- Redisは多様なデータ型に対応、MemcachedはシンプルなKey-Value型のみ対応
- Memcachedはスケールイン・スケールアウトに対応
- Memcachedはキャッシュ用途に特化、Redisはデータストアとして設計されているNoSQL
以上