Headed to QCon 2024 in San Francisco? Book a meeting with us!

「ほぼ」サーバーレスで妥協しない

フルスタックをサーバーレス標準に合わせることは、今すぐにでも可能です。

Meera Jindal
Author

Share

サーバーレスの夢は実現に近づいています。サーバーレス関数(AWS LambdaやGoogle Cloud Functions)、サーバーレスストレージ(Amazon S3やGoogle Cloud Storage)、サーバーレスデータベース(Amazon DynamoDB、Google Firestore、MongoDB Atlasなど)があります。しかし、いざキャッシュを使って加速しようとすると、コールドスタート、ホットキー、プロビジョニング容量、そして注意事項がその勢いを削いでしまいます。完全なサーバーレスの夢は、キャッシュにたどり着くと崩れ去るのです。

しかし、その必要はもうありません。真のサーバーレス要件をすべて満たす、新しいキャッシュ・ソリューションがあります。

何が真のサーバーレス・ソリューションなのか?

コンフィギュレーション:それはあなたの問題ではありません

RedisとMemcachedのマネージド・サービスは、今日最も人気のあるキャッシュ・ソリューションです。しかし、これらのテクノロジーを利用する顧客は、キャパシティプランニング、コンフィギュレーション、管理、メンテナンス、フォー ルトトレランス、スケーリングに取り組まなければならないという点で、サーバーレスの基本的なリトマス試験紙は不合格です。ほとんどの場合、顧客は過剰にプロビジョニングされたキャッシュクラスタを実行しています。ソフトウェア・アップデートやセキュリティ・パッチへの対応は困難であり、その過程でキャッシュのヒット率やミス率が影響を受けないよう、事前に計画する必要があります。実際、Amazon ElastiCacheのような一般的なサービスでは、メンテナンス・ウィンドウが課されるため、顧客はダウンタイムの計画を立てるか、メンテナンス・ウィンドウのスロットが異なる複数のクラスタによってインフラをさらに複雑にすることを余儀なくされます。

真のサーバーレス・キャッシュは、シームレスに高いスケーラビリティをサポートし、高いキャッシュ・ヒット率を維持し、顧客側の作業なしで高可用性を実現します。真のサーバーレス・キャッシュは、コンフィギュレーションが不要で、計画的なダウンタイムもゼロです。基本的に、サーバーレス・キャッシュは単に機能するだけでよく、顧客はキャッシュ・インフラのメンテナンスやチューニングに貴重なサイクルを費やすことなく、アプリケーションのコア・ロジックに集中することができます。

ホットキー:それもあなたの問題ではありません

ホット・キーとは、他のキーよりも多くのトラフィックを受ける人気のあるキーのことをさします。RedisやMemcachedクラスタでは、キーによってクラスタ内のどこにデータが保存されるかが決まります。つまり、あるキーがホットな状態になると、そのキーに対するすべてのリクエストが1つのノードに集中してボトルネックになり、キャッシュのヒット率やアプリケーションの使用感に影響を与えます。レガシー・キャッシュの場合、顧客は垂直方向にスケールアップすることでこれを回避しようとしますが、すでに最大のノードにいる場合は不可能ですし、データモデルをリファクタリングする場合は数週間かかるかもしれません。

真のサーバーレス・キャッシュは、ホットキーを検出し、追加ノード/シャードに拡散します。顧客は、ホットキーを監視するために追加のソフトウェアを書いたり、ホットキーが発見されてから数週間の停止に悩まされたりする必要がなくなります。

トラフィック・バースト:これもあなたの問題ではありません

トラフィックのバーストを処理するために、キャッシュ・クラスタはトラフィックが発生する前に事前にスケールアップする必要があります。このスケールアップは、ノードが常にコールドスタートとなるため、一般的にキャッシュのヒット率に影響を与えます。 新しいノードをプリウォームするには、追加の作業と複雑さが必要で、顧客が投資する時間はありません。

真のサーバーレス・キャッシュは、オーバープロビジョニングすることなく、シームレスに負荷のバーストを処理します。キャッシュのヒット率に影響を与えることなく、負荷に応じて即座にスケールします。

携帯性:同じくあなたの問題ではありません

サーバーレス・テクノロジーの多くは、クラウド・プロバイダーに特化しています。場合によっては、これらのサービスはあるクラウドプロバイダーにしか存在せず、他のクラウドには存在しないこともあります。例えばAWS FargateはAWSでは動作するが、GCPやAzure、その他のクラウドでは動作しません。

真のサーバーレス・サービスは、複数のクラウド・プロバイダー間でシームレスに動作し、クラウド・プロバイダーを変更する際に顧客がアプリケーションを変更する必要はありません。

継続的テスト:そしてこれもあなたの問題ではありません

サーバーレス・サービスとアプリケーションの統合を継続的にテストするのは、パイプラインにテスト環境がない限り困難です。そのような環境をセットアップすることは、アプリケーション開発者にとって余分な作業(エンドポイントの設定やSDKのチューニングなど)であり、たとえそのような手間をかけたとしても、環境の特異性が予期せぬ問題を引き起こすことがよくあります。

真のサーバーレス・キャッシュは、開発者が特別な環境を構築することなく、アプリケーション・コードをユニット・テストできる総合的な開発者体験を提供します。

そんな真のサーバーレス・キャッシュは存在するのか?

はい。Momento Cacheは、完全なサーバーレス・スタックのギャップを埋めます。サーバーレスであるためにゼロから構築されたキャッシュです。Momento Cacheは、セットアップに設定を必要とせず、シームレスに高スケールに対応し、高いキャッシュヒット率を維持し、代替ソリューションにありがちなリーキーな抽象化なしに高可用性を実現します。Momentoは真のサーバーレスキャッシュです。

・ホットキーを自動的に検出し、パーティションを追加して影響を軽減
・スケールアウト、スケールイン、デプロイ時にキャッシュノードを暖め、
キャッシュヒット率への影響を最小限に抑える
・メンテナンスウィンドウは存在せず
・AWSとGCPの両方をサポート

エンジニアは、中途半端なサーバーレス・キャッシング・ソリューションに長い時間を費やしてきました。本物のサーバーレスを体験するなら、今すぐMomentoを無料で使い始めよう

Share