スケーリング ElastiCache - Amazon ElastiCache

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

スケーリング ElastiCache

ニーズに合わせて ElastiCache キャッシュをスケーリングできます。サーバーレスキャッシュと独自設計のクラスターには、いくつかの異なるスケーリングオプションが用意されています。

ElastiCache サーバーレスのスケーリング

ElastiCache Serverless は、ワークロードトラフィックの増減に応じて自動的に対応します。 ElastiCache サーバーレスキャッシュごとに、 は、CPU、メモリ、ネットワークなどのリソースの使用率 ElastiCache を継続的に追跡します。これらのリソースのいずれかが制約されている場合、 ElastiCache サーバーレスは新しいシャードを追加し、アプリケーションをダウンタイムすることなく新しいシャードにデータを再分散することでスケールアウトします。キャッシュデータストレージのBytesUsedForCacheメトリクスとコンピューティング使用量の ElastiCacheProcessingUnits (ECPU) をモニタリング CloudWatch することで、 のキャッシュによって消費されるリソースをモニタリングできます。

スケーリング制限を設定してコストを管理する

キャッシュコストを制御するために、キャッシュデータストレージとキャッシュの ECPU/ 秒の両方で最大使用量を設定できます。そうすることで、キャッシュ使用量が設定した上限を超えることがなくなります。

スケーリングの上限を設定すると、キャッシュが上限に達すると、アプリケーションがキャッシュパフォーマンスが低下する可能性があります。キャッシュデータストレージの最大数を設定し、キャッシュデータストレージが最大数に達すると、 ElastiCache はLRUロジックを使用して (TTL) が Time-To-Live設定されたキャッシュ内のデータの削除を開始します。除外できるデータがない場合、追加データの書き込みリクエストには、メモリ不足 (OOM) エラーメッセージが表示されます。ECPU/秒の最大値を設定し、ワークロードのコンピューティング使用率がこの値を超えると、 ElastiCache はリクエストのスロットリングを開始します。

BytesUsedForCache または に上限を設定する場合はElastiCacheProcessingUnits、キャッシュがこれらの制限に近づいたときに通知されるように、上限よりも低い値でCloudWatch アラームを設定することを強くお勧めします。設定した上限の 75% にアラームを設定することをお勧めします。 CloudWatch アラームの設定方法については、「 のドキュメント」を参照してください。

ElastiCache Serverless を使用したプリスケーリング

ElastiCache サーバーレスプリスケーリング

事前スケーリングは事前ウォームとも呼ばれ、 ElastiCache キャッシュでサポートされている最小制限を設定できます。これらの最小値は、1 秒あたりの ElastiCache 処理単位 (ECPUs) またはデータストレージに設定できます。これは、予想されるスケーリングイベントの準備に役立ちます。例えば、ゲーム会社が新しいゲームの起動から 1 分以内にログインが 5 倍増加すると予想した場合、この使用量の大幅な急増に備えてキャッシュを準備することができます。

ElastiCache コンソール、CLI、または を使用してプリスケーリングを実行できますAPI。 ElastiCache サーバーレスは 60 分以内にキャッシュで使用可能な ECPUs/ 秒を更新し、最小制限の更新が完了するとイベント通知を送信します。

プリスケーリングの仕組み

コンソール、、CLIまたは を介して ECPUs/秒またはデータストレージの最小制限が更新されるとAPI、その新しい制限が 1 時間以内に利用可能になります。 ElastiCache Serverless は空のキャッシュで 30K ECPUs/秒をサポートし、レプリカからの読み取り機能を使用する場合、最大 90K ECPUs/秒をサポートします。 ElastiCache は 10~12 分ごとに 2 回 ECPUs/秒にできます。このスケーリング速度は、ほとんどのワークロードで十分です。今後のスケーリングイベントがこのレートを超えることが予想される場合は、ピークイベントの少なくとも 60 分前に最小 ECPUs/ 秒をピーク ECPUs/ 秒に設定することをお勧めします。それ以外の場合、アプリケーションはレイテンシーが増加し、リクエストのスロットリングが発生する可能性があります。

最小制限の更新が完了すると、 ElastiCache Serverless は 1 秒ECPUsあたりの新しい最小ストレージまたは新しい最小ストレージの計測を開始します。これは、アプリケーションがキャッシュでリクエストを実行していない場合や、データストレージの使用量が最小値を下回っている場合にも発生します。現在の設定から最小制限を低くすると、更新はすぐに行われるため、 ElastiCache Serverless は新しい最小制限ですぐに計測を開始します。

注記
  • 最小使用量制限を設定すると、実際の使用量が最小使用量制限を下回っていても、その制限に対して課金されます。ECPU またはデータストレージの使用量が最小使用制限を超えると、通常の料金が請求されます。例えば、最低使用制限を 100,000 ECPUs/秒に設定すると、その最低使用量を下回っても、1 時間あたり 1.224 USD (us-east-1 のECPU料金を使用) が課金されます。

  • ElastiCache Serverless は、キャッシュ上の集約レベルでリクエストされた最小スケールをサポートします。 ElastiCache Serverless は、スロットあたり最大 30KECPUs/秒 (READONLY接続を使用してレプリカから読み取るを使用する場合、90KECPUs/秒) もサポートします。ベストプラクティスとして、アプリケーションは Valkey または Redis OSSスロット間のキー分散とキー間のトラフィックが可能な限り均一であることを確認する必要があります。

コンソールと を使用したスケーリング制限の設定 AWS CLI

AWS コンソールを使用したスケーリング制限の設定

  1. にサインイン AWS Management Console し、 https://console.aws.amazon.com/elasticache/で ElastiCache コンソールを開きます。

  2. ナビゲーションペインで、変更対象のキャッシュで実行されているエンジンを選択します。

  3. 選択したエンジンを実行しているキャッシュが一覧表示されます。

  4. キャッシュ名の左側にあるラジオボタンを選択して、変更したいキャッシュを選択します。

  5. アクション を選択してから、変更 を選択します。

  6. 使用量制限 で、適切なメモリまたはコンピューティング制限を設定します。

  7. [プレビュー] をクリックして変更を確認し、[保存] をクリックして変更を保存します。

を使用したスケーリング制限の設定 AWS CLI

を使用してスケーリング制限を変更するにはCLI、 modify-serverless-cacheを使用しますAPI。

Linux

aws elasticache modify-serverless-cache --serverless-cache-name <cache name> \ --cache-usage-limits 'DataStorage={Minimum=10,Maximum=100,Unit=GB}, ECPUPerSecond={Minimum=1000,Maximum=100000}'

Windows

aws elasticache modify-serverless-cache --serverless-cache-name <cache name> ^ --cache-usage-limits 'DataStorage={Minimum=10,Maximum=100,Unit=GB}, ECPUPerSecond={Minimum=1000,Maximum=100000}'

を使用したスケーリング制限の削除 CLI

を使用してスケーリング制限を削除するにはCLI、最小制限パラメータと最大制限パラメータを 0 に設定します。

Linux

aws elasticache modify-serverless-cache --serverless-cache-name <cache name> \ --cache-usage-limits 'DataStorage={Minimum=0,Maximum=0,Unit=GB}, ECPUPerSecond={Minimum=0,Maximum=0}'

Windows

aws elasticache modify-serverless-cache --serverless-cache-name <cache name> ^ --cache-usage-limits 'DataStorage={Minimum=0,Maximum=0,Unit=GB}, ECPUPerSecond={Minimum=0,Maximum=0}'