##はじめに
ElastiCache個別のまとめになってしまいますが、まとめていきます。
AWSWEB問題集を解いていて、まだまだ理解が足りないリソース、サービスになるので、
理解を深めていきます。
##ElastiCacheとは
キーバリュー型のNoSQLデータベースサービス。
マネージド型のインメモリデータベース(MemcachedやRedisをデータストアとして利用することができる。)
メモリ上で処理を実行するため、高スループットかつ低レイテンシーな処理を実現できる。
※ElastiCacheでは最小の構成単位を「ノード」と呼びます。
EC2で言うところのインスタンスに相当するものです。
ノードを組み合わせた集合体を「クラスター」という。
※スループットとはコンピュータやネットワーク機器が単位時間あたりに処理できるデータ量のこと。
※レイテンシとはデータ転送における指標のひとつで、転送要求を出してから実際にデータが送られてくるまでに生じる、通信の遅延時間のことをいいます。
「EC2」⇨「ElastiCache」⇨「RDS」
①EC2インスタンスからリクエストされたクエリ結果がElastiCacheに存在すれば、
ElasticCaheからEC2インスタンスに結果を返す。
②①に結果が存在しなければRDSに対してクエリを実行し、結果を取得する。
##データストアの特徴と選択基準
####Memcached特徴
・一時的なデータのキャッシュ用として利用
・ノード間の複製は行われない。
・データベースを別途用意
####選択基準
・シンプルなデータ構造が必要
・複数のコアまたはスレッドを持つ大きなノードを実行する必要がある。
・スケールアウトおよびスケールイン機能が必要となる
・データベースなどのオブジェクトをキャッシュする必要がある。
####Redis特徴
・マスター、スレーブ型の構成
・データストアとしても利用可能
####選択基準
・ハッシュ型やリスト型などの複雑なデータ構造を用いる
・マスターノードに障害が発生した際に自動的にフェイルオーバーが行われる必要がある。
・読み取るデータ量が多いので、マスターノードから複数のリードレプリカに複製する。
・永続性が必要
##ElastiCacheのユースケース
一般的にRDBのパフォーマンス向上のために利用される。
RDBでは、データ量の増加や、アクセス集中によりレスポンスが遅くなる可能性があるため、
クエリの結果をElastiCacheに保存しておき、同じクエリが実行された場合はクエリ結果を
ElastiCacheからクエリ結果を返すことでRDBの負荷低減とシステムのレスポンスの向上に繋がる
Webアプリケーションのセッション情報を格納したり、
データベースに対して頻繁にアクセスするSQLを格納したりする。
##以上
よっしゃ地道に頑張るかぁ〜〜〜〜