Netflix_Customer-Reference_Logo@2x

Netflix と Amazon Kinesis Data Streams 導入事例

2017 年

Netflix は世界有数のインターネットテレビネットワークです。世界中で 1 億人以上の会員が利用しています。オリジナルシリーズ、ドキュメンタリー、長編映画など、1日1億2500万時間を超えるテレビ番組や映画を配信しています。会員は、インターネットに接続されたほぼすべての画面から、いつでも、どこでも、好きなだけ視聴できます。

Python のチュートリアルを開始する
CustomerReferences_QuoteMark

Amazon Kinesis Data Streams は毎日数テラバイトのログデータを処理しますが、数秒で分析にイベントが表示されます。リアルタイムで問題を発見し対応できるため、高可用性と優れた顧客体験が保証されるのです」

John Bennett
Netflix シニアソフトウェアエンジニア

大規模なアプリケーションのモニタリング

Netflix ではアマゾン ウェブ サービス (AWS) を使用して、データベース、分析、推奨エンジン、ビデオトランスコーディングなど、AWS 上で合計 100,000 個を超えるサーバーインスタンスを使用する何百もの機能を含んだほぼすべてのコンピューティングとストレージニーズに対応しています。

これにより、アプリケーションが AWS 内およびインターネットを介して常に通信を行う、非常に複雑で動的なネットワーク環境を実現します。 ネットワークのモニタリングと最適化は、Netflix が顧客体験の改善、効率の向上、コストの削減を継続するために重要です。特に、Netflix は、ネットワークが Virtual Private Cloud (VPC) フローログ形式で毎日生成する数テラバイトのデータを取り込み、拡張し、分析するためのソリューションを必要としていました。これにより、Netflix はパフォーマンス改善の機会を見極めることができます。たとえば、リージョン間で通信しているアプリを特定し、併合することができます。 また、アプリケーションのダウンタイムを迅速に検出して軽減することで、アップタイムを向上させることもできます。

各ログレコードには、2 つの IP アドレス間の通信に関する情報が含まれています。ただし、Netflix のような動的な環境では、IP アドレスがアプリケーション間で日々、または時には毎分変動する可能性があるため、IP アドレスだけではあまり意味がありません。Netflix のシニアソフトウェアエンジニアである John Bennett 氏は、「このイニシアチブを始める前に持っていたデータソースは一方的でした」と述べています。「アプリケーションが他のユーザーに接続していることはわかりますが、会話の両端と、通信またはネットワーク上のアプリケーションの配置を最適化する方法はわかりませんでした。」

Netflix は、VPC フローログとアプリケーションメタデータを組み合わせることで、アプリケーションとリージョン間の通信をより詳細に把握できる新しいデータソースを確立しようとしました。

Amazon Kinesis Data Streams を使用したフローログの一元化

当初から、AWS により、Netflix はネットワークデータを分析するさまざまなアプローチを試すことができました。「設計プロセスの初期段階では、データをさまざまな方法で処理できる柔軟性が重要でした」と Bennett 氏は言います。「複数のデザインを試し、多くの AWS 製品を使用してここに到達しました。」

Netflix が最終的にデプロイしたソリューション (内部では Dredge として知られている) は、Amazon Kinesis Data Streams を使用してフローログを集中化します。アプリケーションは、Amazon Kinesis Data Streams からデータをリアルタイムで読み取り、ネットワーク環境の全体像を提供するために、アプリケーションメタデータで IP アドレスを強化します。「通常は、データをデータベースに格納し、インデックスを作成してクエリを高速化します」と Bennett 氏は言います。「Dredge は、フローログをアプリケーションメタデータと結合し、データベースを使用せずにストリーミングし、インデックスを作成します。これにより、多くの複雑さが解消されます。」

充実したデータは、Druid と呼ばれるオープンソースの分析アプリケーションに格納されます。Netflix は、Druid の OLAP クエリ機能を使用して、データをリージョン、アベイラビリティーゾーン、タイムウィンドウにすばやくスライスし、それを視覚化して、ネットワークの動作とパフォーマンスの状況を把握します。

データがすでに AWS クラウドの一部として存在していたため、Dredge にとっては AWS が論理的な選択でした。「Kafka などの外部システムから大量の情報を公開、ストリーミング、および消費することは困難でした。ほんの数回の API 呼び出しで、数テラバイトのフローログを Amazon Kinesis Data Streams に集中化できました。これで、単にデータにアクセスするのではなく、データからインサイトを得ることに集中できます」と Bennett 氏は言います。

Amazon Kinesis Data Streams のスケーラビリティは、Netflix でのネットワーク使用の周期的で伸縮自在な性質のため、Dredge アプリケーションに適していました。「ネットワーキングデータに関しては、スケールアップとスケールダウンが可能な方がコスト効率が高く、Amazon Kinesis Data Streams の代替品では簡単に行えません」と Bennett 氏は言います。 

アーキテクチャ図

netflix_arch_diagram

リアルタイムのネットワークモニタリングによる顧客体験の改善

Netflix の Amazon Kinesis Data Streams ベースのソリューションは、きわめてスケーラブルであることが実証されており、毎日何十億にもおよぶトラフィックフローを処理しています。通常は、約 1,000 個の Amazon Kinesis シャードが並行してデータストリームを処理しています。「Amazon Kinesis Data Streams は毎日数テラバイトのログデータを処理しますが、数秒で分析にイベントが表示されます。リアルタイムで問題を発見し対応できるため、高可用性と優れた顧客体験が保証されるのです」と Bennett 氏は語っています。

Netflix は、アプリケーションをあるリージョンから別のリージョンに移動するのか、特定の種類のトラフィックに適したネットワークプロトコルに変更するのかを問わず、アプリケーションを最適化する新しい方法を特定できるようになりました。「Amazon Kinesis 上に構築されたソリューションにより、効率を向上させ、コストを削減し、回復力を向上させて最高の顧客体験を実現する方法を特定できます」と Bennett 氏は言います。

ストリーミングデータソリューションは IT 業界にとって目新しいものではありませんが、ネットワーク空間においては革新的です。 「Netflix は、基礎となるネットワークを抽象化するため、AWS に大きな投資をしました。そのため、スイッチやルーターを扱う必要はありません」と Bennett 氏は言います。「スタックの上位レベルでモニタリング、分析、最適化を行っています。独自のデータセンターを運用していたなら、考えも及ばなかったような方法を使っています。」


事例

Netflix は世界有数のインターネットテレビネットワークです。世界中で 1 億人以上の会員が利用しています。オリジナルシリーズ、ドキュメンタリー、長編映画など、1日1億2500万時間を超えるテレビ番組や映画を配信しています。

AWS の利点

  • 毎日何十億ものイベントを処理し、1 秒未満の分析クエリ応答時間で、数テラバイトを処理および強化します
  • 競合ソリューションに比べてコスト効率が高い
  • システムアーキテクチャを自由に実験して、最も効果的なソリューションを実現
  • わずか数回の簡単な API 呼び出しで開始されるデータ取り込み
  • ほぼ 1,000 の Amazon Kinesis シャードが並行して動作する、非常に弾力性のあるソリューション

使用されている AWS のサービス

Amazon Kinesis Data Streams

Amazon Kinesis Data Streams (KDS) は、大規模にスケーラブルで持続的なリアルタイムのデータストリーミングサービスです。

詳細 »


開始方法

すべての業界のあらゆる規模の企業が、AWS を使用してビジネスを毎日変革しています。AWS のエキスパートにお問い合わせのうえ、今すぐ AWS クラウドジャーニーを開始しましょう。