WS、プライマリDBとして使える耐久性を備えたインメモリデータベース「Amazon MemoryDB for Redis」発表

AWSは、プライマリデータベースとしての使用に耐える耐久性を備えたRedis互換のインメモリデータベース「Amazon MemoryDB for Redis」を発表しました

インメモリデータベースはすべてのデータをメモリ上に保持するため、非常に高速なデータベースアクセスを実現する利点を備えています。

反面、データがメモリ上にあるため、ハードディスクやSSDなどにデータを保存する一般的なデータベースに比べて、サーバに障害が発生した場合にデータを失う可能性が高いというデメリットがありました。

そのため一般にインメモリデータベースは一瞬たりともデータを失うわけにはいかないミッションクリティカルな用途のプライマリデータベースよりも、メモリキャッシュなどに使われる傾向にありました。

今回AWSが発表したAmazon MemoryDB for Redisは、こうしたインメモリデータベースの課題を解決し、インメモリデータベースの高速性と、ミッションクリティカルな用途でのプライマリデータベースにも使える耐久性を備えたものだと説明されています。

下記はAWSの発表からの引用です

MemoryDB makes it easy and cost-effective to build applications that require microsecond read and single-digit millisecond write performance with data durability and high availability.

MemoryDBは、データの耐久性と高可用性を備えつつ、マイクロ秒の読み出しと1桁ミリ秒の書き込み性能を要求するアプリケーションを、簡単かつ高いコスト効率で構築できます。

分散トランザクションログを複数のAZに保存

ミッションクリティカルな用途に耐えるインメモリデータベースはSAP HANAなどこれまでも存在していました。

一般にこれらのインメモリデーターベースでは、トランザクションログを永続性を備えたストレージに書き込むことで、万が一サーバに障害が起きてもログからデータを復旧させることでデータを失わないようにしています。

そのためインメモリデータベースといえどもログをストレージに書き込むスピードが性能上重要な要素でした。

参考:インメモリデータベースでサーバが落ちたらデータはどうなる? インメモリとカラム型データベースの可能性を調べる(その3)

今回AWSが発表したAmazon MemoryDB for Redisでは、分散トランザクションログを複数のアベイラビリティゾーンに分散することでログの永続性を確保することで、高い性能と高速なフェイルオーバーやリカバリ、ノードのリスタートを実現していると説明されています。

MemoryDB uses a distributed transactional log that stores data across multiple Availability Zones (AZs) to enable fast failover, database recovery, and node restarts with high durability.

MemoryDBは、複数のアベイラビリティーゾーン(AZ)にまたがってデータを保存する分散型トランザクションログを使用しており、高い耐久性を備えた高速なフェイルオーバー、データベースのリカバリー、ノードの再起動が可能です。

そしてそのサービス名にもあるようにAPIとしてはRedis互換としています。

RedisはNoSQLのインメモリデータベースとして代表的なのものの1つで、キーバリュー型のデータストアです。

そのためAmazon MemoryDB for Redisは業務アプリケーションのバックエンドよりも、モバイルアプリケーションやゲーム、リアルタイムデータ分析といったアプリケーションのバックエンドに向いていると言えそうです。