新基盤にありサイバー攻撃被害を免れたニコニコ動画データ、基盤刷新の舞台裏を担当者が講演 – AWS Summit Japan 2024
株式会社ドワンゴが運営する「ニコニコ動画」「ニコニコ生配信」をはじめとした「ニコニコ」サービスは、ランサムウェアを含む大規模なサイバー攻撃を受け、2024年6月8日早朝からその多くでサービス停止が続いています。
株式会社ドワンゴのグループ企業が提供するデータセンターが攻撃を受けたことで、同社Webサービス全般のシステムが停止を余儀なくされている一方、ニコニコ動画のシステムや、投稿された動画データ、動画の映像配信システムは、パブリッククラウド上で運用されていたために、被害を受けていないことが公表されています。
こうした状況のなか、株式会社ドワンゴ ニコニコサービス本部 DMS 開発部 第一セクション マネージャーの久保田 陽介氏が、「AWS Summit Japan(2024年6月20日〜21日)」の21日のセッションに登壇しました。「より良い視聴体験を求めて、ニコニコ動画の配信基盤刷新の舞台裏」と題して、動画配信基盤を移行していた背景や、移行で得られたメリットを紹介した講演の模様をレポートします。
ニコニコ動画の旧配信基盤が抱えていた課題
久保田氏は講演冒頭で、「関係者の皆様にはご不便をおかけしており、心からお詫び申し上げます。本日紹介する動画配信基盤は、サイバー攻撃の被害を受けておりません。動画配信基盤はAWSに移行済みであったため、被害を受けませんでした」と説明。渦中のサイバー攻撃被害に触れたことで、会場からは激励の拍手があがる中、本題である「動画配信基盤の刷新の舞台裏」の説明に移りました。
久保田 陽介氏(株式会社ドワンゴ ニコニコサービス本部 DMS 開発部 第一セクション マネージャー)
株式会社ドワンゴ(以下、ドワンゴ)が提供する「ニコニコ」サービスでは、2006年に開始した国内最大級の動画配信サービス「ニコニコ動画」や、ライブストリーミングサービス「ニコニコ生放送」を展開しています。両サービスのインフラは、従来、100%オンプレミスであり、2016年から8年間、動画と生放送の安定した配信機能を提供してきました。しかし、旧配信基盤にはいくつかの課題があったと久保田氏は言い、その課題を大きく3つに分類して解説しました。
まず、動画と生放送の配信を1つのシステムで扱う構成にしたことから生じた「開発の難しさ」です。当初この構成に決定したのは、ディスク負荷が高い動画配信と、CPU負荷が高い生放送という、正反対のワークロードを持つ機能を同じシステムで扱うことで、リソースを有効活用する狙いがあったためでした。また動画配信・生放送ともに、扱うのはあくまで動画データであり、共通化できる部分も大きいだろうという考えもあったといいます。しかしこうした構成は必ずしも上手くいきませんでした。
「一見、同じフォーマットではあっても、(動画と生放送では)裏側で必要な仕組みがまったく異なるため、効果的な共通化は行えませんでした。その結果、複雑化した非常にメンテナンスしづらいシステムが残りました」(久保田氏)
システムの複雑さに伴って開発の速度や効率は悪化し、ちょっとした機能開発や機能追加にも膨大な時間がかかり、追加機能の要求にタイムリーに応えられなくなっていたといいます。
2つ目の課題は「運用の難しさ」です。久保田氏は例として、1,000台を超えるホストにインストールしたアプリケーションの更新を、サービスを停止させずに行う必要があったこと、またアプリケーションのバージョンに新旧が混在していても正常に動き続けられるように気を配る必要があったことなどをあげました。
「プロビジョニングツールにはAnsible(ITプロセスの自動化ツール)を使用しており、ある程度の自動化は行っていました。しかし、複雑なアプリケーション構成に対応するため、標準的な使用方法から外れた複雑なスクリプトを組み合わせた仕組みになっており、そのメンテナンスにも苦労していました。それに引きずられる形でアプリケーションの更新も月1度程度しか行えず、タイムリーな更新が行えない状況でした」(久保田氏)
3つ目の課題は「オンプレミスであることによるインフラ的な制約」です。「ニコニコ」サービスではアクセスが夜の時間帯に集中する傾向があり、ピーク時のアクセス数は昼間の数倍にものぼります。このため、ピーク時に対応できるよう用意した機器が遊んでしまう時間帯が発生し、非効率となっていたといいます。
クラウドネイティブのアーキテクチャによる1からの開発
こうした状況を打破するために、ドワンゴは動画配信基盤の刷新、それもクラウドネイティブのアーキテクチャによる、文字どおり1からの開発に着手。この刷新により、旧配信基盤により生じていたすべての課題の解消を目指しました。
まず、「開発の難しさ」を解決するために、動画と生放送の配信基盤を分離し、システムの複雑化を抑えることとしました。また、アプリケーションのアーキテクチャにはマイクロサービスを採用し、マイクロサービスごとに責務の明確な分離を行うことで、サービス単位での問題の単純化を図ったといいます。
さらにマネージドサービスを積極的に利用してクラウドネイティブなアーキテクチャにすることで、システム構成も単純化しました。動画変換にはAWS Elemental MediaConvert、ストレージにはAmazon S3。配信にはAmazon CloudFrontが採用されています。
「マネージドサービスを用いることで、システムの単純化と必要なリソースの大幅削減を実現することができました。実際のリソース使用量をCPUコア数で比較すると、旧システムでは1万コア以上必要だったのに対し、新システムはたったの300コア。実に3%にまで削減することができました」(久保田氏)
「運用の難しさ」という課題に対しても、マネージドサービスによるホスト管理とアプリケーションのコンテナ化などにより、運用にかかる時間と手間の大幅な削減を実現。また、アプリケーションのデプロイも劇的に省力化されたといいます。
「更新に必要な時間を比較すると、準備時間が1〜2週間から1時間、作業自体は数時間から数分に短縮できました。手間が激減したため、デプロイ頻度も大幅に上げることができ、月1回程度しかデプロイできなかった状態から、毎日デプロイを行える体制に変わりました」(久保田氏)
クラウドを利用することで、「オンプレミスであることによる制約」からも解放されました。新配信基盤では、コンテナオーケストレーションツールとしてKubernetesを利用し、常時、適切なリソース量で運用できるようになっています。突発的な負荷への対応が可能になったのはもちろん、コスト最適化という観点でも大きな効果があったと久保田氏は説明しました。
コスト試算で約97%の精度を実現した方法
こうして課題解決に成功したドワンゴでしたが、配信基盤を刷新するうえでは数々の苦労があったといいます。その中から久保田氏は、「アーキテクチャ検討とコスト試算」「技術的な挑戦」「既存動画のマイグレーション」という3つのトピックについて語りました。
「新配信基盤のアーキテクチャ検討と費用試算」について、久保田氏は「これから新しく開発するシステムのコスト試算は簡単なことではなく、大きな苦労を伴うものでした」と当時を振り返り、そのプロセスを説明しました。
まずはどのような仕組みで実現するか、クラウド技術を使用した仮のアーキテクチャを検討、PoCによりニコニコ動画として必要な機能が実現できるかを確認したといいます。
次に、この仮アーキテクチャに基づいたシステムをニコニコ動画で利用した場合、毎月どの程度の運用コストがかかるかを試算しました。ただし、オンプレミスとクラウドではコスト構造がまったく異なります。たとえば、送信データに関する費用について、オンプレミスでは帯域に対して回線費用がかかりますが、クラウドでは送信データの総量に対して費用が生じます。こうした差異があることから、ドワンゴでは100以上の項目を1つひとつ計算することで、全体的なコストの試算を行ったといいます。その後、アーキテクチャが正式に決定した際にも、それに基づいたコスト試算を再度行い、ようやく開発に移行したと久保田氏は説明しました。
「ニコニコ動画の配信基盤は大規模であり、少しの間違いが大きなコスト差として現れてしまうため、試算結果の信憑性に不安を感じながら作業を進めました。この点については、AWS Japanによる支援体制によってクリアにしていくことができました。配信基盤刷新の検討を始めた当初から担当者をアサインしていただき、アーキテクチャの検討からコスト試算まで、詳細に踏み込んだ支援をいただきました」(久保田氏)
最終的に、新配信基盤は旧配信基盤でかかっていたコストを下回ることができ、また配信基盤の移行後の検証によると、約97%の試算精度を実現していることを久保田氏は明かしました。
「大規模な配信基盤のコスト試算でここまでの精度で予測できたことは、大成功といえるのではないかと思っています」(久保田氏)
2つ目のトピック「技術的な挑戦」について、久保田氏は、「私たちにとっては、今回選択した技術スタックで新規開発を行うこと自体が大きな挑戦でした」と語りました。動画配信基盤の刷新プロジェクトのメンバーの多くは、オンプレミスによる旧配信基盤の開発・運用の担当者であり、クラウドネイティブなアプリケーション開発や、Kubernetesを利用した運用等の経験がありませんでした。そのため、社内勉強会やメンバー全員での細かな設計共有会を通じて、キャッチアップと開発を同時に行っていったといいます。
「ここでもAWS Japanに助けてもらいました。(同社の支援は)クラウド初心者の私たちにとっては非常にありがたく、これがなければプロジェクトの完遂は難しかっただろうと思います」
また、「既存動画のマイグレーション」については、新旧の配信基盤でデータの保存フォーマットが異なることから、データの変換作業が必要でした。そのためドワンゴでは、専用のマイグレーションシステムを開発し、圧縮データの詰め替え、いわゆるトランスマックス処理で動画データを変換するようにしました。これにより、総容量5ペタバイト以上という膨大なボリュームの動画データについて、3台のホストで、約3か月という短期間のうちに移行を完了させることができました。これはデータ形式を単純に変換する方法の約2,300倍に相当する速度だといいます。
ユーザー体験の向上も実現、さらなる改善を目指す
新配信基盤に移行したことにより、ユーザーのよりよい視聴体験にもつながっていると、久保田氏は説明します。たとえば、Amazon Cloudfrontの採用によって動画取得速度の改善とIPv6対応が実現したといいます。また、ピーク時の負荷を抑えるために設けられていた、一般会員の視聴画質を制限する「エコノミータイム」の仕組みを廃止。さらに、それまでは30分以上の動画を投稿する際にも、画質の制限が設けられていましたが、それを撤廃し、高画質での投稿ができるようになりました。
「クラウド化を伴う動画配信基盤の刷新を行って旧システムの課題を解決し、さらにはユーザー体験の改善を実現することができました。まだまだできることはたくさんあると考えており、皆様によりニコニコ動画を楽しんでいただくためにも、継続して改善に取り組んでいきたいと思っています」(久保田氏)
(取材・文:渡邊智則)