Amazon ElastiCache
# Amazon ElastiCache
https://d1.awsstatic.com/webinars/jp/pdf/services/20171214_AWS-Blackbelt-ElastiCache.pdf
## 概要
- AWS クラウドでの分散インメモリキャッシュ環境のセットアップ、管理、構築、スケーリング、冗長構成等を構築するサービス
- マネージドキャッシュサービス
- パフォーマンス
- 高可用性
- セキュリティグループ
- VPC対応
- 暗号化
- Luaスクリプト
- 位置情報クエリ
- Pub / Sub
- Amazon ElastiCache for memcached
- Cache Cluster という論理グループにCache Node を起動
- Cluster 全体のエンドポイントとCache Nodeのエンドポイント
- Snapshot 機能はない
- スケールアウトさせる場合にはコンシステントハッシュを利用して、台数が増えても良いようにする必要がある
- Memcached アクセス用のClient Library の提供
- Auto discovery for memcached
- シンプルなユースケースの場合はこちらを選択(Redis も利用可能だが、シンプルに利用したい場合はMemcached)
- ElastiCache for Redis
- 複数のCluster Group で構成される Replication Group を構成
- 書き込み先のPrimary Endpoint と Cache Node 単体を占めるNode Endpoint
- Multi-AZ構成に対応
- Snapshot でのバックアップ・リストアが可能(S3)
- クライアント認証&暗号化
- 一部コマンドは無効化
- Amazon による拡張機能
- Swap memory の最適化
- 書き込みの動的な制限
- 高速なフェイルオーバー
- クライアントライブラリはOSSを利用
- Reis Cluster は15シャード 6TBまでのデータを保存可能
- 複雑な要件の場合はこちらを選択
- Replication 構成例
- Master - Slave 構成にして、Slave を各AZに配置。障害時にはSlaveが昇格
- 監視
- Redis cluster-mode の有無によってpros/cons がある
- Redis Cluster オンラインリサイズ
- CloudWatch トリガーによるリサイズ
- Rate Limit
- 同時接続の上限数
## ユースケース
- セッション管理
- DBキャッシュ
- APIs
- IoT
- ストリームデータ分析
- Pub / Sub
- ソーシャルメディア分析
- DBとして
- リーダーボード
- ゲームのリアルタイム更新される順位
## 料金
単純にEC2を利用するよりかは高くなる。
## まとめ
- 既存のアプリケーションの変更を最小限に、かつmemcached / Redis を使用したキャッシュクラスタの構築・運用が可能
- Redis Cluster 対応によりスケールするKVSとしても利用可能
- 暗号化にも対応している
## 雑感
EC2 +キャッシュの構築サービスみたいなものか。
EC2を単体で構築した場合よりは値段は高くなる。例えばオンプレマシンで、何かと機能を同居させている場合はスペックの選定はやっておかないといけない。
Amazon ElastiCacheサービスはマイグレーション先をAWSに向かせるためのサービスの一つなのかもしれない。