のデータ階層化 ElastiCache - Amazon ElastiCache

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

のデータ階層化 ElastiCache

ElastiCache レプリケーショングループで構成され、r6gd ファミリーのノードタイプを使用する Valkey または Redis OSSクラスターでは、そのデータはメモリとローカル SSD (ソリッドステートドライブ) ストレージの間で階層化されます。データ階層化は、データをメモリに保存することに加えて、各クラスターノードで低コストのソリッドステートドライブ (SSDs) を使用することで、Valkey または Redis OSSワークロードに新しい価格パフォーマンスオプションを提供します。これは、データセット全体の最大 20% に定期的にアクセスするワークロードや、 上のデータにアクセスする際に追加のレイテンシーを許容できるアプリケーションに最適ですSSD。

データ階層化を持つ ElastiCache クラスターでは、 は、保存するすべてのアイテムの最後のアクセス時間 ElastiCache を監視します。使用可能なメモリ (DRAM) が完全に消費されると、 ElastiCache は最も最近使用された (LRU) アルゴリズムを使用して、アクセス頻度の低い項目をメモリから に自動的に移動しますSSD。のデータがSSDその後アクセスされると、リクエストを処理する前に ElastiCache 、自動的かつ非同期でメモリに戻ります。データのサブセットにのみ定期的にアクセスするワークロードがある場合、データ階層化は容量を優れたコスト効率でスケールするための最適な方法となります。

データ階層化を使用する場合、キー自体は常にメモリに残り、 はメモリとディスクの値の配置LRUを管理します。一般に、データ階層化を使用する際は、キーサイズを値のサイズよりも小さくすることをお勧めします。

データ階層化は、アプリケーションワークロードへのパフォーマンスの影響を最小限に抑えるように設計されています。例えば、500 バイトの文字列値を仮定すると、メモリ内のデータへのリクエストSSDと比較して、 に保存されているデータへのリクエストには平均して 300 マイクロ秒のレイテンシーが追加で発生すると予想されます。

最も大きいデータ階層化ノードサイズ (cache.r6gd.16xlarge) では、単一の 500 ノードクラスターに最大 1 ペタバイトを保存できます (1 つのリードレプリカを使用する場合は 500 TB)。データ階層化は、 でサポートされているすべての Valkey または Redis OSS コマンドとデータ構造と互換性があります ElastiCache。この機能を使用するためのクライアント側の変更は必要ありません。

ベストプラクティス

推奨されるベストプラクティスを以下に示します:

  • データ階層化は、データセット全体の最大 20% に定期的にアクセスするワークロードや、 上のデータにアクセスするときに追加のレイテンシーを許容できるアプリケーションに最適ですSSD。

  • データ階層型ノードで使用可能なSSD容量を使用する場合は、値サイズをキーサイズよりも大きくすることをお勧めします。項目が DRAMと の間で移動されるとSSD、キーは常にメモリに残り、値のみがSSD階層に移動します。

制限事項

データ階層化には以下の制限があります。

  • データ階層化は、レプリケーショングループの一部であるクラスターでのみ使用できます。

  • 使用するノードタイプは、us-east-2us-east-1us-west-2us-west-1eu-west-1eu-central-1eu-north-1eu-west-3ap-northeast-1ap-southeast-1ap-southeast-2ap-south-1ca-central-1sa-east-1 のリージョンで使用できる r6gd ファミリーのものである必要があります。

  • Valkey 7.2 以降のエンジン、または Redis 6.2 OSS 以降のエンジンを使用する必要があります。

  • r6gd クラスターのバックアップは、r6gd を使用しなければ別のクラスターに復元できません。

  • データ階層化クラスターのバックアップを Amazon S3 にエクスポートすることはできません。

  • オンライン移行は、r6gd ノードタイプで実行されるクラスターではサポートされていません。

  • データ階層化クラスター (r6gd ノードタイプを使用するクラスターなど) からデータ階層化を使用しないクラスター (r6g ノードタイプを使用するクラスターなど) へのスケーリングはサポートされていません。詳細については、「スケーリング ElastiCache」を参照してください。

  • 自動スケーリングは、Valkey バージョン 7.2 以降、および Redis OSSバージョン 7.0.7 以降のデータ階層化を使用するクラスターでサポートされています。詳細については、「Auto Scaling Valkey クラスターと Redis OSSクラスター」を参照してください

  • データ階層化では、volatile-lruallkeys-lruvolatile-lfuallkeys-lfu、および noeviction の maxmemory ポリシーのみがサポートされます。

  • フォークレスセーブは、Valkey バージョン 7.2 以降、および Redis OSSバージョン 7.0.7 以降でサポートされています。詳細については、「同期とバックアップの実装方法」を参照してください。

  • 128 MiB を超える項目は に移動されませんSSD。

料金

R6gd ノードの合計容量 (メモリ + SSD) は 4.8 倍であり、R6g ノード (メモリのみ) と比較して最大使用率で実行した場合、60% を超える削減を実現できます。詳細については、ElastiCache 「 の料金」を参照してください。

モニタリング

ElastiCache には、データ階層化を使用するパフォーマンスクラスターをモニタリングするために特別に設計されたメトリクスが用意されています。DRAM と比較した の項目の比率をモニタリングするにはSSD、 CurrItemsのメトリクスを Valkey と Redis のメトリクスOSSで使用できます。パーセンテージは、 (ディメンション: 階層 = メモリ * 100 CurrItems の場合) / (ディメンションフィルターCurrItems なしの場合) として計算できます。

設定されたエビクションポリシーで許可されている場合、メモリ内の項目の割合が 5% を下回ると、 ElastiCache は項目のエビクションを開始します。逸脱ポリシーで設定されたノードでは、書き込みオペレーションはメモリ不足エラーを受け取ります。

メモリ内の項目の割合が 5% を下回る場合は、クラスターモードが有効になっているクラスターのスケールアウトまたはクラスターモードが無効になっているクラスターのスケールアップを検討することをお勧めします。スケーリングの詳細については、「」を参照してくださいValkey または Redis でのクラスターのスケーリング OSS (クラスターモードが有効)。データ階層化を使用する Valkey または Redis OSSクラスターのメトリクスの詳細については、「」を参照してくださいValkey と Redis のメトリクス OSS

データ階層化の使用

レプリケーショングループの一部としてクラスターを作成する場合は、r6gd ファミリーから cache.r6gd.xlarge などのノードタイプを選択し、データ階層化を使用します。ノードタイプを選択すると、データ階層化が自動的に有効になります。

クラスター作成の詳細については、Valkey または Redis 用のクラスターの作成 OSS を参照してください。

を使用してレプリケーショングループを作成するときは AWS CLI、cash.r6gd.xlarge などの r6gd ファミリーからノードタイプを選択し、 --data-tiering-enabledパラメータを設定して、データ階層化を使用します。

r6gd ファミリーからノードタイプを選択する際に、データ階層化をオプトアウトすることはできません。--no-data-tiering-enabled パラメータを設定すると、オペレーションは失敗します。

Linux、macOS、Unix の場合:

aws elasticache create-replication-group \ --replication-group-id redis-dt-cluster \ --replication-group-description "Redis OSS cluster with data tiering" \ --num-node-groups 1 \ --replicas-per-node-group 1 \ --cache-node-type cache.r6gd.xlarge \ --engine redis \ --cache-subnet-group-name default \ --automatic-failover-enabled \ --data-tiering-enabled

Windows の場合:

aws elasticache create-replication-group ^ --replication-group-id redis-dt-cluster ^ --replication-group-description "Redis OSS cluster with data tiering" ^ --num-node-groups 1 ^ --replicas-per-node-group 1 ^ --cache-node-type cache.r6gd.xlarge ^ --engine redis ^ --cache-subnet-group-name default ^ --automatic-failover-enabled ^ --data-tiering-enabled

このオペレーションを実行すると、以下のようなレスポンスが表示されます。

{ "ReplicationGroup": { "ReplicationGroupId": "redis-dt-cluster", "Description": "Redis OSS cluster with data tiering", "Status": "creating", "PendingModifiedValues": {}, "MemberClusters": [ "redis-dt-cluster" ], "AutomaticFailover": "enabled", "DataTiering": "enabled", "SnapshotRetentionLimit": 0, "SnapshotWindow": "06:00-07:00", "ClusterEnabled": false, "CacheNodeType": "cache.r6gd.xlarge", "TransitEncryptionEnabled": false, "AtRestEncryptionEnabled": false } }

データ階層化を有効にして、バックアップからクラスターにデータを復元する

(コンソール)、 ()、または (AWS CLI) を使用して、データ階層化を有効にした新しいクラスターにバックアップを復元できますElastiCache API。r6gd ファミリーのノードタイプを使用してクラスターを作成すると、データ階層化が有効になります。

データ階層化を有効にして新しいクラスターにバックアップを復元するには (コンソール)
  1. にサインイン AWS Management Console し、 https://console.aws.amazon.com/elasticache/で ElastiCache コンソールを開きます。

  2. ナビゲーションペインで [バックアップ] を選択します。

  3. バックアップのリストで、復元元のバックアップ名の左にあるチェックボックスをオンにします。

  4. [復元] を選択します。

  5. [クラスターの復元] ダイアログボックスに入力します。すべての [Required] (必須) フィールドと、デフォルト値から変更するその他のフィールドに入力します。

    1. [クラスター ID] – 必須。新しいクラスターの名前。

    2. クラスターモードが有効 (スケールアウト) — Valkey または Redis OSS (クラスターモードが有効) クラスターの場合はこれを選択します。

    3. Node Type - cache.r6gd.xlarge または r6gd ファミリーの他のノードタイプを指定します。

    4. シャードの数 – 新しいクラスター (API/CLI: ノードグループ) に必要なシャードの数を選択します。

    5. [Replicas per Shard] – 各シャードに必要なリードレプリカのノード数を選択します。

    6. [Slots and keyspaces] – シャード間でキーを分散する方法を選択します。キーの分散を指定する場合は、各シャードのキー範囲を指定するテーブルを作成します。

    7. [Availability zone(s)] – クラスターのアベイラビリティーゾーンの選択方法を指定します。

    8. [Port] – 新しいクラスターで別のポートを使用する場合のみ、これを選択します。

    9. を選択 VPC — このクラスターを作成する VPC を選択します。

    10. パラメータグループ – 選択したノードタイプの Valkey または Redis オーバーOSSヘッドに十分なメモリを予約するパラメータグループを選択します。

  6. すべての設定が正しいことを確認したら、[作成] を選択します。

クラスター作成の詳細については、Valkey または Redis 用のクラスターの作成 OSS を参照してください。

を使用してレプリケーショングループを作成する場合 AWS CLI、データ階層化は、デフォルトで cache.r6gd.xlarge などの r6gd ファミリーからノードタイプを選択し、 --data-tiering-enabledパラメータを設定することで使用されます。

r6gd ファミリーからノードタイプを選択する際に、データ階層化をオプトアウトすることはできません。--no-data-tiering-enabled パラメータを設定すると、オペレーションは失敗します。

Linux、macOS、Unix の場合:

aws elasticache create-replication-group \ --replication-group-id redis-dt-cluster \ --replication-group-description "Redis OSS cluster with data tiering" \ --num-node-groups 1 \ --replicas-per-node-group 1 \ --cache-node-type cache.r6gd.xlarge \ --engine redis \ --cache-subnet-group-name default \ --automatic-failover-enabled \ --data-tiering-enabled \ --snapshot-name my-snapshot

Linux、macOS、Unix の場合:

aws elasticache create-replication-group ^ --replication-group-id redis-dt-cluster ^ --replication-group-description "Redis OSS cluster with data tiering" ^ --num-node-groups 1 ^ --replicas-per-node-group 1 ^ --cache-node-type cache.r6gd.xlarge ^ --engine redis ^ --cache-subnet-group-name default ^ --automatic-failover-enabled ^ --data-tiering-enabled ^ --snapshot-name my-snapshot

このオペレーションを実行すると、以下のようなレスポンスが表示されます。

{ "ReplicationGroup": { "ReplicationGroupId": "redis-dt-cluster", "Description": "Redis OSS cluster with data tiering", "Status": "creating", "PendingModifiedValues": {}, "MemberClusters": [ "redis-dt-cluster" ], "AutomaticFailover": "enabled", "DataTiering": "enabled", "SnapshotRetentionLimit": 0, "SnapshotWindow": "06:00-07:00", "ClusterEnabled": false, "CacheNodeType": "cache.r6gd.xlarge", "TransitEncryptionEnabled": false, "AtRestEncryptionEnabled": false } }