Amazon ElastiCacheとは
メインメモリキャッシュのデプロイ、運用、スケーリングをクラウド内で簡単に実行できるウェブサービスです。
このサービスは、低速のディスクベースのデータベースに完全に依存せずに、高速の管理されたメモリ内のキャッシュから情報を取得できるようにすることで、ウェブアプリケーションのパフォーマンスを向上させます。
参考:AWS 基礎入門チュートリアル – ElastiCache 構築・設定編
サポートしているエンジン
Amazon ElastiCache は、次の 2 つのオープンソースインメモリキャッシュエンジンをサポートしています。
シンプルに利用する場合はMemcachedを利用するが、それ以外はRedisを利用する場合が多い。
Redis | Memcached |
---|---|
シングルスレッドで動作する。 | マルチスレッドで動作する。 |
データを永続化可能。 | データを永続化できない。 |
ElastiCacheはMemcachedとRedisのどっちを選ぶ?
ElastiCacheを利用する際のポイント
- キャッシュするデータの選定
頻繁に更新するデータをキャッシュしても意味がない。
アクセスはされるが、データが更新されないものはキャッシュするべき。
- 耐障害性への考慮
マルチノードで構成する。
- 負荷テストを実施して、ノードのタイプをを決定する
定期的にノードのタイプを選定する。
遅延読み込みと書き込みスルー
遅延読み込み | 書き込みスルー |
---|---|
必要なときにのみキャッシュにデータを読み込むキャッシュ戦略です。 | データがデータベースに書き込まれると常にデータを追加するか、キャッシュのデータを更新します。 |
ユースケース
- セッション管理
- データベースキャッシュ★
- ストリームデータ分析
- メタデータストア
1.パラメータグループを作成する
[パラメータグループの作成]で今回は[redis4.0]で作成しておきます。
2.サブネットグループを作成する
3.セキュリティグループを作成する
[セキュリティグループの作成]で 6379 番ポートからのアクセスを許可するように設定する。
4.Amazon ElastiCache クラスターの作成
[エンジンバージョンの互換性] 4.0.10
[ポート] 6379
[パラメータグループ] 「1.パラメータグループを作成する」で作成したもの
[ノードのタイプ] cache.t2.micro
[レプリケーション数] 0
[サブネットグループ] 「2.サブネットグループを作成する」で作成したもの
[セキュリティグループ] 「3.セキュリティグループを作成する」で作成したもの
5.EC2インスタンスにredisをインストールし動作を確認する
redisをインストールする。
sudo yum --enablerepo=epel install redis
プライマリエンドポイントに繋げる。
redis-cli -h <プライマリエンドポイント>
setやgetで確認する。
redis.7izdpl.0001.apne1.cache.amazonaws.com:6379> set aws redis
OK
redis.7izdpl.0001.apne1.cache.amazonaws.com:6379> get aws
"redis"
Amazon Linux2 でこんなエラーが表示された場合
epelレポジトリをインストールしてから実行。
sudo amazon-linux-extras install -y epel
AWS ElastiCache Serverless