Netflixはどのようにして自社データ基盤の費用対効果を高めているのか?
企業や公的機関がAWSなどのクラウドサービスを自社のデータ基盤に採用する事例が増えていますが、そうしたクラウドサービスの利用料金は決して安価ではありません。膨大なデータをクラウド上で管理しているNetflixが、自社のデータ基盤運用にかかる費用をどのように圧縮し、費用対効果を高めているのかを説明しています。
Byte Down: Making Netflix’s Data Infrastructure Cost-Effective | by Netflix Technology Blog | Jul, 2020 | Netflix TechBlog
https://netflixtechblog.com/byte-down-making-netflixs-data-infrastructure-cost-effective-fee7b3235032
一般的には、データ基盤にかかる費用を管理する方法として、予算上限の設定や厳しい支出制限が用いられますが、高度に分散化されたデータ基盤を持ち、自由と責任を重んじるNetflixにおいて、こうした方法は逆文化的かつ非効率であるとのこと。データ基盤の費用対効果を高めるため、Netflixは費用を透明化し、費用対効果に関する情報をできるだけ意志決定者に近いところに配置するために、それらの情報をまとめたダッシュボードを開発しました。
Netflixで扱うデータの種類として、静的なデータと動的なデータがあるとのこと。静的なデータはAWS S3やCassandra、Elasticsearchなどに保存されるデータを指し、費用はストレージに紐付いています。対して動的なデータはKeystoneやFlinkなどで処理されるデータであり、データを計算する費用に紐付いていると説明されています。
上記のデータはさまざまなチームで保有されているので、チーム単位で費用を把握するためには、プラットフォームを横断して費用を集計するだけでなく、テーブルやインデックスなど、意味のあるリソース単位で費用を分解する必要があります。この分解機能を実現するため、Netflixでは以下のようなシステムを構築しているとのこと。
AMSからは、AWSの利用料金とS3インベントリのメタデータを取得しています。S3インベントリとは、S3に保存したオブジェクトのメタデータを出力してくれるサービスのこと。Netflix内部からは、Netflixのデータ資源すべてを網羅し、データと費用を関連付けるメタデータを提供する「Netflix Data Catalog(NDC)」と動的データサービスのAPIによる情報、さらにCPU利用率やネットワークのスループットといったメトリクスを監視するシステム「Atlas」から情報を取得し、費用対効果を計算してダッシュボードに表示しているとのこと。
AWSの利用料金はEC2やS3といったプラットフォーム単位であるため、チームごとに費用を把握するためにはそれらのプラットフォームでかかった費用を配賦する必要があります。EC2ベースのプラットフォームでは、まずプラットフォームごとにCPU利用率やメモリ利用率などのボトルネックとなるメトリクスを特定します。その後、Atlasによって各データがメトリクスに占める割合を計算し、その割合に応じて配賦基準を決定していると説明されています。S3ベースのプラットフォームでは、S3インベントリを利用してS3ストレージに占めるデータ量に応じて費用を配賦しているそうです。
実際にデータを表示するダッシュボードは、Druidをバックエンドに採用。用途に応じて費用をグループ化できるとのこと。例えば組織単位で費用を表示したり……
リソース単位で費用を表示したりすることが可能になっています。
時系列で費用を表示するダッシュボードも用意されています。こうしたダッシュボードは主にエンジニアやデータサイエンスチームを対象にしたものであるとのこと。
ダッシュボードによる費用の可視化に加えて、Netflixではデータの利用方法も効率化しています。Netflixのビッグデータウェアハウスは所有者が有効期限を自由に設定できましたが、最適な有効期限を設定する方法はありませんでした。こうした状況を改善するため、ストレージに設定する最適な有効期限を自動で算出するシステムを開発したとのこと。
S3で最も費用がかかっているのは日々更新されるトランザクションテーブルであるとのこと。まずはS3のアクセスログやデータウェアハウスのメタデータを収集するシステム(Metacat)を利用して、どのパーティションがいつアクセスされていたのかを特定。続いて過去180日間のアクセス状況から、再アクセスまでに要した最も長い期間を分析して、最適な有効期限を設定する仕組みになっているそうです。また、データ所有者に対しては、推奨有効期限と現在設定されている有効期限、節約可能な費用を表示するダッシュボードが提供されています。
これらのダッシュボードと有効期限の提案システムの他にも、エンジニアにデータ使用にかかる費用の上昇を通知するシステムなども構築しており、これらのシステムによってデータウェアハウスのストレージ利用量を10%以上減少させることができたとのこと。Netflixは今後の課題として「組織や所有者が変わった際のデータの継続性の維持」と「データに問題が発生した場合の状態の永続化」があるとし、さらにデータ利用の効率化を進めていくとコメントしています。
・関連記事
Twitter・Facebook・Dropboxなど成功を収めたウェブサービスが最初のユーザーを獲得した7つの戦略とは? - GIGAZINE
Googleの徹底的なシステム障害への対応「SRE」の中身とは? - GIGAZINE
「サービス」から「プラットフォーム」へ進化する過程をデザインツール「Figma」への徹底的な分析から考えるとこうなる - GIGAZINE
メディアプレイヤー界の王「VLC」は学生の小規模プロジェクトから生まれた - GIGAZINE
Netflixが高性能&ロイヤリティフリーなコーデック「AV1」をAndroid向けアプリに採用 - GIGAZINE
・関連コンテンツ