Netflixのクラウド移行が完了

Netflixでクラウドの導入が始まったのは2008年8月、データベースに重大な障害が発生し、メンバーへのDVDの発送が3日間停止するという問題が発生した時です。この時、データセンターにリレーショナル・データベースを設置するといったわずか一つの障害で垂直的に業務が停止してしまうシステムから、クラウドのように信頼性が高く、水平方向に拡張可能な分散システムに移行する必要があることに気づきました。クラウドプロバイダーには、最大かつ最も広範な一連のサービスや機能を提供していたアマゾンウェブサービスを選定しました。システムの大部分は、顧客対応サービス全体も含め、2015年までにクラウドに移行しました。しかし、課金インフラや顧客と従業員のデータ管理といった面に関しては、すべて安全かつ持続的なクラウド化の方法を必要な時間をかけて判断したいと考えました。おかげさまで、7年におよぶ真摯な取り組みによって、2016年1月上旬にようやくクラウドへの移行が完了し、ストリーミングサービス用にデータセンターに最後まで残してあったBITSを停止することができました。

クラウドへの移行は多くの恩恵をもたらしています。Netflixのストリーミング視聴メンバーは2008年時点の8倍に増え、視聴回数はそれ以上に順調に伸びて、8年間で3桁も増加しています。

Netflixのプロダクト自体は急速な進化を続け、大容量を消費する新機能を多数組み込んでいるため、データ容量は継続的に増大しています。そうした急速な増大に対応することは、社内のデータセンターではきわめて困難でした。単純に十分な速さでサーバーを設置することができなかったからです。ところがクラウドは弾力的な運用ができるので、数分で何千もの仮想サーバーやペタバイトの容量が追加され、そうした拡張が可能になりました。2016年1月6日、Netflixは新たに130以上の国でサービスを展開し、本当の意味でグローバルなインターネット映像配信ネットワークとなりました。世界中に配置されたAWSクラウドのリージョンを複数利用することにより、ダイナミックに方向転換し、グローバルインフラの対応能力を拡大し、Netflixメンバーに場所を問わず、より快適で楽しいストリーミング視聴を提供することが可能になりました。

コンピュータの拡張性やデータ保管のニーズ (ビジネスロジック、分散型データベースおよびビッグデータ処理/分析、推奨、トランスコーディング、Netflixのアプリケーションを構成するその他の何百もの機能) すべてにクラウドを活用しています。動画は世界中に張り巡らされたコンテンツデリバリネットワーク、Netflix Open Connectを通じて配信し、効率よくメンバーのデバイスに伝送しています。

クラウドの導入によって、サービスの可用性も大幅に向上しました。データセンターでは多くの障害が生じ、特にクラウド移行の初期段階ではクラウドに不可避な問題に直面しましたが、全体的な可用性は着実に増加しており、サービスの使用可能時間に関する目標の99.99%近くに達しています。大規模な分散システムにおいては、クラウドベースのものも含め、障害をまったく回避することは不可能です。しかし、クラウドの導入により、根本的には信頼性には欠けるものの冗長性のあるコンポーネントから、信頼性の高いサービスを構築することが可能になりました。当社のアーキテクチャに冗長性やグレースフル・デグラデーションの原則を取り入れ、Simian Armyを用いた通常の生産方式にしたがうことにより、メンバーのNetflixの視聴体験に影響を与えることなく、クラウドインフラストラクチャや当社独自のシステムで生じる障害を克服することができます。

コストの削減は、クラウド移行を決定した主な理由ではありません。しかし、ストリーミング視聴1回あたりのクラウドの費用は、データセンターにおけるその費用のほんの一部に収まっています。うれしい誤算です。これはクラウドの弾力性によるもので、おかげでインスタンスタイプの組み合わせを継続的に最適化し、大容量バッファを維持する必要なく (コンピュータなどの) 設置面積をほとんど瞬間的に拡大・縮小することができるようになりました。さらに、大規模なクラウド・エコシステムからしか得られないスケールメリットの恩恵も享受しています。

クラウド導入の恩恵が明らかであるにもかかわらず、当社は移行を完了するのになぜ7年もかかったのでしょうか。クラウドへの移行は実は大変な作業で、途中で何度も難しい選択をしなければなりませんでした。クラウドに移行する最も簡単な方法は、ほぼ間違いなく、データセンターからすべてのシステムをそのままフォークリフトで運び、AWSに移すことです。しかしそうした方法ではデータセンターのあらゆる問題や制約も一緒に移すことになってしまいます。当社はその代わり、クラウドネイティブなアプローチを選択し、当社の技術をすべて仮想的に再構築し、会社の経営方法を根本的に変えることにしました。構成上は、モノリシックのアプリケーションから何百ものマイクロサービスに移行し、NoSQLデータベースを使ってデータモデルを非正規化しました。予算承認、集中型リリース調整や数週間でハードウェアをプロビジョニングするサイクルにより、継続的デリバリが可能となり、エンジニアチームは疎結合のDevOps環境においてセルフサービスのツールを使って単独で判断し、イノベーションの促進を支援します。新たに多くのシステムを構築し、新たにスキルを習得する必要があります。Netflixがクラウドネイティブな企業になるには時間と努力が必要でしたが、おかげで当社は優位な立場に立って、成長を続け、グローバルな映像配信ネットワークへと脱皮を遂げることができました。

Netflixのストリーミング技術はこの数年で大きな進歩を遂げ、おかげでこれまで直面していた制約がなくなりました。この業界の多くの者にとって、クラウドはまだかなり新しい技術なので、答を探すべき問題や解決すべき課題がたくさんあります。当社はNetflix Open Sourceをはじめとする取り組みを通じて、引き続き素晴らしい技術者と協力し、あらゆる課題に共に対処していきたいと考えています。

-Yury Izrailevsky、Stevan Vlaovic、Ruslan Meshenberg

もっと読む: Netflixブログ

Netflix ISPスピードインデックス、2016年1月

Netflix ISPスピードインデックスは、各インターネットサービスプロバイダ (ISP) のゴールデンタイムにおけるNetflixの最高のストリーミング状態を数値化した指標で、毎月更新されます。以下に1月の結果をお知らせします。 もっと読む

レコメンド機能に対するグローバルなアプローチ

Netflixは今年1月、新たに130ヵ国をサービス対象地域に加え、世界中の皆様に楽しんでいただけるサービスを開始することができました。このグローバル化に向けて、複雑さを増す技術的な課題に対しても、Netflixが一丸となって取り組み、解決してきました。 もっと読む

トップ