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

分散ロック: DynamoDBロッククライアントを50%以上節約

Momentoのドロップイン交換用ロック・ライブラリーは、コスト削減と性能向上を実現します。

Pratik Agarwal
Author

Share

前回のブログでは、MomentoがDynamoDBのロッククライアントをドロップインで置き換えることで、分散ロックを簡素化し、高トラフィックシナリオでのパフォーマンスとユーザーエクスペリエンスの両方を向上させる方法について説明しました。さて、今回はテクノロジー導入の重要な側面である費用対効果に焦点を移します。このパートでは、MomentoとDynamoDBロッククライアントライブラリの詳細なコスト分析を行い、Momentoが提供する大幅なコスト削減を実証します。

MomentoとDynamoDBのロッククライアントのコスト分析

アメリカではスーパーボウルが開催され、ファンたちは10万席の争奪戦を繰り広げている!このようなイベント時のファンのオンライン予約行動は予測不可能で、予約の途中で選んだ席を放棄し、他の人が急襲して席を確保することもあります。このハイエナジーで予測不可能な環境は、MomentoとDynamoDBロック・クライアントをテストするのに最適な場となります。このシナリオでは、DynamoDB OnDemandのキャパシティを活用して、ファンとのやりとりのバースト的な性質を処理し、サーバレスとリトマス試験紙の様になっています。

簡単のために、数字を分解してみよう。仮に、10分ごとに1万席の新しい座席をリリースし、5万人のファンがその座席を確保しようと躍起になっているとしよう。100分後、つまり10ラウンド後には完売が予想されます!

DynamoDBのプレー: DynamoDBのロッククライアントは、フィールド上で2つの重要な動き、すなわち、座席のロックを獲得し(1回の書き込みリクエスト)、ハートビート(1回の書き込みリクエスト)を通じてそのロックをアクティブに保つことを実行する決定力のあるプレーヤーだと考えてください。50,000人の観衆は容赦なく、それぞれが30秒ごとに席を確保しようとします。50,000人の幸運なファンも60秒(ハートビート)ごとに座席をロックし続けます。10分間のプレーで、書き込みリクエストは110万件にのぼります。セッションが100分以上完了するまでに、DynamoDBは1,100万の書き込みリクエストを実行し、約14ドルのコストを積み上げました。

計算の詳細

Momentoの戦略:


Momentoは異なる戦略をとります。直接的な書き込みリクエストの代わりに、データを使うのです。ファンが席を取ろうとするたびに(150バイト)、心臓の鼓動ごとに(300バイト)、ほんの少しのデータが使われます。10分間のエネルギッシュなプレーの後、Momentoは約0.18GBのデータを使用します。100分間の対決が終わる頃には、総データ量は1.8GBになります。1GBあたり0.5ドルというMomentoの価格戦略では、総コストはわずか1ドルであり、DynamoDBと比べて10倍近く節約できるのです!

計算の詳細

– 座席の獲得と心拍の各ラウンドは0.18GBのデータを使用します。
– 10ラウンド後の総データ使用量は1.8GBで、コストはわずか0.9ドルです。

DynamoDBをプロビジョニング・モードで最適化し、利用率が70%になるようにキャパシティを注意深く管理した場合でも、コストは3.09ドル前後で推移します。この数字は、複雑なキャパシティプランニングやAutoScalingのチューニングを必要としないMomentoのオンデマンドサービスやリクエストごとの有料サービスを利用する場合の3倍のコストです。これらの数字を自分で計算してみたいですか?DynamoDBのマジック・ナンバー・ガイドをご覧ください。

なぜ1ドル対14ドルの違いを気にするのか?

私たちの予約システムがこのイベントだけを処理するのであれば、絶対にしません。

チケット予約システムが人気を博すにつれ、ロックリクエストの規模と頻度は指数関数的に増えていきます。このシステムが、スーパーボウルのイベント1つだけでなく、テイラー・スウィフトのような需要の高いコンサートを含め、毎月何百ものイベントを処理するようになったと想像してみてください。ロック管理にMomentoを使うのとDynamoDBを使うのとでは、コストの差はさらに大きくなります。

このようなイベントを毎月約1,000件処理する場合を考えてみましょう。スーパーボウルの例で見た、1イベントあたりMomentoが約1ドル、DynamoDBが約14ドルというコストの差は、現在ではかなり大きくなっています。DynamoDBの場合、こうしたイベントの管理には毎月14,000ドル程度のコストがかかります。一方、Momentoの場合は、同じレベルのアクティビティで約1,000ドルしかかかりません。これは毎月13,000ドルの節約に相当します。年間では、$12,000に対して$156,000と差が広がります。DynamoDBのプロビジョニング・モードを利用した場合でも、年間コストは約35,000ドルまで下がりますが、Momentoは依然としてコスト削減でリードしています。

この例は単なる仮説ではありません。チケット予約からストリーム処理まで、さまざまなワークロードにわたって複数のチームが当社のようなシステムを活用する現実のシナリオでは、Momentoの累積的な費用対効果は大きなものになります。要するに、イベントごとにわずかなコスト差に見えるものが、累積すると大きな財務的インパクトとなり、大規模環境における効率的なロック管理ソリューションの価値が浮き彫りになるのです。

結論

コスト面におけるMomentoとDynamoDBの比較は、単なる数字ではなく、実際のインパクトと節約のスケーラビリティに関するものです。私たちの分析が示すように、Momentoは技術的な優位性だけでなく、特に高需要シナリオ用にスケールアップした場合のコスト面での優位性でも際立っています。

Momentoのソリューションによる効率と節約を発見し、Momentoの一般的なロッククライアントにご期待ください!

Share