AWS BlackBelt Online Seminer ElasticCache
やるぞ!といってサボるのが私のクオリティです…。
まぁ、ネタもなかったのが事実なんだけどね(´・ω・`)
というわけで、AWS BlackBelt Online Seminerを受けたので、
要点とかまとめてみました。
ElasticCache
まとめ
- ElasticCacheは分散インメモリキャッシュのサービス
- Memcached、Redisを使用したキャッシュクラスタの構築、運用が可能
- Redis Cluster対応によりスケールが可能に
- 暗号化にも対応
要点とか
ElasticCacheとは
- AWSが提供するデータベースサービスの一種。完全マネージド型で、セットアップ、運用、拡張が簡単にできる。
特徴
- フルマネージド
- Memcached,Redisをサポート
インスタンスクラス
- 新たにr4シリーズが追加。
適しているデータ
- リクエストが多い
- レイテンシが低いことを求められる
- データ量は少ない
- 1.4台の一部バージョンに対応
- CacheClusterという論理グループにCacheNodeを起動する
- バックアップ機能(Snapshot)はない
- スケールアウトさせる場合はコンシステントハッシュなどが必要
- 通常アクセス用のClient LibraryとAuto Discovery用のClient Libraryがある
- Auto Discovery用のClient LibraryはPHP,JAVA,.NETに対応
- Auto Discoveryは冗長化のような感じ
Redis
- 2.8台と3.2台の一部バージョンに対応
- 複数のClusterGroupで構成されるReplicationGroupを構成する
- 書き込み先であるPrimaryEndpointとCacheNode単体であるNodeEndpointの2つを提供
- Multi-AZに対応
- バックアップ(Snapshot)対応
- CONFIG、SLAVEIFなどの一部コマンドは利用できない
- Amazonが一部機能を拡張済
- 1,SwapMemoryの最適化
- 2,書込の動的な制限
- 3,高速なフェイルオーバー
- Replication機能(リードレプリカ)
ReplicationGroup内にマスター1台にレプリカを最大5台作成可能
マスターノードが故障した場合は、レプリカのうち1台がマスターに昇格する
- バックアップ
S3へバックアップ
RDBファイルを作成し、S3にエクスポートも可能
RDBファイルからEC2とかを作成可能
- 監視
CloudWatchで監視可能、監視項目は以下
1,CPU使用率
Memcachedはマルチコアなので100%に張り付かなければOK
Redisはシングルコアなので、注意。
2,Cache Hits/CacheMisses
3,Evictions(キャッシュアウトの発生回数)
4,SwapUsage
5,メモリ使用量
6,ReplicaLag(レプリケーションの遅延値)
今回アップデートされた項目
- Redis3.2でRedisClusterのサポート開始
データをシャード単位に分散保存し、最大15シャード6TiBのデータが保存可能
最大2000万/secの読み込み、450万/secの書き込み性能
注意点としてハッシュを利用するので、Redisクラスタ対応のクライアントを使用する必要がある
故障発生時には、レプリカが自動でマスターに昇格する(15~30秒ぐらい)
・利点
DNSベースでのフェイルオーバーではないので、15~30secでフェイルオーバー可能
未利用時はフェイルオーバー時にWrite全体に影響があるのに対して影響は部分的になる
パフォーマンスはクラスタサイズに依存。(6ノード以上利用可能)
未利用時と比べてコストはかかる
- オンラインリサイズ
・今まで
オンラインでリサイズはできないので作り直し
リストアする際にシャード数を指定可能
リストア時にダウンタイムは発生する(アプリの設定しなおしが必要)
・これから
ダウンタイム0でスケールイン/スケールアウトが可能
CloudWatch→SNS→Lambdaの流れでオートスケールが可能
- セキュリティの強化
・暗号化
クライアントとRedis間の通信の暗号化(In-Transit)
S3とディスク上のバックアップを暗号化(At-Rest)
・認証
RedisのHIPAA認証
AWS Business Associate Addendum(BAA)に対応
ユースケース
- オブジェクトストレージのキャッシング
- NoSQL DBのキャッシング
- Lambdaからフィルタリングした一部データの整形
- ビッグデータアーキテクチャにおけるデータストアとして利用
- IoTのセンサのデータストア
- リアルタイムリーダーボード
コスト
- オンデマンドとリザーブドが利用可能
- リザーブドはAZの指定不要
- Redisのバックアップは1つは無料
- ElasticCache間の通信は無料
- EC2を利用して同じようなことをしたほうが安いが、運用コストを考えるとElasticCacheも十分利用価値がある
※AWSのBlackBelt公式サイトは以下
今後はこんな感じでAWSの勉強してこうと思います。