2024年 秋期 応用情報技術者試験 問4
データ処理機能の配置
C社は、動画配信サービスを提供する会社であり、サービス内容が充実していることが人気を呼び、動画配信者数や動画視聴者数が増えている。動画配信者は、Webブラウザを用いて、ビデオカメラやスマートフォンで撮影した動画ファイルをC社のWebサイトにアップロードすると、Webサイト上で動画の編集・配信、広報、アクセス分析などの機能が利用できる。
C社の動画配信サービスは、C社配信システム部が企画から運用までを担当している。配信システム部では、サービス内容の向上を目的に、動画編集機能を強化した動画配信者向けの新しいサービスを提供するシステム(以下、新システムという)を構築することにした。新システムの構築は、配信システム部のD君が担当することになった。
新システムに必要な機能
D君は、現在の動画配信サービスの機能を基に、新システムに必要な動画配信者向け機能の機能要件を定義した。新システムに必要な機能一覧(抜粋)を表1に示す。
機能名 | 機能概要 |
---|---|
アップロード | 動画配信者がビデオカメラやスマートフォンで撮影した動画をC社のWebサイトにアップロードして登録する機能 |
動画編集 | C社のWebサイトに登録された動画を、Webブラウザを用いて編集する(カットする、結合する、BGM・テロップを挿入するなど)機能 |
配信準備 | 動画視聴者のネットワーク環境に合わせた複数のビットレートの動画ファイルを作成する機能 |
アクセス分析 | 動画が動画視聴者に何回アクセスされているかを、複数の分析軸(地域、日時、年齢層、端末種別、アクセス動線など)から分析する機能 |
新システムのサーバ構成
D君は、新システムのサーバ構成を設計した。D君が設計した新システムのサーバ構成(抜粋)を図1に示す。また、SSDとHDDのアクセス速度を表2に、LANとインターネットの通信速度を表3に、各サーバのCPUとGPUの搭載数を表4に示す。なお、新システム内の負荷分散装置、サーバ、NASはLANで接続されている。
記録 | 読込速度 (Mバイト/秒) | 書込速度 (Mバイト/秒) |
---|---|---|
SSD | 500 | 400 |
HDD | 250 | 150 |
回線 | 通信速度 (Gbps) |
---|---|
LAN | 1 |
インターネット | 10 |
サーバ | CPU (コア) | GPU (個) |
---|---|---|
APサーバ | 16 | 0 |
DBサーバ | 32 | 0 |
GPUサーバ | 4 | 4 |
各サーバで計算を行うCPUやGPUで実行される演算は、①整数演算と浮動小数点演算の二つに分類される。新システムで利用するCPUは、1コア当たり整数演算が10,000G Operations/秒(以下、OPSという)、浮動小数点演算が500G Floating-point Operations/秒(以下、FLOPSという)で実行できる。また、GPUは1個当たり浮動小数点演算が10,000G FLOPSで実行できる。
この新システムを用いて、APサーバ1がAPサーバ1のSSDに格納された800MバイトのMPEGファイルをメモリに読み込む時間はa秒である。また、DBサーバのDBMSはRDBである。
配置の検討
D君は、新システムの各機能の中でデータ量や計算量が多い処理を抽出した。データ量や計算量が多い処理の一覧を表5に示す。なお、データ量には、各処理を実行するためにCPUやGPUにインプットされるデータ量と、CPUやGPUで計算した後にアウトプットされるデータ量とがある。
機器名 | 処理名 | 処理方法 | データ量 | 計算量 | ||
---|---|---|---|---|---|---|
インプット (Mバイト) | アウトプット (Mバイト) | 整数 演算数 (GO) | 浮動小数 点演算数 (GFLOPS) | |||
動画編集 | 素材送信 | NASに格納されているBGM素材やテロップ素材を、NASからAPサーバへ送信し、APサーバから動画配信者のPCへ送信する。 | 50 | 50 | 10 | 0 |
配信準備 | レンダリング | APサーバのメモリに格納された動画データを基にBGM、テロップなどを合成してひとつの動画データを作成する。 | 500 | 100 | 0 | 100,000 |
アクセス分析 | オンラインユーザ数数取得 | DBサーバに格納されている特定の動画を視聴しているオンラインユーザ数をリアルタイムに集計して表示する。 | 100 | 0.1 | 50 | 0 |
多次元分析処理 | DBサーバに格納されている前日までの動画の視聴ログを複数の分析軸から分析する。 | 50,000 | 1 | 300 | 0 |
レンダリング処理は、APサーバのCPUを4コア用いて処理する場合にはb秒掛かり、GPUサーバのGPUだけを1個用いて処理する場合にはc秒掛かる。ただし、GPUサーバを用いて処理する場合には、APサーバからGPUサーバへデータを送信するのにd秒掛かり、APサーバへレンダリング結果を返信するのにe秒掛かる。この検討結果から、APサーバよりもGPUサーバで処理した方がよい。
オンラインユーザ数取得処理について、D君は②DBサーバで処理した結果をAPサーバへ送信する方法が最適と考え、DBサーバで処理することにした。
素材送信処理は、同時に100名の動画配信者向けに素材データを送信しようとすると、LANの通信速度とHDDの読込速度が遅く送信に時間が掛かる。しかし、図1のサーバ構成の変更には大きな費用が掛かることから、サーバ構成を変更せずに対応する方法を検討した。動画配信者のPCへ送信する素材データは特定の素材データに偏っており、各素材データの更新頻度も高くないことから、表5の③素材送信処理の処理方法を変更して対応することにした。
動画配信者数増大への対応方針
D君は、将来的に動画配信者数が増大することを考慮して、新システムの拡張性について検討した。まず、表5のレンダリング処理は、動画データごとに処理が独立しており、GPUサーバを手動で追加するfの対応を行う方針にした。一方で、オンラインユーザ数取得処理は、時間とともに断続的に追記される動画の視聴ログをリアルタイムに集計する処理であり、DBサーバの数を増やせないことから、DBサーバをgして対応を行う方針にした。また、多次元分析処理は、④そこで扱うデータの特徴から、多次元分析処理専用のDBサーバを追加する方針にした。これによって多次元分析処理の負荷が他の処理へ影響しないようになる。
その後、D君は新システムの構築を完了させ、C社は新システムによる新しい動画配信者向けサービスの提供を開始した。