【学習メモ】AWS Elasti Cache
Elasti Cacheはフルマーネジドのインメモリデータベースサービスである。
ストレージにメモリを使用することで、高速で安定したアクセスが可能で、主にデータベースクエリをキャッシュすることでアプリケーションのパフォーマンスを向上させるために使用される。
Elasti Cacheは2つのデータベースエンジンがある。
Memcached
データの永続保持やレプリケーション機能はないのでシンプルなキャッシュに向いている。
MultiAZ非対応。
Redis
高パフォーマンス、高可用性、機密を提供する。
自動フェイルオーバー機能やバックアップ、リストア、データの暗号化も可能である。
MultiAZ対応。
プライマリノードがダウンした際はレプリカノードがプライマリノードに昇格する。
またデータのバックアップとしてスナップショットをS3へ保存することでリストア、バックアップも可能である。
データの暗号化やSSL/TLSのよる通信の暗号化も可能である。さらにクライアントの認証をパスワード認証にするRedis認証の機能もある。
Elasti Cacheのキャッシュ戦略は以下の2つである。
ライトスルー戦略
データベースへの書き込み、更新が行われるたびにキャッシュにも書き込む。
この戦略はキャッシュの情報が常に最新化されるため、データ整合性が保たれる。
一方で書き込み性能が低下する恐れがあることや、アクセスされないデータが蓄積されるというデメリットがある。
遅延読み込み戦略
データベースへの書き込みを優先し、必要なデータのみキャッシュする。
アプリケーションがデータを要求した際はまずキャッシュを確認し、キャッシュに該当のデータがなければデータベースを参照する。そしてそのデータをキャッシュに書き込む。
要求されたデータのみをキャッシュするためリソースを効率よく活用できる一方で、データの不整合が一時発生する恐れがある。またキャッシュからデータを取得できなかった場合はデータ取得に時間がかかる場合がある。