Momentoの自動プロビジョニング

2022.12.13

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Introduction

Momento Serverless Cache(以下Momento)は
クラウドネイティブな高速キャッシュサービスです。
このblogでも何度か紹介しており、
下記のような特徴をもっています。

  • セットアップがとても簡単
  • プロビジョニングの必要がない(自動でうまくやってくれる)
  • 料金はデータの転送量($0.15/GB)のみ。月50GBまでは無料

以前はMomentoのセキュリティ面からMomentoについて紹介しました。
今回はMomentoの自動プロビジョニングについて紹介します。

Problems with existing DataCash

世の中にはキャッシュ機能を提供するサービスがたくさんあります。
しかし、既存サービスには以下のような問題があります。

スケールアップ時の問題

スケールアップ速度

短時間に負荷が集中してキャッシュサーバをスケールアップする必要があるとき、
そのスケーリング処理に時間がかかることがあります。
あまりに時間がかかりすぎて、スケーリング完了前に
負荷のピークが過ぎてしまうこともあったりします。

コールドキャッシュ問題

コールドキャッシュとは空っぽのキャッシュのことです。
キャッシュは本来、処理の高速化やデータストアの負荷軽減のために使用します。
ユーザーがデータストアにアクセスしなくてもキャッシュからデータを取得できれば、
キャッシュの目的を果たせます。
このためには、キャッシュがマスタとなるデータストアと同じ値をもつ必要があります。

しかしスケールアップしたとき、適切にウォームアップしなければ
コールドキャッシュが頻発するのでスケールした意味がありません。

オーバープロビジョニング

過剰なプロビジョニングは余分なインフラストラクチャコストを発生させるだけです。
しかし、適切なスケールを予測し、適切なタイミングで
スケールアップ/ダウンをすることは簡単ではありません。
そのため、ピーク時の負荷に対してクラスタをオーバープロビジョニングしがちです。
その結果、「適切にスケールしていれば必要なかったコスト」を支払うことになります。

また、スケーリングが手作業だった場合はエラーが発生しやすく、
可用性のリスクも大きくなります。

ホットキーとその影響

ホットキーとは、シャードに高負荷を発生させるキーを指します。
あるシャードに対し、1つのホットキーが原因でシャード全体またはノード全体が
高負荷状態になり、インスタンス、あるいはクラスタ全体のスケールアップが必要になります。
この問題への既存アプローチは、レプリカの追加かアプリレベルのシャーディンですが、
どちらもコストが高くなります。

メンテナンスウィンドウ

既存のクラウドキャッシュサービスでは、
定期的にメンテナンスウィンドウが発生します。
メンテナンスウィンドウが発生すると、その影響でコールドキャッシュが発生し、
結局アプリサーバやDBサーバへの負荷が上がります。

Solution in Momento

Momentoではさきほど述べたような問題を
解決し、ユーザーはアプリから
データキャッシュを使うことだけに集中できます。

スケールアップ&プロビジョニングの問題

Momentoにプロビジョニングの概念はありません。
いちいちプロビジョニングしなくても、必要があれば即座に
ウォームキャッシュを(システム側で)用意してくれます。
そのため、オーバプロビジョニングによる不必要なコストは一切かかりません。
Momentoでかかるコストは「1GBの転送量で$0.15のみ」です。
※月50GBまでは無料で使用可能です

また、スケーリングが発生したときも適切にウォームアップされているので、
コールドキャッシュを気にする必要はありません。
そのまま高キャッシュヒット率と低レイテンシーを維持可能です。

ホットキーの問題

Momentoは定期的にホットキーのサンプリング処理を実施し、
自動でホットキーのコピーを作成するので、
ホットキーがノードに負荷をかけることはありません。
ホットシャードに関しても、Momentoが自動でチェックして
再シャード&ウォームアップを行います。

メンテナンスウィンドウの問題

Momentoには、メンテナンスウィンドウによるダウンタイムはありません。
開発チームが実施しているキャッシュウォーミング手法を使うと、
キャッシュレイテンシや負荷、キャッシュヒット率などに影響を一切与えることなく
ソフトウェアのパッチ適用と最適化を行うことができるようになっています。

そのため、運用時にメンテナンスウィンドウを考慮する必要は一切ありません。

Summary

今回はプロビジョニング・スケーリングの観点からMomentoについて紹介しました。
Momentoを使えばデータキャッシュのインフラ管理を一切気にせず、
コストも必要な分だけで使用可能です。
ぜひ試してみてください。

なお、Momentoについてのお問い合わせはこちらです。
お気軽にお問い合わせください。

Momentoセミナーのお知らせ

2023年1月に、Momentoのセミナーを実施予定です。
詳細が決定し次第、SNSやこのblogでお知らせしますので、
興味があるかたはご参加ください。

2023年1月13日(金) 16:00からMomentoのセミナーを開催します。
興味があるかたはぜひご参加ください。

References