Redis 向けのスケーリング ElastiCache - Amazon ElastiCache フォー・レディス

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

Redis 向けのスケーリング ElastiCache

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

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

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

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

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

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

サーバーレスによるプレスケーリング ElastiCache

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

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

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

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

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

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

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

  • ElastiCache サーバーレスは、要求された最小スケールをキャッシュの集計レベルでサポートします。 ElastiCache また、サーバーレスは 1 スロットあたり最大 30K ECPU/秒 (READONLY 接続で Read from Replica を使用した場合は 90K ECPU/秒) をサポートします。ベストプラクティスとして、アプリケーションでは Redis スロット間のキーの配分と、キー間のトラフィックができるだけ均一になるようにする必要があります。

コンソールを使用してスケーリング制限を設定し、 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}'