スケーリング ElastiCache (Memcached) - Amazon ElastiCache

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

スケーリング ElastiCache (Memcached)

スケーリング ElastiCache (Memcached)

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

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

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

スケーリングの上限を設定した場合、キャッシュが上限に達すると、アプリケーションのキャッシュパフォーマンスが低下する可能性があります。キャッシュデータストレージの最大数を設定し、キャッシュデータストレージが最大数に達すると、 ElastiCache は LRU ロジックを使用してキャッシュ内のデータの削除を開始します。ECPU/秒の最大値を設定し、ワークロードのコンピューティング使用率がこの値を超えると、 ElastiCache は Memcached リクエストのスロットリングを開始します。

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

ElastiCache Serverless による事前スケーリング

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

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

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

事前スケーリングの仕組み

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

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

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

  • ElastiCache Serverless は、キャッシュ上の集約レベルでリクエストされた最小スケールをサポートします。 ElastiCache Serverless は、スロットあたり最大 30K ECPUs/秒 (READONLY 接続を使用してレプリカから読み取るを使用する場合、90K ECPUs/秒) もサポートします。ベストプラクティスとして、アプリケーションは 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}'