お客様事例/ソフトウェアとインターネット
Dropbox が Amazon DynamoDB と Amazon S3 を使用してスケーラブルなメタデータストアを構築することで数百万 USD のコストを削減
1 年
AWS を使用して1年でメタデータストレージシステムを開始
5.5
ユーザーのギガバイトあたりのコストを 5.5 分の 1 に削減
数百万人を救った
数百万 USD の拡張コストを節約
300 TB
300 TB のデータを 2 週間足らずで移行
4,000~6,000 クエリ
1 秒あたり 4,000~6,000 クエリでデータを取り込む
概要
2018 年の夏、一部のパーティションでデータが急激に増加したため、Dropbox のオンプレミスメタデータストアの容量不足が発生しました。Dropbox のデータベースチームには 3 つの選択肢がありました。オンプレミスのストレージ容量を 2 倍にする (数百万ドルの費用がかかる) か、大量のメタデータを削除するか、拡張性が高く費用対効果の高い新しいソリューションを見つけるかです。3 番目の選択肢が最善でしたが、それを達成するのは困難を伴います。Dropbox のオンプレミスシステムが最大容量に達するまで 2 年足らずで、プロジェクトの実装チームはわずか 2 人の従業員で構成されていました。
このような状況から、Dropbox は Amazon Web Services (AWS) のマネージドソリューションを追求することになりました。Dropbox は、あらゆる規模で 1 桁のミリ秒単位のパフォーマンスを実現する、フルマネージドかつ柔軟な NoSQL データベースである Amazon DynamoDB と、クラウドオブジェクトストレージサービスである Amazon Simple Storage Service (Amazon S3) を使用して、Alki と呼ばれる新しいマネージドストレージシステムを迅速に開発しました。これにより、実質的に無制限のユーザーメタデータを保存できるようになり、オンプレミスのストレージを増やす必要がなくなるため、数百万ドルも節約できただけでなく、ギガバイトあたりのコストも 5.5 分の 1 に削減されました。
レガシーデータベースからクラウドへ監査ログデータを移行
マサチューセッツ工科大学の 2 人の学生によって 2007 年に設立された Dropbox は、グローバルなコラボレーションツールおよびファイル共有サービスです。6 億人以上のユーザーが 4,000 億件以上のコンテンツをアップロードし、世界で最も成功したスタートアップの 1 つになりました。
Dropbox のメタデータストアは当初、同社のメインデータストアである Edgestore 内にのみ格納されていました。Edgestore は、シャーディングされた MySQL クラスター上に構築されたオンプレミスの分散データベースでホストされていました。2018 年半ばまでに、コールドメタデータ (アクセス頻度は低いが、永続的に保存して即座に利用できるようにする必要があるデータ) は、2 年以内に Edgestore を圧倒する勢いで増えていきました。しかし、オンプレミスデータベースの容量を増やすには、既存のパーティションを分割し、それらをホストする新しいマシンを購入する必要がありました。これにより、Edgestore のコストが 2 倍になり、年間数百万 USD も増加することになります。さらに、コールドメタデータをホットメタデータ、または頻繁に使用するメタデータと同じデータベースに保存することは、もはや意味がありませんでした。Dropbox の Alki チームの技術責任者である Jonathan Lee 氏は、「頻繁に読むことを想定していないデータを書き込んでいると、検索速度が最適化された媒体で使用するのは非常に高価であり、保存しても意味がないことは言うまでもありません」と述べています。
その結果、2 人の従業員がデータベースチームから離れ、メタデータを費用対効果の高い方法で保存するソリューションである Alki を構築しました。特に、Edgestore のコールドメタデータのトップユースケースである監査ログデータに焦点を当てました。小規模な Alki チームは厳しい締切りに直面しており、期日を逃すとユーザーメタデータが失われる可能性があったため、AWS のマネージドサービスを実装することにしました。Amazon DynamoDB と Amazon S3 を使用して、Dropbox はわずか 1 年以内にコールドメタデータストアのプロトタイプを作成し、AWS にデプロイしました。AWS ソリューションアーキテクトは Dropbox の Alki チームの一員のように機能し、規範的なガイダンスと実装支援を提供してくれました。
「ストレージシステムを構築する際には、レプリケーション、バックアップ、容量管理など、多くのコンポーネントについて考える必要があります。業界標準の Amazon DynamoDB と Amazon S3 はそのニーズにぴったり合っていました」と Lee 氏は言います。「これらは大人数のチームでも解決するのに数年かかる問題です。しかし、Amazon DynamoDB と Amazon S3 を使用することで、これらの問題を単純化できます。データレプリケーション、データ耐久性管理、ハードウェアプロビジョニングなどの複雑なタスクの多くは AWS が処理してくれるからです。Amazon DynamoDB と Amazon S3 はどちらも、容量のニーズに応じて自動的に拡張されます。オンプレミスの容量とハードウェア購入の予算を計画して、4 年間その決定に縛られる必要はもうありません」。
ストレージシステムを構築する際には、レプリケーション、バックアップ、容量管理などのコンポーネントについて考える必要があります。Amazon DynamoDB と Amazon S3 を使用することで、複雑なタスクの多くを AWS が処理するので、これらの問題を単純化できます」
Jonathan Lee 氏
Dropbox の Alki チームテックリード
AWS ソリューションを使用してホットメタデータストアとコールドメタデータストアを構築
Alki チームは AWS ソリューションアーキテクトの支援を受けて、ログ構造のマージツリー (LSM ツリー) ベースのメタデータストレージシステムを構築しました。このシステムには 2 層のデータストレージがあり、上層はホットメタデータ用、下層はコールドメタデータ用です。Amazon DynamoDB はホットストレージレイヤーとして機能し、監査ログデータを 6 つの DynamoDB テーブルに取り込み、テーブル毎に 1 秒あたり 4,000~6,000 回の書き込みを行います。その後、これらの各テーブルには 1 日あたり 50~80 GB が保存されます。1 日の終わりに、チームはメタデータをこれらのテーブルから Amazon S3 にオフロードして永続的に保存し、その後 Amazon DynamoDB のテーブルは削除されます。
2019 年の初め、Alki チームが Amazon DynamoDB と Amazon S3 を選択してから 6 か月も経たないうちに、Alki は本番環境のベータ段階に入り、すべてのデータを取り込み、一部の読み取りを処理していました。2019 年 10 月までに、約 300 TB の監査ログデータ (Edgestore に保存されている全データのうち 4 分の 1 に相当) が Alki に移行され、フル稼働になりました。
Amazon DynamoDB と Amazon S3 のスケーラビリティにより、Dropbox チームはそのデータ移行を 2 週間足らずで完了することができました。「通常なら、定常状態で予想されるスケールの 10 倍のシステムを設計するかもしれません」と Lee 氏は説明します。「しかし、事前にシステムを設計しなくても、AWS で 100~1,000 倍にスケーリングできました」。 Alki チームは、定常状態が 1 秒あたり 4,000 クエリになると予想していましたが、移行中に 1 秒あたり 600,000 クエリの Amazon DynamoDB をプロビジョニングできました。
Lee 氏によると、AWS ソリューションアーキテクトは移行期間中 Alki チームにプレミアムサポートを提供してくれたそうです。「Alki に取り組んでいる AWS チームとのやりとりについては、ポジティブなことしか浮かびません。問題を発見したり、作業速度をを上げる方法を示したり、運用上もっと注意すべき点を特定したりと、常に積極的に支援してくれました」と Lee 氏は言います。Alki チームと AWS ソリューションアーキテクトは、リアルタイムのチャネルを通じて常にコミュニケーションをとることができました。そして、Alki チームは AWS のマネージドサービスを通じて、今後もそのコラボレーションのメリットを享受していきます。「システムを永続的に運用するには専門知識が必要ですが、私たちにはその専門知識がありませんでした」と、Alki チームのソフトウェアエンジニアである Stas Ilinskiy 氏は言います。「しかし、Amazon DynamoDB を使用することで、それを運用する専門知識を持つ人材も確保できます」。
Alki は Amazon DynamoDB と Amazon S3 を使用することで、Dropbox の拡張コストを数百万 USD 節約し、ユーザーあたりのギガバイト単位のコストを大幅に削減しました。Dropbox の Edgestore では、ユーザー毎の年間ギガバイトあたりのコストが Alki の 5.5 倍になります。
優れたユーザーストレージエクスペリエンスを作り続ける
Alki チームは、Amazon EMR を使用して Amazon DynamoDB から Amazon S3 にデータをより効率的にオフロードする方法を模索しています。このプロセスは現在 Dropbox 独自のバッチ処理システムで処理されています。また、Alki でさらなるコスト削減を実現するために、Dropbox は 2020 年 10 月に 300 TB のコールドメタデータを含む別のデータベースを Edgestore から Alki に移行しました。これが、Dropbox が将来 Alki を使用してコストを最適化し、さらに削減する方法の土台となります。同社では Alki を汎用のコールドメタデータストアとして使用する可能性があります。「特定のユースケースを移行するのではなく、Alki を Edgestore と統合して、両者間でデータを透過的に移動させることはできないでしょうか」と Lee 氏は尋ねます。「それが次のビジョンです」。
Amazon DynamoDB と Amazon S3 を使用することで、Alki チームは耐久性が高くスケーラブルなメタデータストレージを迅速に立ち上げることができ、その結果 Dropbox のコストが大幅に削減されました。AWS が提供するマネージドサービスにより、このストレージは持続可能で長期的な選択肢となります。このソリューションにより、Dropbox は Edgestore ではできなかったいくつかのプロジェクトを立ち上げることができるようになりました。「Alki のプロジェクト全体に対して、上級管理職全員から熱い視線が注がれていました」と Lee 氏は言います。「Alki のパフォーマンス、ひいては Amazon DynamoDB と Amazon S3 のパフォーマンスにとても満足しています」。
Dropbox について
サンフランシスコに本社を置く Dropbox は、日常の整理と仕事のスムーズな進捗を 1 か所で行えるようにしています。Dropbox は 180 か国に 6 億人以上の登録ユーザーを抱えており、より賢明な働き方を設計する使命を負っています。
利用している AWS のサービス
Amazon S3
Amazon Simple Storage Service (Amazon S3) は、業界随一のスケーラビリティ、データ可用性、セキュリティ、パフォーマンスを提供するオブジェクトストレージサービスです。
Amazon DynamoDB
Amazon DynamoDB は、規模に関係なく数ミリ秒台のパフォーマンスを実現する、key-value およびドキュメントデータベースです。
詳細 »
Amazon EMR
Amazon EMR は、業界をリードするビッグデータのクラウドプラットフォームで、Apache Spark、Apache Hive、Apache HBase、Apache Flink、Apache Hudi、Presto などのオープンソースツールを活用して膨大な量のデータを処理できます。
詳細 »
ソフトウェアとインターネットについての事例
今すぐ始める
あらゆる業界のさまざまな規模の組織が AWS を活用してビジネスを変革し、日々ミッションを遂行しています。当社のエキスパートにお問い合わせいただき、今すぐ AWS ジャーニーを開始しましょう。