総視聴数7400万でも障害ゼロ、AbemaTVが72時間のライブ配信に成功した理由:テラbps級のトラフィックに挑んだ「72時間ホンネテレビ」の裏側(2/3 ページ)
AbemaTV社が開催した「AbemaTV Developer Conference 2018」で、サイバーエージェント 技術本部 インフラエンジニアの柿島大貴氏は、2017年11月に配信した「72時間ホンネテレビ」を障害なく実現するため、開発本部が取り組んだ施策について説明した。
年末年始特別配信に向けてプロジェクトが始動したが……
調査や検討を進め、2017年9月11日に年末年始特別配信アクセス負荷対策プロジェクトが始動した。しかし、プロジェクト始動から13日後の2017年9月24日、「72時間ホンネテレビ」が11月に放映されるという情報が告知された。
「人気タレントが出演する番組のため、急激なアクセス増大が予想された。年末年始の特別配信以前に、11月放送の72時間ホンネテレビに向けて対策を急ぐ必要があると、その時になって初めて分かった」
年末年始に向けて立てた予定を2カ月前倒しで進めるため、当初15人だった対策プロジェクトは、2017年に入社した新人を含め、技術本部全員が取り組む体制とした。
採った対策は「CDNの利用強化」「リクエスト数の調整」「連携システムの切り離し」の3つだ。
まず、多数のアクセスによりGCPのサーバが落ちることを防ぐため、CDNの利用を強化。具体的には、番組の動画データであるセグメントファイルに加えて、動画データの保存場所や再生時間、再生順序を記述したプレイリストを「Akamai CDN」経由で配信。さらに、Webサイトで提供する番組表や、APIの一部を「Google Cloud
CDN」経由で配信。他の機能でもCDNを活用することでAbemaTV本体システムへのアクセスを分散させた。
続いて、視聴者から発生するリクエストを減らそうと取り組んだ。例えば、番組画面に表示されるコメント数や視聴者数は、クライアントが定期的にリクエストを送信してサーバから値を取得し、更新していたが、「『27K』(2万7000〜2万7999)といった数値表示のように多くの視聴数やコメント数があって細かい数値を省略して表示している場合、1000以下の値の変化があっても表示は変わらない」と考え、リクエストを送信する頻度を少なくした。
視聴中に発生するリクエストを調査した段階で、Android版AbemaTVアプリがGCPに対して0.2秒間隔でリクエストを送信していたことも明らかになっていた。アプリに利用していたGoogleの動画アプリ用ライブラリ「ExoPlayer」に不具合があることを突き止め、GitHubでPull Requestを送り不具合を修正し、リクエスト数削減に努めた。
さらに、AbemaTV本体のシステムと連携システムを切り離した。例えばアクセス数などを測るトラッキングシステムは、AbemaTV本体のシステムを経由させず、直接リクエストを受け取るようにした。
だが、こうした対策が間に合わない関連機能や連携システムもあった。それらがダウンしても配信を届けられるよう、例外処理を見直したり、機能を追加したり、さらには「配信当日は一部機能を使わない」よう、番組制作部門に依頼したりもした。
「放送1カ月前の2017年10月は、何らかのテストやリリースが毎日行われている状態だった。iOSやAndroidなどのアプリは、ユーザー側がアップデートしないと『リクエスト数削減の対策効果を得られない』という問題があったが、強制アップデートの仕組みを用意していたため、AndroidやiOS版のAbemaTVアプリは放送2日前に、Amazon Fire TVやAndroid TVは放送1日前に強制的にアップデートすることで、対策を反映できた」
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- AbemaTV、サイバーエージェントの講演から探る、アジャイル開発成功の鍵と炎上しないための教訓
“いいもの”を、より早く形にして市場に届ける際に欠かせないのが「テスト」だ。DevOpsやアジャイルといった開発スタイルの中で適切に、かつ効率よくテストを実施する秘訣とは何だろうか? @IT編集部が主催した「DevOps時代のテスト自動化カンファレンス〜はやく、いいものを届けよう〜」の講演から、そのヒントを紹介する。 - アマゾンと楽天――大手Eコマースサイトを裏側で支えるCDN
Eコマースサイトにおいて、コンテンツ配信ネットワークの利用は日常化しています。ブラウザー型解析ツールの「HttpWatch」とオンライン解析ツールの「robtex.com」を使い、その裏側に迫ってみましょう。 - 開発、リリース、運用のサイクルを回す――アメブロのフロントエンドにおけるモダンなDevOps環境作り
2004年から続くブログサービス「アメブロ」が2016年9月にシステムをリニューアル。本連載では、そこで取り入れた主要な技術や、その効果を紹介していく。今回は、アメブロのフロントエンド開発におけるDevOpsの取り組みについて。