1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【AWS】【SAA対策】ElastiCache

Last updated at Posted at 2020-04-02

ElastiCache

サービス概要

クラウドでのメモリ内分散キャッシュ環境のセットアップ、管理、およびスケーリングを AWS クラウドで簡単に行うことができる。
高パフォーマンスでコスト効率に優れるだけでなく、サイズ変更も可能なメモリ内キャッシュを提供しながら、分散キャッシュ環境のデプロイと管理に伴う複雑性を排除。
ElastiCache は、Redis と Memcached エンジンのどちらでも使用可能。

特徴

Amazon ElastiCache for Memcached

  • アプリケーションに必要な情報は、デプロイした ElastiCache ノードのホスト名とポート番号のみ。
  • Memcached の ElastiCache 自動検出機能を使用すると、アプリケーションはキャッシュクラスター内のすべてのノードを特定し、接続可能。(利用可能なホスト名とポート番号のリストを管理する必要なくなる。)
  • キャッシュノードの障害の自動検出と復旧。
  • 自動検出を有効にしたクラスター内のノードが自動検出されるため、ノードの追加または削除時にアプリケーションに変更を加える必要なし。
  • ノードとクラスターの柔軟なアベイラビリティーゾーンの配置。
  • 他の AWS のサービス (Amazon EC2、Amazon CloudWatch、AWS CloudTrail、Amazon SNS など) とも連携した、安全でパフォーマンスの高い管理対象インメモリキャッシュソリューション。

Amazon ElastiCache for Redis

  • キャッシュノードの障害の自動検出と復旧。
  • 障害が発生したプライマリクラスターから、レプリケーションをサポートする Redis クラスター内のリードレプリカへの自動フェイルオーバーを備えたマルチ AZ。
  • Redis バージョン 3.2 以降では、すべてのバージョンで転送時の暗号化と保管時の暗号化 (認証あり) がサポート。このサポートは、HIPAA 準拠のアプリケーションのビルドに役立つ。
  • 耐障害性向上のためのノードとクラスターのAZの柔軟な配置。
  • Amazon EC2、Amazon CloudWatch、AWS CloudTrail、Amazon SNS などの AWS のサービスとの統合。

種類やタイプ

MemchachedとRedis

Memcached Redis
ケース ・シンプルなデータ型だけで充分な場合
・マルチスレッドが必要な場合
・複雑なデータ型が必要な場合
・永続化が必要な場合
・フェイルオーバーが必要な場合
・pub/subが必要な場合
スナップショット - 有り
マルチスレッド 有り -
暗号化 - 有り
高可用性 - 有り

類似サービスとの比較

RDS DynamoDB Redshift ElastiCache
概要 ・リレーショナルデータベース。
・主なDBエンジンをサポート、ツールがそのまま使えるため、オンプレからの移行に便利。
・データベースソフトウェアのパッチは自動パッチが可能。
・NoSQL データベースサービス。
・結果整合性
・write直後のreadでは整合性が取れない場合あり。
・「強い整合性」オプションを指定すると性能は落ちる。
・レコードのサイズに上限あり。
・リージョンサービスでありプライベートネットワークからはNAT経由でアクセスする必要あり。
・データウェアハウスタイプ
・スケーラブル
・高パフォーマンス
・メモリーキャッシュタイプ
・Memcached:Key-Value Store形式のメインメモリキャッシュ。マルチノートのキャッシュクラスタ。
・Redis:Memcached:Key-Value Store形式のメインメモリキャッシュ。
場所 AZ サービス(VPC内に配置) リージョン AZ サービス AZ サービス(VPC内に配置)
バックアップ スケージュールで1日1回取得可能(手動可)※ただし、バックアップ中はI/O停止、止めたくない場合はマルチAZ利用する必要あり - - (memcached)バックアップ機能はなし(Redis)Snapshotによる永続化
ユースケース OS以下レイヤの管理不要、高可用性な、既存データベースの利用など 大量のオンライントランザクション処理など 大容量データの分析など DBの負荷低減用のメモリキャッシュ

ベストプラクティス

  • 遅延読み込み
  • 必要なときにのみキャッシュにデータを読み込むキャッシュ戦略。
  • 書き込みスルー
  • データがDBに書き込まれると常にデータを追加するか、キャッシュのデータを更新する。
  • TTL
  • 「遅延読み取り」と「書き込みスルー」利点を活かす戦略。それぞれの書き込みに有効期限 (TTL) を追加し、過剰なデータでキャッシュがいっぱいになる事態が避けられる。
  • TTL は、キーの有効期限の秒数を指定する整数値
  • 高スループットかつ低レイテンシなインメモリデータストアからデータを取得し、大量のデータを扱うアプリケーションを構築したり、既存アプリケーションのパフォーマンス改善を検討する際にElastiCacheの利用がよい。(ex.ゲームのユーザー行動データの処理の高速ぱふぉーまなすなど)
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?