データベース・キャッシュ:サーバーレス・ソリューションとDynamoDBでDAXを凌駕せよ

サーバーが一杯のキャッシュでデータベースが滞らないようにしましょう。

真のサーバーレスソリューションとして、Momento CacheはDynamoDBに最適なキャッシュです。DynamoDBを使用する場合、開発者の経験、可用性、スケール、弾力性、コストに対応できるキャッシュが必要です。数百万RPSを処理できるDynamoDBテーブルの作成は、単一のAPIであるcreateTable()を呼び出すだけでよいのです。複雑さはすべて抽象化されます。Momentoは、createCache()コールで同様の体験を提供します。インスタンス、シャード、レプリカなどの心配はなく、メンテナンスウィンドウもありませn。また、DynamoDBはVPCの有無にかかわらず動作します。Momentoは同じ開発者体験をエミュレートします。さらに、DynamoDBはミッションクリティカルな可用性でスケールする一方で、コストについてもゼロにスケールします。可用性の高いテーブルを実行し、使用した分だけを支払うことができます。Momento Cacheも同様のオンデマンドベースの価格設定です。

DAXは、エンドポイントを変更するだけで、DynamoDBテーブルをこのようにシームレスに高速化することを約束しています。しかし、残念ながらシームレスではありません。

DAXをサーバーレス・ソリューションに置き換えるべき5つの理由

1.当たり前のことを繰り返すが、DAXはサーバーレスではありません。つまり、高価で、弾力的にスケールせず、複雑な設定が必要で、メンテナンス・ウィンドウがあります。DAXエンドポイントがダウンすれば、アプリケーションもダウンします。確かに、クライアントにロジックを追加することでこれを軽減することはできるが、それは統合エクスペリエンスに継ぎ目を加えることになります。

2.DAXには独自のプロトコルがあり、DynamoDBの冗長なJSONベースのワイヤープロトコルに比べて合理的な最適化だが、これにはいくつかの欠点があります。特別なバイナリが必要で、エンドポイントが異なる既存のSDKをそのまま使うことはできません。

3.特殊なバイナリを必要とするため、DAXはすべての言語(またはSDKの最新バージョン)でサポートされているわけではありません。

4.DAXにはスケールの上限があり、弾力性も限られています。シングルライターアーキテクチャと最大10個のリードレプリカでは、1つのノードの書き込みスループットに制限されます。このことは可用性に深刻な影響を及ぼします。最悪の場合、DynamoDBが与えてくれる以上のレイテンシが発生します。最悪の場合、深刻な障害が発生します。

5.DAXはDynamoDBのイノベーションのペースに追いついていません。2018年半ば以降に登場したインスタンスタイプをサポートしておらず、すべてのリージョンでサポートされているわけでもなく、一般的なプログラミング言語をすべて適切にサポートしているわけでもなく、DynamoDBのすべての機能(たとえばPartiQL)をサポートしているわけでもありませn。

サーバーレスデータベースのためのサーバーレスキャッシュ

別個のバイナリ、別個のエンドポイントを使用し、すべてのSDKでサポートしていないのであれば、DynamoDBを高速化する価値のあるサーバーレスキャッシュを使用した方がよいでしょう。真のサーバーレスキャッシュは、プロビジョニングが不要で、シームレスにスケールし、メンテナンスウィンドウがなく、従量課金モデルで、レスポンスを高速化しながら、DynamoDBの使用量を実際に節約することができます。Momento Cacheはまさにそれを実現します!DynamoDBのワークフローとMomento Cacheを組み合わせることで、レイテンシを最大60%改善することができます。

これは大胆な主張ですが、私たちの言葉を鵜呑みにする必要はありません。Ellery Addington-Whiteのこのブログをチェックしてください。ここでは、Momento CacheがDynamoDBを高速化するシンプルなオープンソースで再現可能な例を紹介しています。信じられないですか?Elleryがどのように1行のコードでDynamoDBのワークフローを高速化できたかをご覧ください。

試してみてください。そして、Momento CacheよりもDAXの方が好きかどうかを私たちに教えてください。