データベース コストの削減: Comcast、楽天、Expedia、iFood

通常、インフラストラクチャ コストへの対処は、R&D チームの優先事項リストの上位にはありません。 しかし、これは典型的な時期ではありません。残念なことに、コストを削減することは、すでに過負荷のチームに課せられているもう 1 つの負担です。

データ集約型アプリケーションの担当者にとって、データベース コストを削減することは、コストを大幅に削減する簡単な方法です。 毎秒数百万回の読み取り/書き込み操作でテラバイトからペタバイトのデータを管理している場合、オープンソースのオンプレミスで作業しているかどうかにかかわらず、可用性の高いデータベースを運用し、それを維持するための総コストは手ごわいものになる可能性があります。 、完全に管理されたサービスとしてのデータベース、またはその中間。 あまりにも多くのチームが、データベースに深く入り込みすぎています。 しかし、明るい面を見ると、これは、データベース戦略を再考することで得られることがたくさんあることを意味します。

いくつかのインスピレーションを得るために、いくつかの開発チームが実際にデータベースのパフォーマンスを向上させながら、データベースのコストを大幅に削減した方法を見てみましょう。

Comcast: 962 個のノード + 60 個のキャッシュ サーバーを交換することで 60% のコスト削減

「P99、P999、および P9999 のレイテンシを 95% 削減しました。その結果、CapEx と OpEx を削減しながら、より迅速なインターフェイスが実現しました。」 — Comcast のエンジニアリング担当シニア ディレクター、Phil Zimich 氏

Comcast は、3 つの主要事業を持つグローバル メディアおよびテクノロジー企業です。 NBCUniversal と、その英国の通信部門である Sky です。

チャレンジ

Comcast の Xfinity サービスは 1,500 万世帯にサービスを提供し、1 日あたり 20 億回を超える API 呼び出し (読み取り/書き込み) と 2 億を超える新しいオブジェクトを処理しています。 7 年間で、プロジェクトは 30,000 台から 3,100 万台以上のデバイスをサポートするように拡大しました。

最初は Oracle で始まり、その後 (DataStax 経由で) Apache Cassandra に移行しました。 Cassandra のロングテール レイテンシが、同社の急速に拡大する規模に受け入れられないことが判明したとき、チームは新しい選択肢を模索し始めました。 待ち時間を短縮するだけでなく、複雑さも軽減したいと考えていました。 Cassandra の遅延の問題をユーザーから隠すために、データベースの前に 60 のキャッシュ サーバーを配置しました。 このキャッシュ レイヤーとデータベースの一貫性を維持することは、管理者にとって大きな頭痛の種でした。

解決

ScyllaDB への移行により、Comcast は外部キャッシング レイヤーを完全に排除し、データ サービスがデータ ストアに直接接続するシンプルなフレームワークを提供できるようになりました。 その結果、導入モデルが大幅に簡素化され、複雑さが軽減され、パフォーマンスが向上しました。

結果

ScyllaDB は最新のインフラストラクチャを最大限に活用するように設計されており、スケールアウトと同じくらいスケールアップできるため、Comcast は 962 の Cassandra ノードをわずか 78 ノードの ScyllaDB に置き換えることができました。

60 台のキャッシュ サーバーを完全に排除しながら、全体的な可用性とパフォーマンスを向上させました。 その結果、わずかなコストで 2 倍以上のリクエストを処理できるようになり、レイテンシが 10 倍改善されました。 これは、Cassandra の運用コストを 60% 削減することに相当します。 年間250万ドル インフラストラクチャのコストと人件費で。

コムキャストのその他の製品

Rakuten: 75% のノード削減でインフラストラクチャ コストを 2.5 倍削減

「Cassandra は水平方向にスケーラブルであることは間違いありませんでしたが、それには厳しいコストがかかりました。 約 2 年前、Cassandra は次の成長段階への答えではないことに社内で気づき始めました。」 — 楽天のエンジニアリング マネージャー、Hitesh Shah 氏

楽天では、15 億人の会員が 3,500 を超える店舗での買い物でキャッシュ バックを獲得できます。 加盟店は楽天に手数料を支払い、楽天はその手数料を会員に分配します。

チャレンジ

楽天カタログ プラットフォームは、機械学習 (ML) で強化されたカタログ データを提供して、検索、レコメンデーション、その他の機能を改善し、メンバーとビジネス パートナーの両方に優れたユーザー エクスペリエンスを提供します。 同社のデータ処理エンジンは、グローバルな運用のために製品データを正規化、検証、変換、および保存します。

ビジネスは、このプラットフォームが並外れたエンドユーザー エクスペリエンスで極端な成長をサポートすることを期待していましたが、チームは Apache Cassandra の不安定性、大規模での一貫性のないパフォーマンス、およびメンテナンス オーバーヘッドと戦っていました。 JVM の問題、長いガベージ コレクション (GC) の一時停止、およびタイムアウトに直面しました。さらに、単一の低速ノードがクラスター全体をダウンさせるという困難な方法を学習しました。

解決

楽天は Cassandra の 24 ノードを ScyllaDB の 6 ノードに置き換えました。 ScyllaDB は現在、Spark、Redis、Kafka を含むコア テクノロジ スタックの中心にあります。 データが ML エンリッチメントを受けると、ScyllaDB に保存され、パートナーや内部顧客に送信されます。 ScyllaDB は、1 秒あたりの読み取りクエリ (QPS) がノードあたり 10k ~ 15k、書き込み QPS がノードあたり 3k ~ 5k で、毎日 2 億 5000 万を超えるアイテムを処理します。

楽天のデータベース コスト削減を促進する ScyllaDB 固有の機能の 1 つは、インクリメンタル コンパクション ストラテジー (ICS) です。 ICS は、標準の Cassandra 圧縮戦略よりも優れたディスク ユーティリティを可能にするため、同じ総データ量で必要なハードウェアは少なくて済みます。 従来の圧縮戦略では、ユーザーは総ストレージの半分を圧縮用に確保する必要があります。 ICS により、楽天は全ストレージの 85% 以上をデータ用に使用できるため、ハードウェアの使用効率が大幅に向上します。

結果

楽天は商品を最大 5 倍速く公開できるようになり、カタログ変更のターンアラウンドが速くなりました。 これは、ブラック フライデーのようなショッピングのピーク時に特に重要です。 予測可能な低レイテンシーにより、同社は優れた社内外の SLA を約束することができます。 さらに、同社は 4 分の 1 のノード削減に続いて、インフラストラクチャ コストを 2.5 倍削減しました。

楽天のその他の商品

Expedia: Redis + Cassandra の置き換えによる 35% のコスト削減

「「ストップ・ザ・ワールド」ガベージ コレクションの中断について心配する必要はもうありません。 また、ノードあたりにより多くのデータを保存し、ノードあたりのスループットを向上させることができるため、会社の費用を大幅に節約できます。」 —Expedia Group のクラウド データ アーキテクト、Singaram Ragunathan 氏

Expedia は、世界有数のフルサービス オンライン旅行ブランドの 1 つであり、旅行者が休暇パッケージ、フライト、ホテル、バケーション レンタル、レンタカー、クルーズ、アクティビティ、アトラクション、サービスの幅広い選択肢を使用して、旅行全体を簡単に計画および予約できるよう支援しています。

チャレンジ

Expedia のコア アプリケーションの 1 つは、地理的なエンティティとそれらの間の関係に関する情報を提供します。 ホテルの位置情報、サードパーティのデータなど、複数のシステムからデータを集約します。 この豊富な地理データセットにより、1 桁ミリ秒の P99 読み取り応答時間を目標に、シンプルな REST API を使用してさまざまな種類のデータ検索が可能になります。

チームは、Redis を最初のキャッシュ レイヤーとして使用し、Cassandra を 2 番目の永続的なデータ ストア レイヤーとして使用する多層アプローチを使用していましたが、Cassandra の技術的な課題に不満を募らせていました。 ガベージ コレクションを管理し、目前のワークロードに合わせて適切に調整するには、かなりの時間、労力、専門知識が必要でした。 また、バースト トラフィックとワークロードのピークによって P99 応答時間が短縮され、バッファー ノードでピーク容量を処理する必要が生じ、インフラストラクチャ コストが上昇しました。

解決

チームは、データ モデルやアプリケーション ドライバーを変更することなく、Cassandra から ScyllaDB に移行しました。 Expedia Group のクラウド データ アーキテクトである Singaram Ragunathan 氏は次のように述べています。 データ モデルの変更は必要ありませんでした。 また、ScyllaDB ドライバーは互換性があり、Cassandra ドライバーの依存関係でスワップイン置換されました。 Apache Cassandra クラスターをプロビジョニングする自動化フレームワークを少し調整することで、ScyllaDB クラスターをプロビジョニングすることができました。」

結果

Cassandra では、以前は P99 の読み取りレイテンシーが急上昇し、1 日あたり 20 ~ 80 ミリ秒の範囲で変動していました。 ScyllaDB では、一貫して約 5 ミリ秒です。 ScyllaDB のスループットは、Cassandra の 3 倍近くです。 さらに、ScyllaDB はインフラストラクチャのコストを 35% 削減しています。

エクスペディアからのその他の情報

iFood: DynamoDB から移行して 9 倍のコスト削減でスケーリング

「ここで重要なのは、iFood の成長の速さです。 2 年も経たないうちに、月間 100 万件から 2000 万件に増えました。」 — Thales Biancalana 氏、iFood のバックエンド開発者

iFood は、ラテンアメリカ最大の食品配達会社です。 ブラジルの新興企業として始まり、86% の市場シェアを誇る明確なリーダーに成長しました。 ブラジルで「食品配達」のリーダーになった後、iFood はコロンビアとメキシコに事業を拡大しました。

チャレンジ

簡単に言えば、PostgreSQL と DynamoDB を使用した大規模なオンライン注文です。

各オンライン注文は、そのデータベースで約 5 つのイベントを表し、毎月 1 億をはるかに超えるイベントが生成されます。 これらのイベントは、Simple Notification Service (SNS) と Simple Queue Service (SQS) を使用する iFood プラットフォームを介してレストランに送信されます。 ブラジルではインターネット接続が不安定なため、各デバイスに対して 30 秒ごとに起動する HTTP ベースのポーリング サービスに依存しています。 これらの各ポーリングは、データベース クエリを呼び出します。

同社が月間 1,000 万件の注文を達成し、複数の PostgreSQL 障害を経験した後、チームは他のオプションを検討することにしました。 彼らは NoSQL に移行し、iFood の Connection-Polling サービスに DynamoDB を選択しました。 彼らはすぐに、DynamoDB の自動スケーリングがスパイクの多いトラフィック パターンに対して遅すぎることを発見しました。 iFood の 1 日のバースト トラフィックは、昼食時と夕食時に自然に急増します。 自動スケーリングが遅いということは、高い最小スループットを維持するか (費用がかかる)、スケーリングを自分で管理しない限り、毎日の急増する需要を満たすことができないことを意味していました。

解決

iFood は Connection-Polling サービスを ScyllaDB Cloud に移行しました。 チームは、PostgreSQL から DynamoDB に移行する際に構築したものと同じデータ モデルを維持することができました。 DynamoDB はドキュメントベースの JSON 表記を使用し、ScyllaDB は SQL に似た Cassandra クエリ言語 (CQL) を使用していましたが、両方で同じクエリ戦略を使用できました。

結果

iFood の ScyllaDB の導入は、そのスループット要件を容易に満たし、会社は、それぞれ 1 つのデバイスで 500,000 の接続された加盟店をサポートするようにスケーリングするという中期目標を達成することができました。 さらに、ScyllaDB に移行したことで、Connection-Polling サービスのデータベース コストが 54,000 ドルから 6,000 ドルに削減されました。これは 9 分の 1 です。.

もっと見る

要約

これらの例はほんの始まりにすぎません。 データベースの費用を削減するには、いくつかの方法があります。

  • より強力なハードウェアと、ScyllaDB の非常に効率的なコアごとのシャード アーキテクチャや最大のストレージ使用率のためのカスタム コンパクション戦略など、そのパワーを最大限に引き出すように構築されたデータベースを使用して、コスト パフォーマンスを向上させます。
  • インフラストラクチャを簡素化することで管理コストを削減します (外部キャッシュの排除、クラスター サイズの縮小、またはチューニングや子守の必要性が少ないデータベースへの移行)。
  • ワークロードの優先順位付けなどのテクノロジーを利用して、レイテンシーやスループットを犠牲にすることなく、同じクラスターで OLTP (トランザクション処理) と OLAP (分析) のワークロードを実行します。
  • 1 つのベンダーのエコシステムに縛られるのではなく、クラウドへの支出を柔軟に行える Database as a Service オプションを検討してください。
  • ワークロード、データセットのサイズ、および予算により適した価格で DBaaS プロバイダーに移行します (この DBaaS 価格計算ツールで複数のベンダーの価格を比較してください)。

また、これらのオプションのうち、チームの特定のワークロード、ユースケース、およびエコシステムに適していると思われるオプションについてアドバイスが必要な場合は、ScyllaDB のアーキテクトが喜んで技術的なコンサルティングを提供します。

グループ スケッチで作成。

Leave a Comment

Your email address will not be published. Required fields are marked *