Wowzaには冗長化機能がビルトインされています
ただし、結構限定的な冗長化です。おそらくこのページに飛んで来た人は、そんな事は知ってんだよ!と激昂されるかもしれませんので先に書いておきますが
このページでは、動画プレイヤーを使ったエッジサーバーの冗長化については解説していません
ここではエッジサーバーとオリジンサーバーの冗長化についてのみ記載します
なぜって?それは検索して来た人が一番よく分かっていると思いますよ
さて、ちゃっちゃと解説していきましょう
言葉の説明は面倒なので、まずはイメージ図を見て頂きます
ざっくりとし過ぎている気もしますが、要するにライブ配信もVOD配信も同じような仕組みで動いています
ライブ配信をイメージした図ですが、エンコーダーと呼ばれる機材からRTMPでWowzaのオリジンサーバーに送ります
この時、1台のエンコーダーから複数RTMPでオリジンサーバーの①と②に送ったり、2台のエンコーダーをからそれぞれ①と②に送ったりします
エンコーダー1台で複数のオリジンサーバーに送ることも可能ですが、これではエンコーダーが倒れた時に緊急事態になるので、普通はエンコーダーを2台体制にして正副として運用する事が望ましいと言われています
さて、この図で言いたいのは、オリジンサーバーが2つでエッジサーバーが1つですという事です
オリジンサーバーというのは、いわゆるオリジン、つまり母艦です
母艦が落とされれば全ては終わりというわけです。なのでエッジ、つまり歩兵部隊さながらの先兵を送り出してそこに処理をさせるわけですね
これならエッジサーバーが倒れてもオリジンサーバーにはダメージはありません
エッジサーバーはオリジンサーバーからデータをPullで取得します。つまり、オリジンサーバーからエッジサーバーへはPushという危険な行為は行わないわけです。Pushなんて送り先到達までに失敗したら停止するリスク高過ぎです
テキストばかりだと眠くなると思うので、実際の設定画面とか見ていきましょう
Pullの設定をする為には、Wowza Streaming Engineの中でApplicationの作成を行います
Add ApplicationからLive Edgeを選択します
選択すると、以下のような箇所が見つかります
Primaly Originとはプライマリ、つまり優先するオリジンサーバーという事です。Secondary Originとはセカンダリ、つまり2番目に使用するオリジンサーバーという事です
要するに、この設定を行っておけばプライマリがダウンしてもセカンダリからデータをエッジサーバーがPullするのでオリジンサーバーが少しだけ堅牢になりましたよという状態に出来るわけです
この設定を複数のエッジサーバーに施しておけば、エッジサーバー側もより堅牢となります
さて、ここで問題となるのは、どうやって複数のエッジサーバーを管理するの?という部分です
複数のエッジサーバーが立っていても、視聴者が同じエッジサーバーにばかり行ってしまってはエッジサーバーによる”負荷分散”が出来ません。皆大好き”負荷分散”出ました
これが私の冒頭に説明していた
動画プレイヤーを使ったエッジサーバーの冗長化については解説していません
という事です
ここから先はより面倒、かつ大変な作業が必要になるので、また元気が出たら書くかもしません・・・