本記事は2016年3月にインフラストラクチャ部門担当専務 Akhil Gupta によって執筆されました。
オリジナルな記事はこちらです
数年前まで私たちは、すべてのファイルを 1 か所に保存できる便利な場所という意味で、Dropbox を「Magic Pocket」と呼んでいました。その後、Dropbox はその当初のシンプルな姿から、世界屈指のパワフルでユビキタスな共同作業のプラットフォームへと進化を遂げました。事業が大きくなった今、当社独自の専用ストレージ インフラストラクチャの構築が必要になりました。この目的を果たすために、「Magic Pocket」と名付けたプロジェクトが始まりました。プロジェクトの開始から 2 年半が過ぎた今、ユーザーのデータの 90% 以上を自社のインフラストラクチャ上で保管・運用できるようになりました。
Dropbox はエンジニアたちによって設立されました。企業文化の基礎に、技術的イノベーションの気風があるのはそのためです。ユーザーにとっては非常に便利な製品が作られたわけですが、このシンプルなユーザー体験が生まれるには、舞台裏でさまざまな出来事がありました。
Dropbox は 2008 年の創業から大きく成長を続け、5 億人の登録ユーザーと 500 ペタバイト(5 の後にゼロが 17 個続く)のユーザー データをお預かりするようになりました。これは米国議会図書館にある収蔵書すべてに含まれる文字の約 14,000 倍に相当します。私たちが経験した驚くような成長を実感できる数字があります。2012 年に私が入社した当時のユーザー データ量はわずか 40 ペタバイトでした。それから 4 年間で 12 倍以上も増加したことになります。
Dropbox では、ファイルのコンテンツと、ファイルやユーザーに関するメタデータの 2 種類のデータを保管します。当社はこれまでずっと、ハイブリッド クラウド アーキテクチャを使用してきました。メタデータや自社のウェブ サーバーのホスティングは自社管理のデータ センターで行い、ファイル コンテンツは Amazon に保管していました。Amazon S3 を早期に導入したおかげで、事業運営を迅速かつ確実に拡張することができました。Amazon Web Services(AWS)は現在も、そしてこれからも、かけがえのないパートナーです。AWS のようなサービスがなければ、当社が経験したような急成長は達成できなかったでしょう。
ユーザーとお客様のニーズがますます増える中、私たちは独自のインハウス ストレージ システムの構築に真剣に投資することを決断しました。この決定を下した背景には、いくつかの理由があります。第 1 に、当社の重要な強みのひとつがパフォーマンスであることです。ストレージをインハウスにすることで、スタック全体を隅々までカスタマイズして、当社ならではのユース ケースに合わせてパフォーマンスを改善することができます。第 2 に、私たちのような世界をリードするクラウド サービスのプロバイダでは、このようなブロック ストレージのユース ケースは珍しいという点です。当社の事業規模と独特のユース ケースを活用することで、ハードウェアとソフトウェアの両方をカスタマイズし、優れたユニット エコノミクスを達成できます。
このようにして、世界でも珍しいエクサバイト規模のストレージ システムを構築することになったのです。オープン ソース コミュニティには、当社のような規模で高い信頼性が実証できるものがなかったため、すべてをゼロから作り上げなければならないことは当初からわかっていました。Dropbox のような規模のストレージと要件を抱える会社は世界広しといえども多くはありません。安全とセキュリティに関して高い基準を持っているとなると、その数はさらに少なくなります。設計の始めから信頼性とセキュリティという考えを取り入れ、システムがデータを安全かつ確実に保管し、かつ高可用性も実現できるようにしました。保管中のデータは暗号化され、システムの年間のデータ耐久性は 99.9999999999% 以上、可用性は 99.99% 以上となるように設計されました。
実現までの道のり
コード開発
Magic Pocket は 2013 年の夏に主要なイニシアチブとなりました。その前に小規模なプロトタイプを概念実証として開発し、ワークロードとファイルの流れをイメージできるようにしました。このプロジェクトで、ソフトウェアが果たす役割は非常に大きなものでした。本番環境に落とし込む作業を何度も試行錯誤しながら、各段階で厳密な検証を実施しました。このイノベーションで重視したことは、ゼロから世界最大級のストレージ システムに拡張可能なクリーンなデザインを作り上げること、そして少人数のチームでも膨大な量のハードウェアを維持できるようなオートメーションを作ることでした。最高レベルのデータの耐久性と可用性を得るためには、システムの信頼性についてテストと監査を行う必要がありました。
ダーク ローンチ
2014 年 8 月には、一部のユーザー限定で機能を公開する「ダーク ローンチ」を始めました。この時点で、2 つの地理的に異なるロケーションの間でデータをミラーリングし、システムがユーザーのデータを保管する準備ができたと判断しました。Dropbox では万が一の事態に備えて、この日からさらに 6 か月間は追加のバックアップを維持しました。
ローンチ日
決戦の日は 2015 年 2 月 27 日でした。Dropbox の歴史上初めて、インハウス ストレージ単独でのユーザー ファイルの保管と運用を開始したのです。新しいインフラストラクチャの検証が終了した際に、6 か月でシステムを 500 ペタバイト以上に拡張するという意欲的な目標を設定しました。
ベース ジャンピング
2015 年 4 月 30 日、データの流れの速さに遅れないよう、3 つの異なる物理的拠点でのサーバーの追加を急ピッチで行いました。万全を期すため、当社のサーバーから高性能ネットワークを構築し、毎秒 0.5 テラビットを超えるピーク レートのデータ転送が可能になりました。ジャンプしてから「パラシュートを開く」までの時間が短いスケジュールだったので、プロジェクトのこの部分はベース ジャンピング(ビルなどから飛び降りるスポーツ)と呼ばれました。ハードウェアの面では、搬出口を一度に通せるラック サーバーの台数を増やしました。
立ち上げの成功
当社の目標は、2015 年 10 月 30 日までに、90% のデータをインハウス インフラストラクチャで運用することでした。実際にはほぼ 1 か月近く前倒しで、2015 年 10 月 7 日にこの目標を達成しました。チームはスケジュールを守っただけでなく、この重大な技術的事業を、深刻なサービスの停止やデータ損失を一切出さずに達成したのです。
これは記念すべき偉業であり、将来のイノベーションの始まりでもあります。今後も当社独自のインフラストラクチャに投資していきます。同時に、とりわけアメリカ国外でのお客様にとって必要な場合があるため、Amazon とも連携を続けていきます。希望する場合は欧州の法人顧客がデータをドイツに保管できるようにするため、年内に AWS との提携も拡大します。どんな状況であっても、ユーザーが私たちを信頼して預けてくださったデータを保護・保存することが、私たちの最優先事項です。
これが、常に上を目指す Dropbox のエンジニアリングです。