More Related Content
Similar to DeNAの動画配信サービスを支えるインフラの内部 #denatechcon (20)
DeNAの動画配信サービスを支えるインフラの内部 #denatechcon
- 1. Copyright © DeNA Co.,Ltd. All Rights Reserved.
DeNAの
動画配信サービスを支える
インフラの内部
Yusuke Hata
Group Manager
Group.1 IT Platform Dept.
System Management Unit
DeNA Co., Ltd.
TechCon 2017
- 2. Copyright © DeNA Co.,Ltd. All Rights Reserved.
2
今回お話する内容
■ 安定したライブ動画配信を支えるためにやっている事
⁃ ストリームの sharding について
⁃ 分散させるための仕組み
⁃ インフラの構成
⁃ オートスケーリング
■ クラウドサービスの利用について
■ オートスケーリングについて
■ 実績など
- 4. Copyright © DeNA Co.,Ltd. All Rights Reserved.
動画配信サービスは大きく分けると2パターン
■ ビデオ・オン・デマンド(Video On Demand)
⁃ 収録済みの映像コンテンツを配信(レンタルビデオを見るイメージ)
4
■ ライブストリーミング
⁃ 撮影しながら配信、視聴もリアルタイム視聴(TVの生放送のイメージ)
- 5. Copyright © DeNA Co.,Ltd. All Rights Reserved.
動画配信サービスは大きく分けると2パターン
■ ビデオ・オン・デマンド(Video On Demand)
⁃ 収録済みの映像コンテンツを配信(レンタルビデオを見るイメージ)
5
■ ライブストリーミング
⁃ 撮影しながら配信、視聴もリアルタイム視聴(TVの生放送のイメージ)
- 7. Copyright © DeNA Co.,Ltd. All Rights Reserved.
配信の仕組み(配信)
Origin(オリジン)サーバー
カメラなどで撮影したデータはエンコーダーを通して
Originサーバと呼ばれる配信サーバに映像データが配信(publish)される
最近ではスマートフォンを使うことで簡単に撮影&配信が出来る
7
- 8. Copyright © DeNA Co.,Ltd. All Rights Reserved.
配信の仕組み(視聴)
Edge(エッジ)サーバー
Originサーバと違い、映像を届ける事をメインとするサーバ
Originから配信された映像データをクライアント(視聴者)に届ける(配信する)
8
- 9. Copyright © DeNA Co.,Ltd. All Rights Reserved.
映像が届く仕組み(プロトコル)
■ RTMP - Real Time Messaging Protocol
⁃ マルチメディアのやり取りが得意のプロトコル、比較的低レイテンシ、Adobe製
■ HLS - HTTP Live Streaming
⁃ HTTPプロトコルを使ってライブ配信を実現するプロトコル、Apple製
9
- 11. Copyright © DeNA Co.,Ltd. All Rights Reserved.
1111
SHOWROOM Mirrativ
DeNAインフラで動く主なサービス
- 12. Copyright © DeNA Co.,Ltd. All Rights Reserved.
1212
SHOWROOM
(ショールーム)
DeNAインフラで動く主なサービス
■ インターネット上でアイドル、タレントとコ
ミュニケーションを楽しむことができる、仮
想ライブ空間
■ 仮想ライブ空間では、アバターの格好にな
り応援したいパフォーマーの部屋を訪問し
コミュニケーションできる
■ パソコン・スマートフォンなどから配信する
ことができる
■ VRライブ配信を行うこともできる
(SHOWROOM VR)
- 13. Copyright © DeNA Co.,Ltd. All Rights Reserved.
1313
Mirrativ
(ミラティブ)
DeNAインフラで動く主なサービス
■ スマートフォンに特化した生配信・実況配
信が出来るコミュニケーションサービス
■ スマートフォンの画面をミラーリングしな
がらライブ配信ができるので手軽
■ 日本国内以外にも韓国などの海外でも
配信が賑わっている
■ ゲーム実況配信などが人気
- 14. Copyright © DeNA Co.,Ltd. All Rights Reserved.
安定したライブ動画配信を
支えるためにやっている事
- インフラ基盤について -
14
- 16. Copyright © DeNA Co.,Ltd. All Rights Reserved.
全体の構成およびSharding構成
16
■ Origin と Edge は Sharding されて同一Shard内に配信される
■ そのため視聴側も同じShard内のEdgeに接続に行く
■ Shardを跨ぐ接続はしていない
- 17. Copyright © DeNA Co.,Ltd. All Rights Reserved.
安定運用のための
Origin/Edgeのキャパシティプランニング
17
- 18. Copyright © DeNA Co.,Ltd. All Rights Reserved.
Sharding構成
18
■ なぜSharding?
⁃ スケールアウトをするため
⁃ Origin1台あたりが捌けるキャパシティに限界がある
⁃ Originのスケールアウト以外にEdgeのスケールアウトのコントロールのため
■ 配信は持続して行われる(連続的)のため
キャパシティの上限になる前にスケールアウトしなければならない
- 19. Copyright © DeNA Co.,Ltd. All Rights Reserved.
Sharding構成
19
■ Edgeは同一Shard内にスケールアウト
■ Origin同様、配信は持続して行われる(連続的)のため
キャパシティが近づくとオートスケールのプログラムによって新しいEdgeが作られる
■ 既存の接続は同一のEdgeに行くため、新規の接続は新しいEdgeに割り振られる
- 20. Copyright © DeNA Co.,Ltd. All Rights Reserved.
障害発生時やメンテナンス時に
どのようにして
安全なサービスアウトを実現させているか
20
- 21. Copyright © DeNA Co.,Ltd. All Rights Reserved.
障害発生時
21
■ Originは Act/Stby の LB によって管理されている
■ Edgeは Active機 Standby機どちらにも接続している
■ 障害発生時は即座にStandby機に切り替わり映像は継続されるようになっている
通常時
障害発生
- 22. Copyright © DeNA Co.,Ltd. All Rights Reserved.
メンテナンス
22
■ ハードウェア故障や脆弱性対応などでサーバのメンテナンスはいつも起こりえる
■ 配信可能なOriginサーバーのリストはDBにて管理され
アプリケーションはこの値を使って配信するOriginを決定している
⁃ これによりいつでもメンテナンス(サービスアウト)を行えるようにしている
■ 既に配信されているOriginも対象、配信が終わり次第サービスアウトしている
- 24. Copyright © DeNA Co.,Ltd. All Rights Reserved.
特別な配信への対応
24
■ 予め高画質な配信(VR配信など)が分かっている場合は
Edgeを多めに用意している専用shardで配信を行うようにしている
■ 人気番組など分かっている場合も同様、専用のshardで配信を行えるようにしている
■ 後述するオートスケールプログラムと連携する事で大規模な配信にも対応
- 26. Copyright © DeNA Co.,Ltd. All Rights Reserved.
視聴側の分散方法
26
■ Origin同様の仕組みを持っていて、statusとweightによる分散と状態管理をしている
■ Edgeは接続数をベースにトラフィック量などに応じて接続が分散される
■ Edge増減はオートスケールプログラムによって完全自動化されている
- 28. Copyright © DeNA Co.,Ltd. All Rights Reserved.
低遅延を実現するためにしていること 1
28
■ ライブ配信において映像の遅延は常に問題となってくる事
■ 遅延時間が小さいと
視聴者と配信者でのリアルタイムコミュニケーションがしやすくなる
■ なるべく遅延が起きにくい構成にしている
⁃ メッシュ(フルメッシュ)構造にはしていない
⁃ Origin <-> Edge間に余計なものはいない
⁃ 基本的にはCDNが間にいない(直接Edgeに接続)
- 29. Copyright © DeNA Co.,Ltd. All Rights Reserved.
低遅延を実現するためにしていること 2
29
■ 基本的に視聴時はRTMPを使っている
⁃ HLSもチューニングは行っているが、RTMPに比べ遅延が出てしまう
■ 以前はスマートフォンからの閲覧でHLSを利用していたが、RTMPを利用できるようになってい
る(HLSへは回線状況に応じて切り替わる)
- 31. Copyright © DeNA Co.,Ltd. All Rights Reserved.
クラウドサービスの利用
31
■ OriginはオンプレミスのDCで稼働している
■ Edgeはパブリッククラウドサービスを利用している
■ 設計上、複数のクラウドを混在させることが出来るようになっているため
シームレス(ダウンタイムなし)にクラウドサービスの切り替え・混在が出来る
- 32. Copyright © DeNA Co.,Ltd. All Rights Reserved.
クラウドサービスの利用
32
■ クラウドサービスもActive系とStandby系に分けてクラウドサービスを運用
⁃ Standby系のクラウドは「起こさない」限り、Edgeインスタンスの数はゼロ
⁃ 過去に一度だけ「起こした」事がある
- 33. Copyright © DeNA Co.,Ltd. All Rights Reserved.
DeNAのオートスケールプログラムについて
- 先程まで紹介してきた機能を
どうやって自動化しているか -
33
- 34. Copyright © DeNA Co.,Ltd. All Rights Reserved.
オートスケールするとはどういうことか
■ 配信の少ない時間帯は必要最低限のインスタンスが稼働している
⁃ インスタンスのコストの最小化
⁃ ライセンスコストの最小化
⁃ => 通常インスタンスが上がっているだけでコストがかかる
■ 人気の番組が配信された時は捌ききれる台数までスケールアウト
⁃ アラートが鳴ってから構築では遅すぎる
⁃ 一度に大量のインスタンスを作ることができる
⁃ 人気番組が終われば自動でスケールイン
■ オートスケールが出来るということ
=> 人の手を介さず、必要最低限なコストで運用できるということ
=> オペレーションミスの低減
=> メンテナンスの容易さ
=> 運用コストの低減
■ 突発的な配信にも耐えれるということ
⁃ ベイスターズのサヨナラヒットも
⁃ 人気アイドルグループの配信にも
⁃ ...etc
34
- 35. Copyright © DeNA Co.,Ltd. All Rights Reserved.
オートスケールを実現するために必要なこと
35
■ Originの性能限界の把握
⁃ OriginはどれだけのEdgeをぶら下げることが出来るのか
⁃ Edgeの台数が増えると何が起きるのか
• Edgeが増えると CPU 負荷が増える
• Edgeが増えると origin <-> edge 間でのトラフィックが増える
⁃ トラフィックはNICの性能を超えないか
⁃ どれくらいの配信を受けることができるのか
• 低ビットレート用transcorderが動いていて一定数を超えるとCPUが貼りつく
• 配信数が増えるとメモリ消費量が増える
■ Edgeの性能限界の把握
⁃ どれだけの接続を受けることができるのか(どこが先に頭打ちするのか)
⁃ 接続が増えるとトラフィックが増える(NICの性能を超えないか)
⁃ 解像度別の負荷状況の把握
⁃ プロトコルによっても負荷状況は違う
⁃ クラウドサービスによってはインスタンス毎に性能値がバラバラ
=> Origin/Edgeともに負荷試験がとても大切
- 36. Copyright © DeNA Co.,Ltd. All Rights Reserved.
オートスケールを実現するために必要なこと
36
■ 内製負荷試験ツールの作成(scala)
⁃ さまざまな指標を元に性能値を取得するために作成
⁃ 複数の解像度・複数のストリームなどを段階的に組み合わせて取得
⁃ ここから性能値を把握し、オートスケールプログラムと監視の閾値に反映
- 38. Copyright © DeNA Co.,Ltd. All Rights Reserved.
オートスケールの仕組みと実装 1
38
■ 基本は接続数ベースのオートスケール(トラフィック等も見ているが)
■ 各Edgeにどれだけ接続が来ているか常に収集
■ 接続数と現在稼働中のEdgeの台数から、本来必要なインスタンス数を計算、
過不足があればインスタンスを N台 追加削除する
⁃ また、常にN+1台多めにスケールアウトするようにしている
⁃ スケールアウトする場合は、殆どの場合で接続が伸びる傾向にあるため、
予め多く構築している
- 39. Copyright © DeNA Co.,Ltd. All Rights Reserved.
オートスケールの仕組みと実装 2
39
■ スケジューリングされたオートスケーリングにも対応
■ Y月X日Z時 に特別配信があるから、その時間帯だけ暖気ができる
■ ピークタイム時間帯には通常よりも台数を多くしておく等も可能
■ スケジューリングされていても、接続数などに応じて自動スケールアウトもする
- 40. Copyright © DeNA Co.,Ltd. All Rights Reserved.
オートスケールの仕組みと実装 3
40
■ 最低限必要な台数以下には減らさない
■ スケールアウトによって追加されたインスタンスはサービスアウト後一定時間が経過するまで
インスタンスの削除は行わない(cooldownタイムがある)
⁃ フラッピング防止の為
⁃ 増やすときは上限まで増やすが、減らすことは頻繁に行わない
- 41. Copyright © DeNA Co.,Ltd. All Rights Reserved.
オートスケールの仕組みと実装 4
41
■ インスタンスは状態遷移が行われるようになっており
サービスイン・サービスアウト、インスタンスの台数算出は状態に応じて行われる
- 42. Copyright © DeNA Co.,Ltd. All Rights Reserved.
オートスケールの仕組みと実装 5
この他にも沢山の仕組みと実装があるが割愛
■ originとedgeはそれぞれ別々に駆動するため、全体を巻き込んで死亡しないよう
な設計になっている
■ 構築から性能に応じたスケーリング、自動監視、全てが自動化されている
■ 高解像度・高ビットレート(例えばVR)の配信がされた場合でもオートスケールが
正しく行えるよう、オートスケールの設定はshard単位で変更できるようになって
いる
■ 状態管理はある一定のフォーマットに従って管理されるため、どのようなDCに
edgeがあっても、自動で監視が入り、自動でサービスに組み込まれるようになっ
ている
■ 監視が細かく入る、監視項目や監視プログラム数も多いため省略
42
- 43. Copyright © DeNA Co.,Ltd. All Rights Reserved.
オートスケールを実現するために様々な指標を取っている
■ CPU
=> 急にCPUが跳ねる事がないか、常に跳ね続けていないか
■ MEMORY
=> 85% 以上メモリを使用すると増設のアラートが飛ぶ
■ TRAFFIC
=> outbound xxxMbps まで出ているとアラートが飛ぶ(偏りが起きていないか)
■ RTMP CONNECTION数
=> port 1935で発行したtcp establish数、同一IPから大量発行が行われていないか
■ HLS の場合は発行したSESSION数
■ Origin 配信数
■ 全体の配信数
■ DC毎のTRAFFIC値
=> DCで出せる限界が決まっている場合はちゃんと監視も兼ねて取る
■ インスタンス数の上限値
=> 上限にかかりそうな場合、zone切り替えなども
■ ...etc
43
- 44. Copyright © DeNA Co.,Ltd. All Rights Reserved.
DeNAの配信基盤オートスケールの歴史
■ 〜2014年 オートスケールのない時代
⁃ 手動オートスケール
⁃ 数十台のインスタンスを1日で作りその日のうちに(手動で)削除するなどしていた
■ 〜2014年8月(たしか夏頃) 初代オートスケールの誕生
⁃ 荒削りながらも自動化される
⁃ 足りない部分は運用でカバー
■ 〜2015年3月 2代目オートスケールの誕生
⁃ 初代に改良を加え、ほぼ現在の実装、これがベース、長期間安定
■ 〜2015年6月 3代目オートスケールの誕生
⁃ 2代目のリソース面の問題を解消するため、新たにスクラッチした実装
⁃ 2代目とは別環境で稼働
■ 〜2016年3月 2.5代目3.5代目の誕生
⁃ 本格的なSSL時代に向け監視の強化、パフォーマンスの向上
■ 〜2016年7月 VR対応版
⁃ VR配信など高画質配信に向けた本格的な対応
■ 2016年8月〜 現在動いているモノ
⁃ 先に紹介したモノが一式揃っている実装
■ 2016年10月〜 4代目オートスケール誕生
⁃ 2代目と3代目はどちらも現役で動いているので、どちらでも移行しやすい設計に
⁃ 自動化の範囲を更に広げている
44
- 46. Copyright © DeNA Co.,Ltd. All Rights Reserved.
SHOWROOMでの実績
46
■ SHOWROOM 3周年記念配信
■ 多数の芸能人の方々に主演いただいた
- 47. Copyright © DeNA Co.,Ltd. All Rights Reserved.
SHOWROOMでの実績
47
■ AKB48 45th シングル 選抜総選挙
■ 48Gのメンバーによる多数の配信が行われた
- 48. Copyright © DeNA Co.,Ltd. All Rights Reserved.
SHOWROOMでの実績
48
■ 横浜DeNAベイスターズ 主催試合 生中継
■ 試合以外にも特別番組などの配信も
- 49. Copyright © DeNA Co.,Ltd. All Rights Reserved.
SHOWROOMのほかにも色々
49
紹介しきれていない動画配信サービスも
続々登場中。
- 50. Copyright © DeNA Co.,Ltd. All Rights Reserved.
ほかにも色々
50
今後も
より安定して、
よりエキサイティングな
ライブ配信インフラを
提供していきます。