インスタンスのスケーリングについて

このページでは、Memorystore for Redis インスタンスがスケーリング時にどのように動作するかを説明します。Redis インスタンスをスケーリングする方法については、Redis インスタンスをスケーリングするをご覧ください。

インスタンスの階層によっては、インスタンスをスケーリングするとアプリケーションのパフォーマンスやストレージに影響します。また、インスタンスのスケーリングには、現在使用中のメモリ量に応じた制限も存在します。このページでは、インスタンスのスケーリングがアプリケーションに与える影響と、インスタンスをスケーリングできるタイミングについて説明します。

インスタンスのスケーリングのベスト プラクティス

  • 標準階層のインスタンスの場合、スケーリング オペレーションの速度と信頼性を向上させるには、インスタンスのトラフィックが少ない期間にインスタンスをスケーリングします。インスタンスのトラフィックをモニタリングする方法については、Redis インスタンスのモニタリングをご覧ください。

  • 標準階層インスタンスの容量を削減する場合は、格納されているデータ量よりも多いサイズを選択しないとスケーリングに失敗します。

    • たとえば、10 GB のインスタンスに 5.5 GB のデータが保存されている場合は、インスタンスのサイズは 6 GB 以上に変更できます。インスタンスが使用するストレージの量は、Google Cloud コンソールの詳細ページに表示されます。

インスタンス スケーリング時の動作

ベーシック ティアとスタンダード ティアの両方のインスタンスのスケーリング中、データは保持されます。インスタンスをスケーリングすると、インスタンスに対して数分以内の短い接続リセットが行われます。インスタンスに再接続できるように、アプリケーションのコードに再試行ロジックを組み込むことをおすすめします。同じ IP アドレスと接続文字列が保持されます。

また、インスタンスのコア指標が表示されない数分間のギャップが生じることがあります。短い接続リセットを除き、この間もインスタンスは使用可能な状態を維持し、時間間隔が完了すると指標のレポートが再開されます。インスタンスが使用不能の期間中にキャッシュに書き込みや更新が行われなかった古いデータや整合性のないデータがわずかにうまれる可能性があります。

接続が切断されている間に書き込みを発行すると、Memorystore はエラー READONLY You can't write against a read only replica を返します。このエラーは一時的なもので、数秒しか続きません。スケーリング オペレーションが完了すると解決します。

スケーリング時の書き込み負荷

インスタンス トラフィックが少ない期間にインスタンスをスケーリングして、アプリケーションへのパフォーマンスの影響を最小限に抑えます。書き込み負荷が高い場合やメモリの負荷が高い場合は、スケーリング オペレーションに要する時間が大幅に長くなり、オペレーションが失敗する可能性があります。詳細については、スケーリングとバージョン アップグレードのオペレーションをご覧ください。

期限切れのキー

標準階層のインスタンスをスケーリングする際、期限切れのキーは同期されません。スケーリングする前に Redis インスタンスでキーが期限切れになっていると、インスタンスのスケーリング後にキーが少なくなります。

ベスト プラクティス

インスタンスの容量をスケーリングするには、次のベスト プラクティスをおすすめします。

  • スケーリングのタイミングを選択する: インスタンスのスケーリングの速度と信頼性を向上させるには、トラフィックが少ない期間にスケーリングします。インスタンス トラフィックをモニタリングする方法については、インスタンスをモニタリングするをご覧ください。
  • スケールイン時に保存されたデータを考慮する: インスタンスをスケールインする場合は、インスタンスに保存されているデータ量よりも大きいサイズを選択する必要があります。たとえば、10 GB のインスタンスに 5.5 GB のデータが保存されている場合は、インスタンスのサイズを 6 GB 以上に変更します。
  • スケーリングできない場合に再試行する: リソースの可用性は頻繁に変化します。一時的なリソース制約のためにインスタンスをスケーリングできない場合は、後でインスタンスをスケーリングしてみてください。