Azure Kubernetes Service でのバースト 4K エンコード

2020年2月24日 に投稿済み

Cloud Solution Architect

Azure と Media Excel HERO プラットフォームによるクラウドでのバースト エンコード

コンテンツの制作に対する需要がかつてないほどに高まっています。プロとユーザーが創出したコンテンツの量は、ここ数年で指数関数的に増えました。その結果、メディアのエンコードおよびコード変換プラットフォームに多大な負荷がかかっています。しかも、まもなくそれに 4K、さらには 8K が加わるとなれば、これらの変数に合わせて拡張できるプラットフォームは外せません。そこで、Azure のクラウド コンピューティングでは、お客様のニーズに合わせて柔軟に拡張できる方法を提案しています。マイクロソフトが提供する多彩なツールや製品なら、オンプレミス、ハイブリッド、あるいはネイティブ クラウドのワークロードを十分にサポートできます。たとえば Azure Stack はお客様のコンピューティング ニーズに適したハイブリッド シナリオに対するサポートを提供し、Azure ARC はお客様によるハイブリッド環境の管理を支援します。

ソリューションを見つける

通常、4K/UHD のライブ エンコードは専用のハードウェア エンコーダー ユニットで行われますが、それを Azure のようなパブリック クラウドでホストすることはできません。Azure データ センターに 4K を送信するために必要な、オンプレミスでホストされている専用のハードウェア ユニットを持つことによって直面する目下の課題としては、オンプレミスのエンコーダー ユニットと Azure データ センター間で高帯域幅ネットワーク接続が必要になることが挙げられます。一般に、複数のリージョンに取り込むことがベスト プラクティスとされますが、エンコーダーと Azure データセンターを接続するネットワーク上の負荷が大きくなってしまいます。

では、4K コンテンツを確実にパブリック クラウドへと取り込むにはどうすればいいでしょうか。

代わりに、コンテンツをクラウドでエンコードする方法があります。4K/UHD ライブ エンコードを Azure で実行できれば、そのアウトプットを十分な帯域幅と信頼性を備えた Azure 内部のネットワーク バックボーン経由で Azure Media Services に取り込むことが可能になります。

4K/UHD ライブ エンコードを Azure クラウドでコンテナー化されたソリューションとして確実に実行し、拡張できるようにするにはどうすればいいでしょうか。以降でその方法を検討してみましょう。 

Azure Kubernetes Service

Azure Kubernetes Services (AKS) では、マネージド Kubernetes プラットフォームをお客様に提供しています。これはホスト型の Kubernetes プラットフォームなので、ネットワークやクラスター マスター、クラスター ノードの OS のパッチ適用といった、構成に必要なあらゆる負荷を伴うクラスターの構築に多くの時間をかける必要がなくなります。また、事前構成済みの監視機能が搭載されており、Azure Monitor や Log Analytics とシームレスに統合できます。もちろん、お客様のツールと統合できる柔軟性も失っていません。その上、最も単純な Kubernetes であることに変わりないため、お客様が他の一般的な Kubernetes プラットフォームで既存のツールを実行されている場合でも、それらに対する完全な互換性を備えています。

Media Excel のエンコード

Media Excel (英語) は、エンコードとコード変換を手掛けるベンダーであり、物理アプライアンスやソフトウェアベースのエンコード ソリューションを提供しています。同社はマイクロソフトと長年提携関係にあり、Azure におけるメディアのお客様プロジェクトに参加してきました。また、フラグメント化 MP4 を出力する、Azure Media Services のおすすめのテスト済みコントリビューション エンコーダーにも挙げられています。ほかにも Media Excel とマイクロソフトは、SCTE-35 時限メタデータを Media Excel のエンコーダーから Azure Media Services 配信元に統合して、サーバー側広告挿入 (SSAI) ワークフローをサポートする取り組みも連携して行いました。

ネットワーク上の課題

4K や 8K といった画質の向上に伴い、コンピューティングとネットワークの両面での負荷が設計上の重大な課題となっています。たとえばお客様との最近のエンゲージメントで、4K ライブ ストリーミング プラットフォームを設計する必要がありましたが、その際、お客様のオンプレミス環境から Azure データセンターの 1 つまでの帯域幅容量が限られているという課題に直面しました。そこで、Media Excel と連携して、AKS 上でスケーラブルなコンテナー化されたエンコード プラットフォームを構築し、クラウド コンピューティングを利用して、エンコーダーと Azure Media Services パッケージャーとの間で生じるネットワーク遅延を最小限に抑えました。マルチビットレート (同一ソースの最高ビットレートが最大 4Kp60@20Mbps) がクラウドで生成され、Azure Media Services プラットフォームに取り込まれてさらなる処理が行われます。それには、動的な暗号化とパッケージングが含まれています。このセットアップでは以下のようなメリットを享受できます。

  • 複数の AKS ノードに即座に拡張可能
  • お客様と Azure データセンターの間のネットワーク制約の解消
  • コンテナーに関するワークフローを自動化し、コンテナー テクノロジに対する懸念を簡単に分離
  • 生成された質の高いコンテンツを配信するためのセキュリティ レベルの向上
  • 冗長性の高い機能
  • 各種のノード プールを柔軟に提供して、メディア ワークロードを最適化

このテストでは、西ヨーロッパで実行されているコンテナー化されたエンコーダー インスタンスから、米国東部と香港の両データセンター リージョンに向けて、高帯域幅の、遅延の影響を受けやすい 4K パケットを送信する能力において、Azure 内部のネットワークが非常に優れていることを証明しました。これによりお客様は、さらにコンテンツの調整を行うために配信元をより身近に配置できるようになりました。

Azure クラウドでの 4K エンコードに使われる Azure コンポーネントのアーキテクチャ概要

ワークフロー:

  1. Azure Pipeline がトリガーされ、AKS クラスター上に展開されます。(Githubにある) YAML ファイル内 (英語) に、Azure Container Registry の Media Excel コンテナーへの参照があります。
  2. AKS が展開を開始すると共に、Azure Container Registry からコンテナーをプルします。
  3. コンテナーの開始時に、カスタムの PHP スクリプトが読み込まれ、コンテナーが HMS (Hero Management Service) に追加されます。そして、適切なデバイス プールとジョブに配置されます。
  4. エンコーダーがソースを読み込み、(このケースでは) 4K ライブストリームを Azure Media Services にプッシュします。
  5. Media Services がライブストリームを複数の形式にパッケージ化して、DRM (デジタル著作権管理) を適用します。
  6. Azure Content Deliver Network がライブストリームを拡張します。

Azure Container Instances による拡張

Azure Kubernetes Services では、Azure Container Instances の能力が即座に得られます。Azure Container Instances は、お客様が自由に使えるプロビジョニング済みのコンピューティング能力を即座に拡張するための手段となります。Media Excel のエンコード インスタンスを AKS に展開する際に、それらのインスタンスがどこで作成されるようにするかを指定できます。これにより、低コスト・優先順位の低いエンコード ジョブには安価なノードでの密度を高め、高スループット・優先順位の高いジョブには高価なノードでの密度を高めというように、さまざまな変数を操作できる柔軟性が得られます。Azure Container Instances よって、ワークロードを即座にスタンバイ状態のコンピューティング能力に移動できるようになり、プロビジョニング時間がかかりません。お支払いは使用したコンピューティング時間の分だけで済むので、プラットフォームのニーズに対する顧客の需要や今後の変化に合わせて非常に柔軟に対応できるようになります。Media Excel の柔軟なライブまたはファイルに基づくエンコードの役割によって、AKS と Azure Container Instances が提供する異なるコンピューティング能力間で簡単にワークロードを移動できます。

Azure Kubernetes Services (AKS) でのコンテナーの作成

すべての Container Instances を表示する Media Excel の Hero Management System

Azure DevOps パイプラインによる一元化

コンテナー化されたワークロードに伴う一般的なメリットはすべて、以下のケースに当てはまります。この概念実証では、テストと展開を容易にするために Azure DevOps で自動化された展開パイプラインを構築しました。展開用の YAML とパイプラインの YAML によって、Media Excel のエンコード コンテナーの展開、プロビジョニング、拡張を容易に自動化できます。DevOps が展開ジョブを AKS にプッシュすると、コンテナー イメージが Azure Container Registry からプルされます。コンテナー イメージではノード側でのレイヤーのキャッシュを大規模に利用できますが、新たなコンテナーのプル操作にかかる時間は数秒にまで大幅に短縮されています。Media Excel の協力を得て、YAML ファイル コンテナーのコンテナー ライフサイクルの前と後のロジックを作成しました。このロジックによって、Media Excel の管理ポータルのコンテナーが追加および削除されます。これにより、複数のノード タイプ、クラスター、リージョンにまたがる複数のインスタンスを、1 つの画面から簡単に管理できるようになります。

この展開パイプラインは、特定のマルチテナントのお客様や、特定のノード タイプに対するジョブの優先順位をプロビジョニングできる十分な柔軟性を備えています。そのため、GPU 対応ノードでエンコード ジョブをプロビジョニングしてスループットを最大化したり、優先順位の低いジョブに安価な汎用ノードを使用したりといったことが可能になります。

Azure DevOps の展開のリリース パイプライン

Azure Media Services と Azure Content Delivery Network

最後に、4K ストリームを Azure Media Services にプッシュします。クラウド ベースのプラットフォームである Azure Media Services では、ブロードキャスト品質のビデオ ストリーミング、アクセシビリティと配信の強化、コンテンツの分析などを可能にするソリューションを構築できます。Media Services を使用すると、アプリの開発者からコール センター、政府機関、エンターテイメント企業に至るまで、現在最も普及しているモバイル デバイスやブラウザーの多数のユーザーに、優れた品質のメディア エクスペリエンスを提供するアプリを作成できます。

Azure Media Services は、Azure Content Delivery Network とシームレスに統合できます。Azure Content Delivery Network では、真のマルチ CDN を提供するため、Azure Content Delivery Network from Microsoft、Azure Content Delivery Network from Verizon、Azure Content Delivery Network from Akamai の 3 つの選択肢が用意されています。これらはすべて単一の Azure Content Delivery Network API から提供されるので、プロビジョニングや管理を容易に行うことができます。さらに、Azure Media Services の配信元と CDN エッジの間のすべての CDN トラフィックを無料でご利用いただけるというメリットもあります。

当社はこのセットアップを通じて、クラウドでのエンコードが、複数のクラスター間でのリアルタイムの 4K エンコードに対応できる準備が整っていることを実証しました。高スループットや時間が重視される制約に対処できるアーキテクチャの構築がいかに容易かを示すことができたのは、AKS、Container Registry、Azure DevOps、Media Services、Azure Content Delivery Network といった Azure サービスのおかげです。