Amazon ElastiCache
Amazon ElastiCacheは、AWSが提供するデータベースサービスの一つ
フルマネージド型のインメモリデータベースサービス。
インメモリデータベースとはデータストレージにメモリを使用するデータベースのことです。HDDのようなディスクストレージよりも高速・安定したアクセスが可能で、主にパフォーマンスを重視するアプリケーションに利用されています。RDSやRedshiftなど他のデータベースサービスと連携し、クエリの結果をElastiCacheにキャッシュさせることで全体的なパフォーマンスを向上させる、というような使い方ができます。
また、ElastiCacheはフルマネージド型のサービスですので、データベースの拡張や障害の検出・復旧、バックアップなどはAWSによって管理されています。
【ElastiCacheのデータベースエンジン】
ElastiCacheにはKVS(Key-Value Store:Key-Value型のデータストア)型のデータベースエンジンが2つ用意されており、データベースを構築する際に選択することができます。
※Key-Value型 ... 保存するデータ(Value)とそれを特定するためのキー(Key)がペアになった構成のデータセット
Memcachedにはデータの永続保持やバックアップ機能はありませんので、障害や再起動などが発生した場合はデータは残りません。保持しておかなければならないデータはストレージや他のデータベースサービスへ保存しておき、アプリケーションの高速化を目的としてキャッシュとして利用する、といったケースに向いています。
RedisはMemcachedよりも高機能なデータベースエンジンです。スナップショット機能によるバックアップ・リストアが可能で、データを永続的に保持しておくことができます。
また、耐障害性の機能として「自動フェイルオーバー」「マルチAZ」があります。
自動フェイルオーバー機能により、プライマリインスタンスに障害が発生した場合は自動的にレプリカインスタンスがプライマリインスタンスへ昇格します。またマルチAZではAZを跨いだレプリケーションが可能なため、プライマリインスタンスが存在するAZに障害が発生した場合でも、別のAZのレプリカインスタンスを昇格させることにより運用を継続することができます。
※ElastiCacheにおいて各ノードは「キャッシュノード」と呼ばれます。キャッシュノードのうち、プライマリノードは更新・参照などを行えるノード、レプリカノードは参照のみを行えるノード(リードレプリカ)です。
さらに、RedisにはMemcachedにはない機密性があります。保管しているデータの暗号化やSSL/TLSによる通信の暗号化、クライアントをパスワードで認証するRedis認証を行うことができます。これらを利用するには、ElastiCacheのデータベース作成時に「Redis」を選択し、暗号化を有効にする必要があります。
「送信中の暗号化」を有効にするとredis認証を有効にできる。