Linode使ってみた!(ついでにライブストリーミング配信を試してみた!)の巻
※本記事の画像は「 https://logmi.jp/tech/articles/327868 」から引用しています。
睡眠不足のdskです。
いきなりですが、クラウドプロバイダーと聞いて思い浮かぶのって AWS , Azure , GCP が多いと思います。
わたしもそうです。いまはおもいっきり GCP に携わることが多いので、まっさきに viva GCP! と答えてしまうと思います。
そんな中、egressがめちゃくちゃ安い! が謳い文句(他にもいいとこあるけど)の Linode を使ってみました!
Linode とは
Linode はAkamai社が提供する IaaS プラットフォームプロバイダサービスです。「リノード」と読みます。
なぜ名称に「IaaS」がわざわざ付いてるのかというと、マネージドサービスが「現在はほとんどない」んですよね。
なので、「Linode だけでフロントエンドからバックエンドまで構成する」のはちょっと時期尚早感は否めません。
じゃあどういうユースケースがあるのかというと、
- (ちょっとした)データ加工と分析
- 他企業や他チームとのコラボレーション時のワークロード実行環境
- 負荷試験実行環境
- 脆弱性診断やセキュリティテスト実施環境
と言った、ロケーションを問わない小規模環境から使ってみるのがいいとおもいます。
メリット
まず浮かぶのはコストが安いってことですね。 と言っても ↑ に記載した通り、小規模環境での利用がいいと思っているので、そもそもコストそんなにかかってなさそうやん!という声が聞こえてきそうです。
わたしも Linode が使えそうかという観点でミニマム環境で使ってみたので、コストが安いという実感はまだ得られていません。
よくある「共有/専有CPU」の選択をし、次に「プラン(マシンタイプ)」の選択をするわけですが、プランの中にストレージ(SSD)と転送(egress)が含まれてるんです。
主要クラウドプロバイダーとの価格比較ですが、「4vCPU/8GB」プランにもともと付帯されているストレージと転送量を加味したコストシミュレーションです。
細かい部分は置いておいて、これだけ見ると確かにコストメリットを感じることができますね!
ちなみに今回ベンチマークは取っていません。「どのくらいの性能出るの?」と気になるひともいるとおもうので、その辺は次回にでも。
デメリット
やっぱりサービスラインナップの少なさでしょうね。 そもそも主要クラウドプロバイダーとは交わらない層をターゲットにしているのであれば狙い通りなのかもしれませんが。
オンプレや他クラウドからのマイグレーション先として利用する選択肢にはまだ入ってこないとおもいます。
その他
Terraform 使えます。 Terraform サンプルコードも公開されております。
サービスの拡充やワールドワイドのリージョン増設などにも力をいれていくようです。 サービス拡充のお知らせより直近の情報を確認できます。
タイトルの「ついで」の部分
いきなりですが、皆さんはライブストリーミングと聞いて何を思い浮かべますか?
某動画配信サイトだったり某ゲームだったり、、、ひとによって思い浮かべるものって違うと思いますが、どういうメカニズムで配信元から配信先(クライアント)までストリーミングされているかを検証してみました!
検証に使ったソリューションのご紹介です。
- Linode
- OBS Studio
- Wowza Streaming Engine
- Adaptive Media Delivery(アカマイ・テクノロジーズのソリューション)
まずはソリューションの簡単な説明です。
Linode
説明済みのため割愛。
OBS Studio(OBS)
OSS製で映像配信を行えるソフトウェア。 ライブストリーミング以外にもビデオキャプチャや録画もこなせる万能型ソフトウェア。
Wowza Streaming Engine(WSE)
https://www.wowza.com/streaming-engine
動画および音声をストリーミングするためのソフトウェア。 HLS(HTTP Live Streaming)形式にエンコードしたりできる。
Adaptive Media Delivery(AMD)
https://www.akamai.com/ja/resources/product-brief/adaptive-media-delivery
アカマイ・テクノロジーズ製のメディア配信ソリューション。 デリバリー担当。
検証環境
今回の検証では、OBS にてキャプチャした動画を Linode 上に構築した WSE で HLS 形式にエンコードし AMD で配信してみました。
WSE登録ページ から Start Free Trial でライセンスを発行します。
Download and install Wowza Streaming Engine セクションの Downloads webpage より、Linode の IaaS とマッチする OS のインストーラをダウンロードし、Linode 上でインストーラを実行します。
続いて AMD ですが、Akamai Control Center からログインし、Create Property → Adaptive Media Delivery を選択し、任意のプロパティを作成します。
最後に OBS の設定 を行います。
配信元(ローカル)の OBS と、配信先(クライアント)のプレイヤー画面を比較すると、数秒程度の遅延で配信出来ていることが確認できるとおもいます。
配信プロトコルを HLS → LL-HLS(Low Latency HLS) に変換することで配信データを chunk として伝送できたり、セグメント長(転送可能なデータ)のキーフレームを短くすることで、遅延が短くなることを体感したりできますよ。(その分映像がカクツク)
まとめ
後半はだいぶ話がそれちゃいましたが、Linode は機能拡充が進んでいったら今後要注目のクラウドプロバイダーと言えると思います。
「後発のメリット」を生かして、御三家をおびやかすぐらいの存在になってくれると、より競争が生まれて選択の幅も広がるかなぁとおもいます。
今後も定期的にレポートしていきたいと思います。