エンジンバージョン - Amazon MemoryDB

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

エンジンバージョン

このセクションでは、サポートされている Valkey および Redis OSS エンジンのバージョンについて説明します。

MemoryDB バージョン 7.3

2024 年 12 月 1 日、MemoryDB 7.3 がリリースされました。MemoryDB バージョン 7.3 では、マルチリージョンクラスターがサポートされています。詳細については、「MemoryDB マルチリージョン」を参照してください。

MemoryDB バージョン 7.2.6

2024 年 10 月 8 日、Valkey 7.2.6 がリリースされました。Valkey 7.2.6 は、以前のバージョンの Redis 7OSS.2.5 と互換性が似ています。Valkey と Redis 7OSS.0 および 7.1 の主な違いは次のとおりです。

  • ZRANK および ZREVRANK コマンドの新しいWITHSCOREオプション

  • CLIENT NO-TOUCH クライアントがキーの LRU/LFU に影響を与えずにコマンドを実行する場合。

  • ノードのシャード ID を返し、レプリケーションに基づいてクラスターモードでノードを論理的にグループ化CLUSTERMYSHARDIDする新しいコマンド。

  • さまざまなデータタイプのパフォーマンスとメモリの最適化。

Valkey 7.2 と Redis 7.1 (または 7.0) OSS の間で、重大な動作変更が発生する可能性があります。

  • 同じチャネルにもサブスクライブされているRESP3クライアントPUBLISHで を呼び出すと、順序が変更され、公開されたメッセージの前に返信が送信されます。

  • スクリプトのクライアント側の追跡では、/ EVAL の呼び出し元によって宣言されたキーではなく、スクリプトによって読み取られたキーを追跡するようになりましたFCALL。

  • フリーズ時間のサンプリングは、コマンドの実行中とスクリプトで行われます。

  • ブロックされたコマンドがブロック解除されると、ACL、 OOMなどのチェックが再評価されます。

  • ACL 失敗エラーメッセージのテキストとエラーコードは統合されています。

  • キーが存在しなくなったときに解放されるブロックされたストリームコマンドには、別のエラーコード (-NOGROUP ではなく -WRONGTYPE または -) が含まれますUNBLOCKED。

  • コマンド統計は、コマンドが実際に実行された場合にのみ、ブロックされたコマンドに対して更新されます。

  • ACL ユーザーの内部ストレージは、冗長なコマンドおよびカテゴリルールを削除しなくなりました。これにより、これらのルールが 、SAVE、ACLGETUSERACLおよび ACL の一部として表示される方法が変更される場合がありますLIST。

  • TLSベースのレプリケーション用に作成されたクライアント接続はSNI、可能であれば を使用します。

  • XINFO STREAM: 視聴時レスポンスフィールドは、最後に成功したインタラクションではなく、最後に試行されたインタラクションを示すようになりました。新しいアクティブタイムレスポンスフィールドは、最後に成功したインタラクションを示すようになりました。

  • XREADGROUP と X[AUTO〕CLAIM は、何らかの読み取り/要求を実行できたかどうかにかかわらず、コンシューマーを作成します。

  • ACL LIST/ で新しく作成されたデフォルトのユーザーセット sanitize-payload ACL フラグGETUSER。

  • HELLO コマンドは、成功しない限りクライアントの状態には影響しません。

  • NAN 返信は、inf の現在の動作と同様に、単一の nan 型に正規化されます。

Valkey の詳細については、「Valkey」を参照してください。

Valkey 7.2 リリースの詳細については、「Redis 7OSS.2.4 リリースノート」 (Valkey 7.2 には Redis からバージョン 7.2.4 OSSまでのすべての変更が含まれています) と「Valkey 7.2 リリースノート」を参照してください GitHub。

MemoryDB バージョン 7.1 (拡張)

MemoryDB バージョン 7.1 では、すべてのリージョンでベクトル検索機能のサポートが追加され、重要なバグ修正とパフォーマンス強化が追加されました。

  • ベクトル検索機能: ベクトル検索は、既存の MemoryDB 機能で使用できます。ベクトル検索を使用しないアプリケーションは、その存在の影響を受けません。ベクトル検索は、すべてのリージョンで MemoryDB バージョン 7.1 以降で利用できます。詳細については、こちらのドキュメントを参照してください。

注記

MemoryDB バージョン 7.1 は Redis v7.0 OSS と互換性があります。Redis OSS7.0 リリースの詳細については、「Redis OSS on」の「Redis 7.0 リリースノートOSS」を参照してください GitHub。

MemoryDB バージョン 7.0 (拡張)

MemoryDB 7.0 では、多くの改善と新機能のサポートが追加されています。

  • 関数: MemoryDB 7 は Functions のサポートを追加し、デベロッパーが MemoryDB クラスターに保存されているアプリケーションロジックを使用してLUAスクリプトを実行できるようにするマネージドエクスペリエンスを提供します。クライアントは、接続のたびにスクリプトをサーバーに再送信する必要はありません。

  • ACL の改善: MemoryDB 7 は、アクセスコントロールリストの次のバージョン () のサポートを追加しますACLs。MemoryDB OSS Valkey 7 または Redis 7 OSS を使用すると、クライアントは特定のキーまたはキースペースに複数のアクセス許可セットを指定できるようになりました。

  • シャーディングされた Pub/Sub: MemoryDB 7 では、パブリッシャーがチャネル上の任意の数のサブスクライバーにメッセージを発行できるようにするPub/Sub functionality in a sharded way when running MemoryDB in Cluster Mode Enabled (CME). Pub/Sub機能の実行のサポートが追加されています。Amazon MemoryDB では、Valkey 7 および Redis 7 OSS チャネルは MemoryDB クラスター内のシャードにバインドされるため、シャード間でチャネル情報を伝達する必要はありません。これにより、スケーラビリティが向上しました。

  • 拡張 I/O マルチプレックス: MemoryDB Valkey 7 および Redis OSSバージョン 7 では、拡張 I/O マルチプレックスが導入されています。これにより、MemoryDB クラスターへの多数の同時クライアント接続を持つ高スループットワークロードのスループットが向上し、レイテンシーが短縮されます。例えば、r6g.4xlarge ノードのクラスターを使用し、5200 の同時クライアントを実行する場合、MemoryDB バージョン 6 と比較して、スループット (1 秒あたりの読み取りおよび書き込み操作) が最大 46% 向上し、P99 レイテンシーが最大 21% 減少します。

Valkey の詳細については、「Valkey」を参照してください。

Valkey 7.2 リリースの詳細については、「Redis 7OSS.2.4 リリースノート」 (Valkey 7.2 には Redis からバージョン 7.2.4 OSSまでのすべての変更が含まれています) および「Valkey 7.2 リリースノート」を参照してください GitHub。

MemoryDB with Redis OSSバージョン 6.2 (拡張)

MemoryDB では、Redis OSS エンジンの次のバージョンが導入されています。これにはアクセスコントロールリストを使用したユーザーの認証 (ACLs)、、自動バージョンアップグレードのサポート、クライアント側のキャッシュ、および大幅な運用上の改善が含まれます。

Redis エンジンバージョン 6.2.6 では、Redis OSSクラスター内で複雑なデータセットをエンコードするシンプルでスキーマレスな方法である、ネイティブ JavaScript Object Notation (JSON) 形式のサポートも導入されています。JSON サポートを使用すると、 を介して動作するアプリケーションOSSAPIsのパフォーマンスと Redis を活用できますJSON。詳細については、「JSON の使用開始」を参照してください。また、このデータ型の使用状況を監視 CloudWatch するために に組み込まれJsonBasedCmdsている JSON関連のメトリクスも含まれています。詳細については、「MemoryDB のメトリック」を参照してください。

Redis OSS6 では、MemoryDB は複数のパッチバージョンを提供するのではなく、Redis OSS マイナーリリースごとに 1 つのバージョンを提供します。これは、複数のマイナーバージョンから選択する必要がある場合の混乱とあいまいさを最小限に抑えるように設計されています。MemoryDBは、実行中のクラスターのマイナーバージョンとパッチバージョンを自動的に管理し、パフォーマンスの向上とセキュリティ強化を保証します。これは、サービス更新キャンペーンを通じて、標準的な顧客通知チャネルで処理されます。詳細については、「MemoryDB のサービスの更新」を参照してください。

作成時にエンジンバージョンを指定しない場合、MemoryDB は希望する Redis OSSバージョンを自動的に選択します。一方、 を使用してエンジンバージョンを指定すると6.2、MemoryDB は利用可能な Redis 6.2 OSS の優先パッチバージョンを自動的に呼び出します。

例えば、クラスターを作成するとき、‭--engine-version‬ パラメータは ‭6.2‬ に設定されます。‬‬‬‬‬‬‬‬ クラスターは、作成時に、現在利用可能な優先パッチバージョンで起動されます。完全なエンジンバージョン値を持つリクエストは拒否され、例外がスローされ、プロセスは失敗します。

を呼び出すとDescribeEngineVersionsAPI、 EngineVersionパラメータ値が 6.2 に設定され、実際のフルエンジンバージョンが EnginePatchVersionフィールドに返されます。

Redis OSS6.2 リリースの詳細については、「Redis on」の「Redis 6.2 リリースノートOSS」を参照してください GitHub。

エンジンバージョンのアップグレード

MemoryDB はデフォルトで、サービスの更新を通じて実行中のクラスターのパッチバージョンを自動的に管理します。クラスターの AutoMinorVersionUpgrade プロパティを false に設定すると、マイナーバージョンのauto アップグレードを追加でオプトアウトできます。ただし、auto パッチバージョンアップグレードをオプトアウトすることはできません。

自動アップグレードを開始する前に、クラスターを実現するプロトコルに準拠したソフトウェアを、MemoryDB がサポートする新しいバージョンにアップグレードするかどうかと、またいつアップグレードするかを管理します。このレベルのコントロールにより、特定のバージョンとの互換性を維持する、本稼働環境にデプロイする前にアプリケーションで新しいバージョンをテストする、および独自の条件とタイムラインでバージョンのアップグレードを実行することができます。

Redis OSS エンジンを搭載した既存の MemoryDB から Valkey エンジンにアップグレードすることもできます。

クラスターへのエンジンバージョンアップグレードは、以下の方法で開始できます。

  • クラスターを更新し、新しいエンジンバージョンを指定する。詳細については、「MemoryDB クラスターの変更」を参照してください。

  • 該当するエンジンバージョンのサービスアップデートを適用します。詳細については、「MemoryDB のサービスの更新」を参照してください。

次の点に注意してください:

  • より新しいエンジンバージョンにアップグレードできますが、以前のエンジンバージョンにダウングレードすることはできません。以前のエンジンバージョンを使用する場合は、既存のクラスターを削除し、新たにそれを以前のエンジンバージョンで作成する必要があります。

  • ほとんどの主要な改善は古いバージョンにバックポートされないため、最新のメジャーバージョンに定期的にアップグレードすることをお勧めします。MemoryDB が新しい AWS リージョンで利用可能になると、MemoryDB は新しいリージョンMAJOR.MINORでその時点で 2 つの最新バージョンをサポートします。例えば、新しい AWS リージョンが起動し、最新の MAJOR.MINOR MemoryDB バージョンが 7.0 および 6.2 の場合、MemoryDB は新しい AWS リージョンでバージョン 7.0 および 6.2 をサポートします。MemoryDB の新しい MAJOR.MINOR バージョンがリリースされるたびに、MemoryDB は新しくリリースされた MemoryDB バージョンのサポートを継続的に追加します。MemoryDB のリージョンの選択について詳しくは、「サポートされているリージョンおよびエンドポイント」を参照してください。

  • エンジンのバージョニングは、パッチの適用方法をできる限り制御できるように設計されています。ただし、システムまたはキャッシュソフトウェアに重大なセキュリティ脆弱性が発生した場合に、MemoryDBはお客様に代わってクラスターにパッチを適用するための権限を有します。

  • MemoryDB は、複数のパッチバージョンを提供するのではなく、Valkey または Redis マイナーリリースごとに OSS 1 つのバージョンを提供します。これは、複数のバージョンから選択する必要がある場合の混乱とあいまいさを最小限に抑えるように設計されています。MemoryDBは、実行中のクラスターのマイナーバージョンとパッチバージョンを自動的に管理し、パフォーマンスの向上とセキュリティ強化を保証します。これは、サービス更新キャンペーンを通じて、標準的な顧客通知チャネルで処理されます。詳細については、「MemoryDB のサービスの更新」を参照してください。

  • 最小限のダウンタイムでクラスターバージョンをアップグレードできます。このクラスターは、アップグレード中のすべての読み取りと、数秒かかるフェイルオーバー操作中を除き、ほとんどすべてのアップグレード中の書き込みに対応します。

  • エンジンのアップグレードは、受信書き込みトラフィックが少ない時間帯に行うことをお勧めします。

    複数のシャードを含むクラスターは、次のように処理され、パッチが適用されます。

    • アップグレード操作は、1 つのシャードにつき常に 1 回のみ実行されます。

    • 各シャードでは、プライマリが処理される前にすべてのレプリカが処理されます。シャードにレプリカが少ない場合、他のシャードのレプリカが処理を終了する前に、そのシャードのプライマリが処理されることがあります。

    • すべてのシャード間で、プライマリノードはシリーズで処理されます。一度にアップグレードできるプライマリノードは 1 つだけです。

エンジンバージョンのアップグレード方法

クラスターのバージョンアップグレードを開始するには、MemoryDB コンソール、、または MemoryDB を使用してクラスターを変更APIし AWS CLI、新しいエンジンバージョンを指定します。詳細については、以下のトピックを参照してください。

ブロックされた Redis OSS エンジンのアップグレードの解決

次の表に示すように、保留中のスケールアップオペレーションがある場合、Redis OSS エンジンのアップグレードオペレーションはブロックされます。

保留中のオペレーション ブロックされたオペレーション
スケールアップ 即時のエンジンのアップグレード
エンジンのアップグレード 即時のスケールアップ
スケールアップとエンジンのアップグレード 即時のスケールアップ
即時のエンジンのアップグレード