Amazon MemoryDB for Redis は、Redis と互換性があり、耐久性のあるインメモリデータベースサービスで、超高速なパフォーマンスを実現します。これは、マイクロサービスアーキテクチャを採用したモダンアプリケーション用に構築されています。

Amazon MemoryDB は、人気のオープンソースデータストアである Redis と互換性があるため、お客様は、現在既に使用しているものと同じく柔軟で使いやすい Redis データ構造、API、コマンドを使用して、アプリケーションをすばやく構築できます。Amazon MemoryDB では、すべてのデータがメモリ内に保存されるため、マイクロ秒の読み取りと 1 桁ミリ秒の書き込みのレイテンシー、そして高いスループットを実現できます。また、Amazon MemoryDB は、分散トランザクションログを使用して、複数のアベイラビリティーゾーン (AZ) にまたがってデータを永続的に保存し、高速なフェイルオーバー、データベースリカバリ、ノードの再起動を可能にします。インメモリパフォーマンスとマルチ AZ 耐久性の両方を提供する Amazon MemoryDB は、マイクロサービスアプリケーション向けに高性能プライマリデータベースとして使用できるため、キャッシュと耐久性のあるデータベースの両方を個別に管理する必要がありません。

Redis の互換性

Redis は、高速でオープンソースのインメモリ key-value データストアです。デベロッパーは、Redis を使用してミリ秒未満の応答時間を実現し、ゲーム、アドテクノロジー、金融サービス、ヘルスケア、IoT の業界のリアルタイムアプリケーションで、1 秒間に数百万件のリクエストを可能にしています。2021 年、Redis は Stack Overflow の「最も愛されるデータベース」に 5 年連続で選ばれました。

Redis は、アジャイルで汎用性の高いアプリケーションを構築するための柔軟な API、コマンド、ストリームやセットやリストなどのデータ構造を提供しています。MemoryDB は、オープンソースの Redis との互換性を維持し、使い慣れた同じ Redis データ型、パラメータ、コマンドのセットをサポートしています。つまり、Redis で現在使用しているコード、アプリケーション、ドライバー、ツールを MemoryDB で使用できるため、アプリケーションをすばやく構築できるのです。

超高速なパフォーマンス

MemoryDB は、データセット全体をメモリ内に保存して、マイクロ秒の読み取りレイテンシー、1 桁ミリ秒の書き込みレイテンシー、そして高スループットを実現します。1 日に 13 兆を超えるリクエストを処理し、ピーク時には 1 秒あたり 1 億 6000 万のリクエストをサポートします。

これらのアプリケーションでは、ユーザーインタラクションまたは API コールごとに多くのサービスコンポーネントとのやり取りが発生する可能性があるため、マイクロサービスアーキテクチャを使用して構築を行うデベロッパーは非常に高いパフォーマンスを必要とします。MemoryDB を使用すると、極めて低いレイテンシーを実現し、エンドユーザーにリアルタイムのパフォーマンスを提供できます。

Amazon MemoryDB for Redis の I/O 多重化機能が強化され、スループットとレイテンシーが大規模に著しく向上しました。強化 I/O 多重化機能は、複数のクライアント接続を持つスループット制限のあるワークロードに最適で、その効果はワークロードの同時実行レベルに応じて変化します。例えば、r6g.4xlarge ノードを使用して 5200 のクライアントを同時に実行した場合、MemoryDB for Redis 6 と比較して、スループット (1 秒あたりの読み取りおよび書き込みオペレーション) が最大 46% 向上し、P99 レイテンシーが最大 21% 減少します。このようなタイプのワークロードでは、ノードのネットワーク I/O 処理がスケーリング能力の制限要因になることがあります。強化 I/O 多重化機能では、次の図の通り、各ネットワーク I/O の専用スレッドで複数のクライアントからのコマンドを Redis エンジンにパイプライン処理し、コマンドを効率的にバッチ処理する Redis の機能を活用します。

Redis 7 を使用すると、追加費用なしで強化 I/O 多重化機能が自動的に利用可能になります。MemoryDB for Redis の強化 I/O 多重化機能を使用するために、アプリケーションやサービスの設定を変更する必要はありません。

詳細については、ドキュメントを参照してください。

マルチ AZ の耐久性

MemoryDB は、データセット全体をメモリに保存するほか、分散トランザクションログを使用して、データの耐久性、整合性、回復性を提供します。MemoryDB は、複数のアベイラビリティーゾーンにまたがってデータを保存するため、データベースの高速リカバリと再起動を実現できます。MemoryDB は、高速化のためのキャッシュや、信頼性のための追加のリレーショナルまたは非リレーショナルデータベースを個別に管理する代わりに、低レイテンシーと高スループットを必要とするワークロード向けの単一のプライマリデータベースサービスとして使用できます。

スケーラビリティ

MemoryDB クラスターは、変動するアプリケーションの需要に合わせてスケーリングできます。ノードを追加または削除することで水平方向に、またはノードタイプをより大きなものやより小さなものに変更することで垂直方向に、それぞれスケーリングできます。MemoryDB は、シャーディングによる書き込みのスケーリングと、レプリカの追加による読み取りのスケーリングをサポートしています。クラスターはオンラインのままで、サイズ変更の操作中に読み取りおよび書き込み操作をサポートします。

フルマネージド型

使いやすい

MemoryDB の使用を開始するのは簡単です。AWS マネジメントコンソールを使用して新しい MemoryDB クラスターを起動するか、AWS CLI または SDK を使用します。MemoryDB データベースインスタンスは、ノードタイプの選択に適したパラメータと設定によって事前構成されています。クラスターを起動し、数分以内にアプリケーションを接続することができます。追加の設定は不要です。

モニタリングとメトリクス

MemoryDB では、データベースインスタンス用に Amazon CloudWatch メトリクスを提供しています。AWS マネジメントコンソールを使用して、コンピューティング、メモリ、ストレージ、スループット、アクティブ接続など、クラスターに対する 35 以上の主要な運用メトリクスを確認できます。

ソフトウェアの自動パッチ適用

MemoryDB は、新しいアップデートでクラスターを自動的に最新の状態に保ちつつ、クラスターを最新バージョンの Redis に簡単にアップグレードできます。

セキュリティ

ネットワーキング

MemoryDB は Amazon VPC で実行されます。これにより、データベースを独自の仮想ネットワークに隔離し、業界標準の暗号化 IPsec VPN を使用してオンプレミスの IT インフラストラクチャに接続できます。さらに、MemoryDB の VPC 設定を使用すると、ファイアウォールを設定してデータベースインスタンスへのネットワークアクセスを制御することもできます。

暗号化

MemoryDB では、保管中のデータは、AWS Key Management Service (KMS) で作成および管理するキーを使用して暗号化されます。 また、AWS Graviton2 ノードタイプで作成されたクラスターには、常時オン状態の 256 ビット DRAM 暗号化が含まれます。MemoryDB は、Transport Layer Security (TLS) を使用した実行中の暗号化をサポートしています。

API レベルの許可

AWS Identity and Access Management (IAM) の機能と Amazon MemoryDB を連携させて使用すると、AWS IAM ユーザーおよびグループが Amazon MemoryDB リソースに対して実行できるアクションを管理できます。例えば、IAM ルールを設定して、特定のユーザーは読み取りアクセスのみ、管理者はリソースの作成、変更、削除が可能となるようにできます。API レベルの権限付与の詳細については、Amazon MemoryDB に対する AWS IAM ポリシーの使用を参照してください。

認証と認可

MemoryDB は、Redis アクセスコントロールリスト (ACL) を使用して、クラスターの認証と認可の両方を制御します。ACL によって、同じクラスター内の異なるユーザーに対してさまざまなアクセス許可を定義できます。

Kubernetes との統合

Amazon MemoryDB 向けの AWS Controllers for Kubernetes (ACK) を使用すると、Kubernetes クラスターから MemoryDB リソースを直接定義して使用することができます。これは、Kubernetes アプリケーションのサポートに MemoryDB を活用できるようにするもので、クラスター外で MemoryDB リソースを定義したり、クラスター内でインメモリデータベース機能を実行して管理したりする必要はありません。Amazon ECR から MemoryDB ACK コンテナイメージをダウンロードすると、インストールガイダンスについてのドキュメント参照できます。 詳細については、ブログもご覧ください。

注: Amazon MemoryDB 向けの ACK が一般公開されました。Github ページでフィードバックをお送りください。

Amazon MemoryDB 向けの ACK

JSON サポート

Amazon MemoryDB は、オープンソースの Redis に含まれるデータ構造に加えて、JavaScript Object Notation (JSON) ドキュメントのネイティブなサポートを追加料金なしで提供しています。JSON ドキュメント用に設計および最適化された組み込みコマンドを使用することで、アプリケーションの開発を簡素化できます。MemoryDB は、JSON ドキュメントの一部のアップデートと、JSONPath クエリ言語を使用した高機能な検索およびフィルタリングをサポートしています。JSON サポートは、Redis 6.2 以降を使用している場合にご利用いただけます。詳細については、MemoryDB ドキュメントを参照してください

Amazon MemoryDB for Redis を使用すると、機械学習 (ML) モデルと生成型人工知能 (AI) モデルが、データを移動することなく、Amazon MemoryDB に保存されているデータをリアルタイムで処理できます。Amazon MemoryDB では、Redis データ構造内に埋め込まれたベクターを保存、検索、インデックス作成、クエリできます。

ベクターは、テキスト、画像、動画などの非構造化データを数値で表現したもので、ML モデルから作成され、基礎となるデータの意味を捉えるのに役立ちます。Amazon Bedrock や Amazon SageMaker などの ML モデルや AI モデルからのベクター埋め込みを Amazon MemoryDB データベースに保存できます。Amazon MemoryDB のベクター検索の詳細については、こちらのドキュメントをご覧ください

MemoryDB のベクター検索のプレビューでは、数百万のベクター埋め込みを保存し、1 桁ミリ秒のベクター検索と更新のレイテンシーで、99%を超えるリコール率で毎秒何万ものクエリ (QPS) を実行できます。

MemoryDB のベクトル検索は、ピークパフォーマンスとスケールが最も重要な選択基準であるユースケースに適しています。チャットボットの検索拡張生成 (RAG)、不正検出、リアルタイムレコメンデーション、ドキュメント検索などのユースケースでは、ベクトル検索を使用してリアルタイム ML やジェネレーティブ AI アプリケーションを強化できます。

コストの最適化

MemoryDB は、クラスターを数百テラバイトの容量までスケールアップするための低コストな方法として、データ階層化を提供します。データ階層化は、データをメモリに保存するだけでなく、各クラスターノードに搭載された低コストのソリッドステートドライブ (SSD) を利用することで、MemoryDB の料金パフォーマンスの選択肢を提供します。データセット全体の最大 20% に定期的にアクセスするワークロードや、SSD 上のデータにアクセスする際に追加のレイテンシーを許容できるアプリケーションに最適です。

クラスターでデータを階層化して使用する場合、MemoryDB は、利用可能なメモリ容量が消費されると、自動的かつ透過的に、最近使用された項目をメモリからローカルにアタッチされた NVMe SSD に移動させるように設計されています。SSD に保存されたアイテムにアクセスすると、MemoryDB はそれをメモリに移動してからリクエストに対応します。MemoryDB データ階層化は Graviton2 ベースの R6gd ノードで利用可能です。R6g ノード (メモリのみ) と比較すると、R6gd ノードは約 5 倍の総容量 (メモリ + SSD) を持ち、最大使用率で稼働させた場合に 60% 以上のストレージコスト節約を達成可能です。500 バイトの文字列値を想定した場合、SSD に保存されたデータへの読み取りリクエストには、メモリ内のデータへの読み取りリクエストと比較して、通常 450 μs の追加レイテンシーが生じると考えられます。

MemoryDB では、1 年または 3 年の利用契約を条件に、オンデマンドノード価格より最大 55% 安く利用できるリザーブドノードを提供しています。リザーブドノードは MemoryDB オンデマンドノードを補完するもので、ビジネスに柔軟性をもたらし、コスト削減に役立ちます。MemoryDB では、リザーブドノードの支払い方法として、「前払いなし」、「一部前払い」、「全前払い」の 3 種類があり、前払いする金額と実効時間単価とのバランスを取ることができます。

MemoryDB リザーブドノードは、ノードファミリーおよび AWS リージョン内で柔軟にサイズを選べます。同じノードファミリーのすべてのサイズの使用には、割引されたリザーブドノード料金が自動的に適用されます。サイズが柔軟であるためリザーブドノードの管理に時間を減らすことができ、特定のデータベースノードサイズに縛られることもないため、データベースの更新が必要な場合も割引を最大限に活用できます。

料金に関する詳細
MemoryDB の料金を確認する

MemoryDB の料金設定オプションをご覧ください。

詳細 
チュートリアルで学ぶ
チュートリアルで学ぶ

最初の MemoryDB クラスターを設定する方法の詳細をご覧ください。

詳細  
 MemoryDB での構築を開始する
MemoryDB での構築を開始する

使用を開始するには、MemoryDB ユーザーガイドをご確認ください。

ドキュメントを読む