このページの本文へ

FIXER cloud.config Tech Blog

AzureとAkamai/Verizon CDNで冗長性のある動画配信インフラを構築する

2022年01月13日 11時00分更新

文● 多田 祐一朗/FIXER

  • この記事をはてなブックマークに追加
  • 本文印刷

 本記事はFIXERが提供する「cloud.config Tech Blog」に掲載された「冗長性のある動画配信インフラをAzureで作る(TrafficManager→CDN→MediaService)」を再編集したものです。

※2022/1/12 レコード周りを修正

 この記事はFIXER Advent Calendar 2021 17日目の記事です。

 今回は、Azureリソースを使って動画配信をしてみます。

 「前回記事で説明したとおり、Microsoft CDNは動画配信には不向きなので、Akamai CDN、Verizon CDNを使ってやってみます。」

はじめに

 大雑把な図です。

 あらかじめ以下のリソースを作成しておきます。

グローバル
TrafficManager

東日本
・CDN(Akamai)
・MediaService
・ストレージアカウント

西日本
CDN(Verizon)
・MediaService
・ストレージアカウント

 カスタムドメインの登録をするので何かしらDNSも必要です。

CDN統合を有効にする

 MediaServiceのストリーミングエンドポイントから有効にします。今回はStandard Akamaiを使用するのでポータル以外から有効にします。というのも、ポータルからだとStandard VerizonとPremium Verizonしか選択できないためです。

 今回はAzCLIを使用します。


az ams streaming-endpoint create `
	--account-name {MediaService名} `
	--name {ストリーミングエンドポイント名} `
	--resource-group {リソースグループ名} `
	--scale-units 0 `
  --auto-start `
	--cdn-profile {CDNプロファイル名} `
	--cdn-provider StandardAkamai


 ここまで来たらついでにVerizonもコマンドで有効にした方が早い(気がする)です。


az ams streaming-endpoint create `
	--account-name {MediaService名} `
	--name {ストリーミングエンドポイント名} `
	--resource-group {リソースグループ名} `
	--scale-units 0 `
  --auto-start `
	--cdn-profile {CDNプロファイル名} `
	--cdn-provider StandardVerizon

カスタムドメインの追加

Akamai

 Akamaiの場合は以下2つのレコードをCNAMEで登録します。


cdnverify. -> CNAME -> cdnverify.<cdn backend hostname>
acme-challenge.<custom domain hostname> -> CNAME -> <custom domain fqdn>.ak-acme-challenge.azureedge.net


にはCDNのエンドポイントを指定します。

例:cc9ada1caba64401990c40a3508fd000.azureedge.net

 その後、CDNエンドポイントでカスタムドメインの追加をし、カスタムHTTPSを有効にします。

 有効になるまで最大6~8時間かかるのでそれまで待機が必要です。

 問題なく有効にできると以下の画像のようになります。

詳細:https://docs.microsoft.com/ja-jp/azure/cdn/cdn-custom-ssl?tabs=option-1-default-enable-https-with-a-cdn-managed-certificate#tlsssl-certificates

Verizon

 Verizonの場合は以下のレコードをCNAMEで登録します。

※Akamaiで設定したcdnverifyレコードを編集し、レコード値を書き換えればOKです。


cdnverify.<custom domain hostname> -> CNAME -> cdnverify.<cdn backend hostname>


 その後、CDNエンドポイントでカスタムドメインの追加をし、カスタムHTTPSを有効にします。

 有効になるまで最大6~8時間かかるのでそれまで待機が必要です。

 問題なく有効にできると以下の画像のようになります。

TraffcManager

 TrafficManager用にCNAMEでレコード登録します。


<custom domain hostname> -> CNAME -> <trafficmanager dnsname>


レコードについて補足

① cdnverify
 AzureCDNにおける一時サブドメイン。AzureCDN上でカスタムドメインを構成するために用いられるもの。

② _acme-challenge ~ ak-acme-challenge.azureedge.net
 AkamaiCDNを使用している際に、自動ドメイン検証を実施するようにするレコード。これがあれば証明書の更新も自動で実施される。

TrafficManagerで負荷分散

 外部エンドポイントでAkamaiとVerizonを追加します。モニターの状態がオンラインになれば正常です。

 ちなみに構成設定は画像の通りです。

配信テスト

 適当に配信して、TrafficManagerから通信できているか確認します。

 MediaServiceのストリーミングエンドポイントのホスト名を、カスタムドメインの値に書き換えます。

 書き換えた後も配信ができていればOKです。

最後に

 プライマリ側で障害が起きた際はTrafficManagerで切り替わるので問題が無いんですが、セカンダリ側に動画が無かったりするので完全な冗長とは言えません。その辺は別途、うまいことやってあげる必要があります。

FIXER Inc. 多田 祐一朗

名古屋事業所所属のエンジニア。基盤インフラ経験が少しある。

[転載元]
 冗長性のある動画配信インフラをAzureで作る(TrafficManager→CDN→MediaService)

カテゴリートップへ