2022年、日本中を大きく沸かせたサッカー世界大会「FIFA ワールドカップ 2022」。全64試合を配信したABEMAを手掛けるAbemaTVによれば、期間中は1週間当たり最大で約3409万人のアクセスがあったという。しかし、ABEMAは大きな障害なく映像を配信し切り、SNSなどで注目を集めた。
大量のユーザーをさばききったシステムには、どんな工夫があったのか。AbemaTVの西尾亮太CTOが、4月20日から21日にかけて開催した、クラウドサービス「Amazon Web Services」に関する技術展示イベント「AWS Summit Tokyo」(幕張メッセ)で語った。
ABEMAがW杯の配信で使用したのは、AWSが提供するライブ配信向けサービス群「AWS media services」を使ったシステムだ。そもそもW杯の配信システムは、通常の番組やチケット購入者向け番組の配信に使っている「リニア配信システム」「PPV配信システム」とは別物。従来のシステムは録画・生配信を織り交ぜた番組編成が可能な代わりに、放送時間の延長・短縮に対応できないなどの問題があったという。
従来のシステムは、コーデックやプロトコルなど多くの要素を内製したことから、配信に関する規格の変化が起きると、対応に大きな手間がかかることも問題だった。そこでAWS media servicesを採用した新システムを開発。一般的な規格に広く対応するので変化に対応しやすいことや、クラウドゆえに「冗長性」(処理能力などをあえて冗長にし、有事に備える考え方)をコントロールしやすいとしてAWSの採用に至ったという。
実際、W杯の配信では冗長性確保に向け、いくつかの工夫を講じたと西尾CTO。例えばW杯は、試合を最大6つのカメラで配信しており、各カメラは2つのリージョン(地域)もしくはアベイラビリティゾーン(リージョン内の別地域)を使っていた。
リージョンというのは、クラウドサービスを提供するサーバがある地域のことだ。単一ではなく複数の地域のサービスを使えば、どこかでトラブルが起きても別の場所からサービスを使える。
アベイラビリティゾーン(AZ)はリージョンをさらに区切ったもので、どこかのAZでトラブルが起きても他のAZでサービスが使える。いずれも障害対策などに使われるが、複数の地域からサービスを使えばそれだけコストもかかるし、管理・運用の手間も増える。
W杯においては、メインカメラの配信のみ東京とソウルリージョンでそれぞれ2つのAZを活用。他は東京リージョン内のAZを2つ使った。AWSには大阪リージョンも存在するが、AWS media servicesが使えないためソウルリージョンを使わざるを得なかったという。
さらにCDN(コンテンツ・デリバリー・ネットワーク)も冗長化。CDNとは、ユーザーがWebサイトにアクセスした際に、Webサイトの手前に配置した複数の別サーバが、サーバ本体に代わってコンテンツを配信する技術のことだ。アクセスを分散できる他、通信経路を独自の配信ネットワークで最適化でき、常に大量のアクセスがあるECサイトやニュースサイトといったサービスで活用されている。
W杯においては、複数のCDNサービスを併用する「マルチCDN」を実践。AWSが提供するCDNサービスと、米Akamai Technologiesが提供するCDNサービスを活用。例えばメインカメラの映像は、(1)AWSのCDN(東京リージョン)、(2)AkamaiのCDN(東京リージョン)、(3)AWSのCDN(ソウルリージョン)、(4)AkamaiのCDN(ソウルリージョン)──と4つの接続先を用意して負荷を分散した。
どこかのCDNで問題が起きたときは、別リージョンの同一CDNに切り替えることで映像を配信し続けられる仕組みだ。同一リージョン内で切り替える仕組みも検討したが「CDNより、オリジナルのサーバの方が障害が起きる可能性が高いと判断した」という。
さらに、ユーザーのデバイスのスペックなどに応じ、フレームレートなどを切り替える仕組みも搭載した。画質重視で、どんなデバイスでも59.94pのフレームレートで出力する「STRIKER」、安定性重視で29.97pで出力する「DEFENDER」という2つの仕様を用意。事前にAbemaに対応する再生端末のスペックを調査し、その結果や本番中の再生状況に応じて振り分けた。
一連の施策の結果、障害の発生は64試合中1試合のみに抑えられたという。1件の障害も小規模で、早期にリカバリーできたとしている。
冗長化を始め、ライブ配信システムの設計に力を入れたというABEMA。一方で西尾CTOは「ライブ配信のトラブルは、だいたいライブ配信に起因していない」と強調。一連の仕組みを整えつつ、事前の予測やテストにもこだわったという。
W杯においては、キックオフのタイミングやハーフタイム、ゴールの瞬間などにトラフィックが増減すると予想し、それぞれ流入の予測を立てた。予想される最大の負荷をそのまま再現したようなテストも行ったという。
「結局のところ、トラフィックがどれくらい生まれるかを事前にどれだけ計算できるかが大事。ユーザーの行動をある程度先に予測しておくことも重要。突発的な変化を想定して試験を先にやっておくことが重要になる」(西尾CTO)
Copyright © ITmedia, Inc. All Rights Reserved.
Special
PR