Amazon Web Services ブログ
フランスの放送局 TF1 が AWS のクラウドテクノロジーと専門知識を使って FIFA ワールドカップを何百万人もの視聴者に届けた方法
間違いなく放送史上最もスリリングな試合の 1 つであったワールドカップ決勝戦を何百万人もの視聴者が視聴した 3 年前、フランスの大手民間テレビ局である TF1 は、放送プラットフォームの基盤を再定義するためのプロジェクトを開始しました。これには、新しいクラウドベースアーキテクチャの導入が含まれていました。
TF1、そしてその他すべての放送局は、従来の地上波放送の視聴者数が減少し、スマート TV や FireTV、ChromeCast、AppleTV などのボックス、そしてノートパソコン、タブレット、携帯電話などのデジタルプラットフォームの人気が高まるのを目にしてきました。私が AWS French Podcast で最近インタビューした eTF1 (デジタルプラットフォームを担当する TF1 内のグループ) の CTO、Thierry Bonhomme 氏によると、デジタル放送は TF1 の全視聴者の 20~25 パーセントを占めるようになっています。
このオンラインおよびモバイルの利用は、IT システムで、試合が開始される数分前における接続と認証の大幅な急増と、変化するさまざまなネットワーク品質を通じて確実に配信する必要がある何百万もの動画ストリームという、きわめて特殊なトラフィックパターンを生み出します。これらの技術的な課題に加えて、国歌斉唱の前、または 15 分間のハーフタイムの間などの重要なタイミングで広告を配信するという経済的な課題もあります。デジタルプラットフォームは独自のコマーシャルの一連を販売しますが、これらは地上波放送のコマーシャルとは異なり、地域によっても異なる場合があります。これらすべての動画ストリームを、多種多様なデバイスを使用し、家庭内での 1 Gbs ファイバーから、遠隔地の 3 G ネットワークにおよぶさまざまなネットワーク状態にある何百万人もの視聴者に配信する必要があります。
準備を整えるための TF1 のアプローチには、デジタルアーキテクチャの再設計、新しいシステムのパフォーマンスを示すメトリクスの設定、およびチーム内のメンバーのプロセス、役割、責任の定義が含まれていました。この準備の一環として、AWS は TF1 がスケーラビリティ、パフォーマンス、およびセキュリティ要件を満たすようにシステムを準備するための支援を提供しました。
Bonhomme 氏は会話の中で、TF1 が放送の未来に向けた新たな技術アーキテクチャを設計したときに掲げていた 2 つの主な目標について説明しました。1 つ目はプラットフォームのスケーラビリティ、2 つ目はパフォーマンスの需要を満たすことです。スケーラビリティは、同時視聴者数のピーク時に対応するための鍵です。パフォーマンスは、動画ストリームがすばやく開始され (3 秒未満)、動画プレーヤーの中断 (リバッファリングと呼ばれます) が発生しないようにするために必要です。つまるところ、応援しているチームが得点したのを自分が見ているテレビ画面で見る前に、隣の家の叫び声を聞いて知りたいと思う人はいないのです。
テクノロジー
TF1 は 2019年に、そのデジタル放送アーキテクチャの再設計と、バックエンド API や、セットトップボックス、Android、または iOS デバイスで実行されているフロントエンドアプリケーションなどのコードの大幅な書き換えを開始しました。パフォーマンスを最大化するために、マイクロサービスアーキテクチャを採用し、Amazon Elastic Kubernetes Service (EKS) でデプロイして、Go プログラミング言語で記述しました。スケーラビリティを最大化するために、一連の REST および GraphQL API を設計してフロントエンドとバックエンドアプリケーション間のコントラクトを定義し、Apache Kafka を使用してイベント駆動のアーキテクチャを設計しました。動画ストリームをクライアントデバイスに確実に配信するために、Amazon CloudFront などの複数のコンテンツ配信ネットワークを導入しました。2020 年 8 月、TF1 は、バイエルン・ミュンヘン が 1 対 0 でパリ・サンジェルマンを破った大規模なスポーツイベント、UEFA 欧州チャンピオンズリーグで新しいプラットフォームを試す機会を得ました。
フィールドでアクションが撮影された瞬間から、視聴者がモバイルデバイスでそれを見る瞬間までの様子を見てみましょう。高品質の動画ストリームは、まずパリにある TF1 タワーに送られます。ここで、ハードウェアエンコーダがデバイスに適応する必要な動画ストリームを作成します。AWS Elemental Live ハードウェアエンコーダは、テレビ用の 4K、高解像度 (1080)、標準解像度 (720)、および幅広いモバイルデバイスとネットワーク帯域幅に適したさまざまな形式の異なるエンコーディングを最大 8 種類の生成できます。(この追加の動画エンコーディングステップは、従来のテレビで受信する動画と、モバイルデバイスで受信するフィードとの間に遅れが生じる理由の 1 つです。) このシステムは、エンコードされた動画をパッケージ化のために AWS Elemental Media Package に送信し、その後ようやく、プレーヤーアプリケーションが動画セグメントを取得する CDN に送信されます。プレーヤーアプリケーションは、デバイスのサイズと現在利用可能なネットワーク帯域幅に応じて、最適な動画エンコーディングを選択します。
フランスのキリアン エムバペ選手がワールドカップ決勝戦で 1966 年以来初のハットトリック (3 ゴールを決めること) を達成した年の 1 年前である 2021 年の年末に、TF1 は、過去の経験と改善が必要な分野に基づいてリスクを特定することで、このビッグイベントのための準備を開始しました。Bonhomme 氏は、TF1 が異なるシナリオに基づいて考えられる視聴者数の仮説を立てた方法について説明しました。フランス代表チームが大会で勝ち進むほど、予想されるトラフィックも増加するからです。TF1 は、トーナメントの各フェーズ (セレクションプール、準々決勝、準決勝、および決勝) のリスクを分類しました。これらのシナリオに基づいて、プラットフォームは、試合開始の 15 分前にプラットフォームに接続する 450 万人の視聴者 (これは、毎秒 5,000 人の新規視聴者に相当します) を維持できる必要があると判断しました。
このレベルのスケーラビリティには、TF1 のチームによる準備だけでなく、AWS クラウドサービス、認証および承認サービス、そして CDN サービスなどの、使用されるすべての外部システムによる準備も必要になります。
視聴者の接続により、複数のフローと API 呼び出しがトリガーされます。視聴者は認証する必要があり、新しいアカウントを作成したり、パスワードをリセットしたりする必要がある視聴者もいます。認証が完了すると視聴者にホームページが表示され、次に複数の API 呼び出しがトリガーされます。そのうちの 1 つは、カタログサービスへの呼び出しです。視聴者がライブストリームを選択すると、動画ストリーム URL を受け取るための他の API 呼び出しが行われます。この後で、動画関連の部分が開始されます。クライアント側のプレーヤーが選択された CDN に接続し、動画セグメントのダウンロードを開始します。動画が再生されたら、プラットフォームはストリームがスムーズかつ高品質に配信され、リバッファリングの原因となるドロップが発生しないようにする必要があります。これらすべての要素が、可能な限り最高の視聴者エクスペリエンスを確保するための鍵となります。
準備
フランスが決勝に進出してアルゼンチンと対戦する 6 か月前、TF1 は、要件を定義し、容量を確保して、テスト計画と実行計画の実施に取り掛かるために、AWS を含めたベンダーとの密接な協力を開始しました。この時点で、TF1 は AWS エンタープライズサポートプランの専用プログラムである AWSインフラストラクチャイベント管理と連携しました。AWS の専門家は、ショッピングホリデー、製品のローンチ、移行などの計画されたイベントの準備と実行時に、アーキテクチャ、ガイダンス、および運用面でのサポートを提供します。今回の場合は、世界最大のサッカーイベントです。これらのイベントにおいて、AWS はお客様が運用準備状況を評価し、リスクの特定と緩和を行って、AWS の専門家とともに自信を持って実行するための支援を提供します。
API のスケーラビリティのテストには、特別な注意が払われました。TF1 チームは、プラットフォームへのユーザー接続、認証、プログラムの選択、および動画ストリームの開始をシミュレートするための負荷テストエンジンを開発しました。実際のトラフィックを忠実にシミュレートするため、TF1 は別のハイパースケールクラウドプロバイダーを使用して、その AWS インフラストラクチャにリクエストを送信しました。このテストは、ダッシュボードで観察する適切なメトリクスと、アラームを生成する適切な値を定義することを可能にしました。Bonhomme 氏は、負荷シミュレータを初めてフルスピードで実行し、毎秒 5,000 件の新しい接続をシミュレートしたときに、バックエンドの全体がクラッシュしたと話しました。
しかし、他の世界一流チームと同様に、TF1 もこの経験を有効に利用しました。TF1 は、2~3 週間かけてシステムをチューニングしました。クライアントアプリケーションからの冗長な API 呼び出しを排除し、積極的なキャッシュ戦略を適用しました。このようなトラフィックに応じてバックエンドプラットフォームをスケーリングする方法を学びました。また、負荷がかかっているときの主なメトリクスの値を見極めることも学びました。数回におよぶバックエンドのデプロイと、Android アプリと iOS アプリの新たなリリース後、TF1 のシステムは負荷テストに合格しました。これは、イベント開始の 1 か月前でした。TF1 はこのとき、重大なバグが見つからない限り、カタールでの最初のキックオフまでは新しい開発やデプロイをすべて停止することにしました。
監視と計画
Bonhomme 氏は、技術的なプラットフォームはプロジェクトの一部に過ぎないと語りました。TF1 は、イベント中に重要業績評価指標を監視し、異常を検出するために、Datadog と Grafana を使用したメトリクスダッシュボードも設計しました。Bonhomme 氏は、平均値を観察するときは、部分的な箇所を見逃してしまいがちであると指摘しました。例えば、平均値ではなく、P95 パーセンタイル値を観察することで、ユーザーの 5% のエクスペリエンスがわかると Bonhomme 氏は話しました。300 万人のユーザーがいる場合、5% は 15 万人のお客様に相当するため、その 5% のエクスペリエンスを知ることが重要です。(ちなみに、このパーセンタイル手法は Amazon と AWS のすべてのサービスチーム全体で日常的に使用されており、Amazon CloudWatch にはパーセンタイル値を測定するためのサポートが組み込まれています。)
TF1 は、最悪の事態にも備えました。これには、試合中に 300 万人の人々が真っ黒になった画面を見つめるという恐ろしい状態が含まれます。TF1 は、早い段階でコミュニティマネージャーとソーシャルメディア所有者の関与を求め、複数のシナリオのためのプレスリリースとソーシャルメディアメッセージを準備しました。チームは、緊急対応が必要となった場合におけるコミュニケーションと応答時間を削減するために、各試合中は重要なチームメンバー全員を「ウォールーム」に集めることも計画しました。このチームには、AWS のテクニカルアカウントマネージャーと、認証サービスおよびその他 CDN ベンダーからの同等のマネージャーが含まれていました。AWS には、AWS のサービスの正常性を監視し、異常が発生した場合はすぐさま対応できる、サービスチームとプレミアムサポートチームからのオンコールエンジニアもいました。
フィールド外でも発生した攻撃
開会式、最初の試合、そして特に TF1 の視聴者にとってはフランスチームの最初の試合といったトーナメント開始時の 3 つの重要なタイミングは、プラットフォームを実際に試す機会を提供しました。その後数週間にわたるトーナメントの進行に伴い (フランスチームが勝ち進むに従って、緊張感、スリル、IT システムへの負荷も高まっていました)、TF1 チームは各試合後にトラフィックの見積もりを再評価し、報告会を行いました。フィールド上で激しいアクションが繰り広げられる中、TF1 のチームも舞台裏で独自の興奮感を味わいました。
準々決勝が始まってから、チームは幅広い分散型 IP アドレスからの異常なアクティビティに気付きました。チームは、システムが不正侵入されたマシンのネットワークからの大規模な分散型サービス拒否 (DDOS) 攻撃を受けていると判断しました。誰かがサービスをダウンさせて、何百万人もの人が視聴できないようにしようとしていたのです。TF1 はこのタイプの攻撃に慣れており、ダッシュボードはトラフィックパターンのリアルタイムでの特定に役立ちました。AWS Shield および AWS ウェブアプリケーションファイアウォールなどのサービスは、視聴者エクスペリエンスに悪影響をおよぼすことなくインシデントを緩和するために役立ちました。TF1 のセキュリティチームと AWS の専門家は、次の試合に向けていくつかのトラフィックパターンと IP アドレスを事前にブロックするために、さらなる分析を実施しました。
それでもなお、準決勝と決勝戦の間に攻撃はさらに激しくなり、10 分間で最高 4,000 万件のリクエストに達しました。「これらの攻撃はいたちごっこです」と Bonhomme 氏は言っています。攻撃者が新しい戦略を試し、新しいパターンを適用する一方で、ウォールームのチームはそれらを検出し、フィルタリングルールを動的に更新して、視聴者がサービスの質の変化に気付く前に攻撃をブロックします。長く、綿密な準備が功を奏し、誰もが何をすべきか知っていました。攻撃は、何の悪影響を生じることなく正常に緩和されたと Bonhomme 氏は報告しました。
スリリングなフィナーレ
2022 年 12 月 18 日にフランスがピッチに上がる頃には、TF1 はこのプラットフォームで新記録が達成されることを認識していました。トラフィックは予想よりも多かったものの、プラットフォームはそれに対応できたと Bonhomme 氏は話しました。Bonhomme 氏はまた、TF1 チームはアルゼンチンがリードしていた試合の前半で接続が徐々に減少しているのを観測したが、それも試合終了の 10 分前にムバペが最初のゴールを決めるまでだったと説明しました。このとき、すべてのダッシュボードが、試合のスリル満点な最後の瞬間のために視聴者が突然戻ってきたことを示していました。ピーク時には、320 万台を超えるデジタルプレーヤーが同時に接続され、4つの CDN すべてを通じて毎秒 3.6 テラビットの発信帯域幅を提供していました。
また、Amazon CloudFront は世界中 18 局の放送局による動画ストリームの配信も支援しました。トーナメント期間中は、合計で 4,800 万を超えるユニーククライアント IP が 450 か所を超える世界中のエッジロケーションのいずれかに接続し、トーナメントの決勝戦では、これらの顧客分布全体で毎秒 23 テラビット弱まで増加しました。
未来
最終的にはアルゼンチンが勝利を収め、リオネル メッシが念願のワールドカップ優勝を果たしましたが、2022 年の FIFA ワールドカップは、TF1 のプロセス、アーキテクチャ、そして実装が、何百万人もの人々に高品質の視聴エクスペリエンスを提供できることを TF1 のチームに証明しました。チームは今、このプラットフォームが次に予定されている大規模イベントである 2023 年 9 月のラグビーワールドカップと、2027 年の次期フランス大統領選挙にいつでも対応できるという自信を持っています。Bonhomme 氏は会話の締めくくりとして、いずれはデジタル放送が地上波放送よりも多くの視聴者を獲得し、300 万人を超える同時視聴者数が新たな常識になると予想しました。
皆さんの会社でもクラウドコンピューティングの力を利用してビジネスを変革させることを検討しているという場合は、今すぐ AWS エンタープライズサポートアドバイザーにご相談ください。
原文はこちらです。