「AP過去問 令和6年度秋期 午後 問4 システムアーキテクチャ」の版間の差分
編集の要約なし |
|||
6行目: | 6行目: | ||
== '''令和6年度秋期 午後 問4 システムアーキテクチャ(AIプロンプト向け)''' == | == '''令和6年度秋期 午後 問4 システムアーキテクチャ(AIプロンプト向け)''' == | ||
■データ処理機能の配置に関する次の記述を読んで、設問に答えよ。 | |||
C社は、動画配信サービスを提供する会社であり、サービス内容が充実していることが人気を呼び、動画配信者数や動画視聴者数が増えている。動画配信者は、Webブラウザを用いて、ビデオカメラやスマートフォンで撮影した動画ファイルをC社のWebサイトにアップロードすると、Webサイト上で動画の編集・配信、広報、アクセス分析などの機能が利用できる。 | |||
C社の動画配信サービスは、C社配信システム部が企画から運用までを担当している。配信システム部では、サービス内容の向上を目的に、動画編集機能を強化した動画配信者向けの新しいサービスを提供するシステム(以下、新システムという)を構築することにした。新システムの構築は、配信システム部のD君が担当することになった。 | |||
[新システムに必要な機能] | |||
D君は、現在の動画配信サービスの機能を基に、新システムに必要な動画配信者向け機能の機能要件を定義した。新システムに必要な機能一覧(抜粋)を表1に示す。 | |||
<div align="center">表1 新システムに必要な機能一覧(抜粋)</div> | |||
<table width="100%" border="2" style="border-collapse: collapse;border-style: solid"> | |||
<tr> | |||
<td align="center" style="border: 2px solid; width: 6em;">機能名</td> | |||
<td align="center" style="border: 2px solid;">機能概要</td> | |||
</tr> | |||
<tr> | |||
<td align="left" style="border: 2px solid;">アップロード</td> | |||
<td align="left" style="border: 2px solid;">動画配信者がビデオカメラやスマートフォンで撮影した動画をC社のWebサイトにアップロードして登録する機能</td> | |||
</tr> | |||
<tr> | |||
<td align="left" style="border: 2px solid;">動画編集</td> | |||
<td align="left" style="border: 2px solid;">C社のWebサイトに登録された動画を、Webブラウザを用いて編集する(カットする、結合する、BGM・テロップを挿入するなど)機能</td> | |||
</tr> | |||
<tr> | |||
<td align="left" style="border: 2px solid;">配信準備</td> | |||
<td align="left" style="border: 2px solid;">動画視聴者のネットワーク・環境に合わせた複数のビットレートの動画ファイルを作成する機能</td> | |||
<tr> | |||
<td align="left" style="border: 2px solid;">アクセス分析</td> | |||
<td align="left" style="border: 2px solid;">動画が動画視聴者に何回アクセスされているかを、複数の分析軸(地域、年齢層、端末種別、アクセス動線など)から分析する機能</td> | |||
</tr> | |||
</table> | |||
[新システムサーバ構成] | |||
D君は、新システムのサーバ構成を設計した。D君が設計した新システムのサーバ構成(抜粋)を図1に示す。また、SSDとHDDのアクセス速度を表2に、LANとインターネットの通信速度を表3に、各サーバのCPUとGPUの搭載数を表4に示す。なお、新システム内の負荷分散装置、サーバ、NASはLANで接続されている。 | |||
[[ファイル:APPMQ4 Fig1.png|400px|thumb|none|図1 新システムのサーバ構成(抜粋)]] | |||
<yjavascript> | |||
</script> | |||
<style> | |||
.table-container { | |||
display: inline-block; | |||
text-align: left; | |||
margin: 20px; | |||
} | |||
.table-header { | |||
display: flex; | |||
justify-content: space-between; | |||
margin-bottom: 5px; | |||
} | |||
</style> | |||
<div><div class="table-container"><div align="center">表2 SSDとHDDのアクセス速度</div> | |||
<table border="2" style="border-collapse: collapse;border-style: solid"> | |||
<tr> | |||
<td align="center" style="border: 2px solid; width: 3em;">装置</td> | |||
<td align="center" style="border: 2px solid; width: 8em;">読込速度</br>(Mバイト/秒)</td> | |||
<td align="center" style="border: 2px solid; width: 8em;">書込速度</br>(Mバイト/秒)</td> | |||
</tr> | |||
<tr> | |||
<td align="left" style="border: 2px solid;">SSD</td> | |||
<td align="right" style="border: 2px solid;">500</td> | |||
<td align="right" style="border: 2px solid;">400</td> | |||
</tr> | |||
<tr> | |||
<td align="left" style="border: 2px solid;">HDD</td> | |||
<td align="right" style="border: 2px solid;">250</td> | |||
<td align="right" style="border: 2px solid;">150</td> | |||
</tr> | |||
</table> | |||
</div> | |||
<div class="table-container"><div align="center">表3 LANとインターネットの通信速度</div> | |||
<table border="2" style="border-collapse: collapse;border-style: solid"> | |||
<tr> | |||
<td align="center" style="border: 2px solid; width: 8em;">回線</td> | |||
<td align="center" style="border: 2px solid; width: 8em;">通信速度</br>(G bps)</td> | |||
</tr> | |||
<tr> | |||
<td align="left" style="border: 2px solid;">LAN</td> | |||
<td align="right" style="border: 2px solid;">1</td> | |||
</tr> | |||
<tr> | |||
<td align="left" style="border: 2px solid;">インターネット</td> | |||
<td align="right" style="border: 2px solid;">10</td> | |||
</tr> | |||
</table> | |||
</div> | |||
</div> | |||
<script> | |||
</yjavascript> | |||
<div class="table-container"><div align="center">表4 各サーバのCPUとGPUの搭載数</div> | |||
<table border="2" style="border-collapse: collapse;border-style: solid"> | |||
<tr> | |||
<td align="center" style="border: 2px solid; width: 6em;">サーバ</td> | |||
<td align="center" style="border: 2px solid; width: 8em;">CPU</br>(コア)</td> | |||
<td align="center" style="border: 2px solid; width: 8em;">GPU</br>(個)</td> | |||
</tr> | |||
<tr> | |||
<td align="left" style="border: 2px solid;">APサーバ</td> | |||
<td align="right" style="border: 2px solid;">16</td> | |||
<td align="right" style="border: 2px solid;">0</td> | |||
</tr> | |||
<tr> | |||
<td align="left" style="border: 2px solid;">DBサーバ</td> | |||
<td align="right" style="border: 2px solid;">32</td> | |||
<td align="right" style="border: 2px solid;">0</td> | |||
</tr> | |||
<tr> | |||
<td align="left" style="border: 2px solid;">GPUサーバ</td> | |||
<td align="right" style="border: 2px solid;">4</td> | |||
<td align="right" style="border: 2px solid;">4</td> | |||
</tr> | |||
</table> | |||
</div> | |||
各サーバで計算を行うCPUやGPUで実行される演算は、①<u>整数演算</u>と浮動小数点演算の二つに分類される。新システムで利用するCPUは、1コア当たり整数演算が10,000G Operations/秒(以下、OPSという)、浮動小数点演算が500G Floating-point Operations/秒(以下、FLOPSという)で実行できる。また、GPUは1個当たり浮動小数点演算が10,000G FLOPSで実行できる。 | |||
この新システムを用いて、APサーバ1がAPサーバ1のSSDに格納された800Mバイトの動画ファイルをメモリに読み込む時間は [a] 秒である。また、DBサーバのDBMSはRDBである。 | |||
[配置の検討] | |||
D君は、新システムの各機能の中でデータ量や計算量が多い処理を抽出した。データ量や計算量が多い処理の一覧を表5に示す。なお、データ量には、各処理を実行するためにCPUやGPUにインプットされるデータ量と、CPUやGPUで計算した後にアウトプットされるデータ量とがある。 | |||
<div align="center">表5 データ量や計算量が多い処理の一覧</div> | |||
<table width="100%" border="2" style="border-collapse: collapse;border-style: solid"> | |||
<tr> | |||
<td align="center" rowspan="2" style="border: 2px solid; width: 3em;">機能名</td> | |||
<td align="center" rowspan="2" style="border: 2px solid; width: 6em;">処理名</td> | |||
<td align="center" rowspan="2" style="border: 2px solid;">処理方法</td> | |||
<td align="center" colspan="2" style="border: 2px solid;">データ量</td> | |||
<td align="center" colspan="2" style="border: 2px solid;">計算量</td> | |||
</tr> | |||
<tr> | |||
<td align="center" style="border: 2px solid; width: 6em;">インプット</br>(Mバイト)</td> | |||
<td align="center" style="border: 2px solid; width: 6em;">アウトプット</br>(Mバイト)</td> | |||
<td align="center" style="border: 2px solid; width: 4em;">整数</br>演算数</br>(GO)</td> | |||
<td align="center" style="border: 2px solid; width: 4em;">浮動小数</br>点演算数</br>(GFLO)</td> | |||
</tr> | |||
<tr> | |||
<td align="center" style="border: 2px solid;">動画</br>編集</td> | |||
<td align="left" style="border: 2px solid;">素材送信</td> | |||
<td align="left" style="border: 2px solid;">NASに格納されているBGM素材やテロップ素材を、NASからAPサーバへ送信し、APサーバから動画配信者のPCへ送信する。</td> | |||
<td align="right" valign="top" style="border: 2px solid;">50</td> | |||
<td align="right" valign="top" style="border: 2px solid;">50</td> | |||
<td align="right" valign="top" style="border: 2px solid;">10</td> | |||
<td align="right" valign="top" style="border: 2px solid;">0</td> | |||
</tr> | |||
<tr> | |||
<td align="center" style="border: 2px solid;">配信</br>準備</td> | |||
<td align="left" style="border: 2px solid;">レンダリング</td> | |||
<td align="left" style="border: 2px solid;">APサーバのメモリに格納されている動画データを基にBGM、テロップなどを合成して一つの動画データを作成する。</td> | |||
<td align="right" valign="top" style="border: 2px solid;">500</td> | |||
<td align="right" valign="top" style="border: 2px solid;">100</td> | |||
<td align="right" valign="top" style="border: 2px solid;">0</td> | |||
<td align="right" valign="top" style="border: 2px solid;">100,000</td> | |||
</tr> | |||
<tr> | |||
<td rowspan="2" align="center" style="border: 2px solid;">アクセス</br>分析</td> | |||
<td align="left" style="border: 2px solid;">オンラインユーザ数取得</td> | |||
<td align="left" style="border: 2px solid;">DBサーバに格納されている特定の動画を視聴しているオンラインユーザ数をリアルタイムに集計して表示する。</td> | |||
<td align="right" valign="top" style="border: 2px solid;">100</td> | |||
<td align="right" valign="top" style="border: 2px solid;">0.1</td> | |||
<td align="right" valign="top" style="border: 2px solid;">50</td> | |||
<td align="right" valign="top" style="border: 2px solid;">0</td> | |||
</tr> | |||
<tr> | |||
<td align="left" style="border: 2px solid;">多次元分析</td> | |||
<td align="left" style="border: 2px solid;">DBサーバに格納されている前日までの動画の視聴ログを複数の分析軸から分析する。</td> | |||
<td align="right" valign="top" style="border: 2px solid;">50,000</td> | |||
<td align="right" valign="top" style="border: 2px solid;">1</td> | |||
<td align="right" valign="top" style="border: 2px solid;">300</td> | |||
<td align="right" valign="top" style="border: 2px solid;">0</td> | |||
</tr> | |||
</table> | |||
<div>注記 GOはGiga Operationsを示し、GFLOはGiga Floating-point Operationsを示す。</div> | |||
レンダリング処理は、APサーバのCPUを4コア用いて処理する場合には [b] 秒掛かり、GPUサーバのGPUだけを1個用いて処理する場合には [c] 秒掛かる。ただし、GPUサーバを用いて処理する場合には、APサーバからGPUサーバへデータを送信するのに [d] 秒掛かり、APサーバへレンダリング結果を返信するのに [e] 秒掛かる。この検討結果から、APサーバよりもGPUサーバで処理した方がよい。 | |||
オンラインユーザ数取得処理について、D君は②<u>DBサーバで処理した結果をAPサーバへ送信する方法が最適と考え</u>、DBサーバで処理することにした。 | |||
素材送信処理は、同時に100名の動画配信者向けに素材データを送信しようとすると、LANの通信速度とHDDの読込速度が遅く送信に時間がかかる。しかし、図1のサーバ構成の変更には大きな費用が掛かることから、サーバ構成を変更せずに対応する方法を検討した。動画配信者のPCへ送信する素材データは特定の素材データに偏っており、各素材データの更新頻度も高くないことから、表5の③<u>素材送信処理の処理方法を変更</u>して対応することにした。 | |||
[動画配信者数増大への対応方針] | |||
D君は、将来的に動画配信者数が増大することを考慮して、新システムの拡張性について検討した。まず、表5のレンダリング処理は、動画データごとに処理が独立しており、GPUサーバを手動で追加する [f] の対応を行う方針にした。一方で、オンラインユーザ数取得処理は、時間とともに断続的に追記される動画の視聴ログをリアルタイムに集計する処理であり、DBサーバの数を増やせないことから、DBサーバを [g] して対応を行う方針にした。また、多次元分析処理は、④<u>そこで扱うデータの特徴</u>から、多次元分析処理専用のDBサーバを追加する方針にした。これによって多次元分析処理の負荷が他の処理へ影響しないようになる。 | |||
その後、D君は新システムの構築を完了させ、C社は新システムによる新しい動画配信者向けサービスの提供を開始した。 | |||
設問1 [新システムのサーバ構成]について答えよ。 | |||
(1) 本文中の下線①について、整数演算に該当する演算を回答群の中から全て選び、記号で答えよ。 | |||
回答群 | |||
ア 300+200-100 | |||
イ 300×200÷100 | |||
ウ 3.00+2.00-0.10 | |||
エ -300+(-200)-(-100) | |||
オ 300×0 | |||
カ 3.00×0 | |||
(2) 本文中の [a] に入れる適切な数値を答えよ。ここで、本文に記載の読込速度、書込速度を実効速度とし、他のオーバヘッドは無視できるものとする。なお、計算結果の小数が発生する場合、答えは小数第2位を四捨五入して小数第1位まで求めよ。 | |||
設問2 [配置の検討]について答えよ。ここで、図1のサーバ構成を一つの処理が占有でき、[新システムのサーバ構成]と表5に記載以外のオーバヘッドや並列処理に伴うオーバヘッドは無視できるものとする。 | |||
(1) 本文中の [b] ~ [d] に入れる適切な数値を整数で答えよ。 | |||
(2) 本文中の [e] に入れる適切な数値を答えよ。なお、計算結果に小数が発生する場合、答えは小数第2位を四捨五入して小数第1位まで求めよ。 | |||
(3) 本文中の下線②について、DBサーバで処理した結果をAPサーバへ送信する方法が最適と考えたのはなぜか。データ量の観点から35字以内で答えよ。 | |||
(4) 本文中の下線③について、素材送信処理の処理方法をどのように変更したか。変更点を30字以内で答えよ。 | |||
設問3 [動画配信者数増大への対応方針]について答えよ。 | |||
(1) 本文中の [f] 、[g] に入れる適切な字句を回答群の中から選び、記号で答えよ。 | |||
回答群 | |||
ア スケールアウト | |||
イ スケールアップ | |||
ウ スケールイン | |||
エ スケールダウン | |||
(2) 本文中の下線④について、オンラインユーザ数取得処理と対比して、多次元分析処理で扱うデータの特徴を20字以内で答えよ。 | |||
2024年12月17日 (火) 16:47時点における版
AP 過去問題 午後に戻る。
AP過去問_令和6年度秋期_午後_問3_プログラミングの同じ回の前の問題へ移動。
AP過去問_令和6年度秋期_午後_問5_ネットワークの同じ回の次の問題へ移動。
令和6年度秋期 午後 問4 システムアーキテクチャ(AIプロンプト向け)
■データ処理機能の配置に関する次の記述を読んで、設問に答えよ。
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 |
回線 | 通信速度 (G bps) |
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バイトの動画ファイルをメモリに読み込む時間は [a] 秒である。また、DBサーバのDBMSはRDBである。
[配置の検討]
D君は、新システムの各機能の中でデータ量や計算量が多い処理を抽出した。データ量や計算量が多い処理の一覧を表5に示す。なお、データ量には、各処理を実行するためにCPUやGPUにインプットされるデータ量と、CPUやGPUで計算した後にアウトプットされるデータ量とがある。
<table width="100%" border="2" style="border-collapse: collapse;border-style: solid"> <tr>
<td align="center" rowspan="2" style="border: 2px solid; width: 3em;">機能名</td> <td align="center" rowspan="2" style="border: 2px solid; width: 6em;">処理名</td> <td align="center" rowspan="2" style="border: 2px solid;">処理方法</td> <td align="center" colspan="2" style="border: 2px solid;">データ量</td> <td align="center" colspan="2" style="border: 2px solid;">計算量</td>
</tr> <tr>
<td align="center" style="border: 2px solid; width: 6em;">インプット</br>(Mバイト)</td> <td align="center" style="border: 2px solid; width: 6em;">アウトプット</br>(Mバイト)</td> <td align="center" style="border: 2px solid; width: 4em;">整数</br>演算数</br>(GO)</td> <td align="center" style="border: 2px solid; width: 4em;">浮動小数</br>点演算数</br>(GFLO)</td>
</tr> <tr>
<td align="center" style="border: 2px solid;">動画</br>編集</td> <td align="left" style="border: 2px solid;">素材送信</td> <td align="left" style="border: 2px solid;">NASに格納されているBGM素材やテロップ素材を、NASからAPサーバへ送信し、APサーバから動画配信者のPCへ送信する。</td> <td align="right" valign="top" style="border: 2px solid;">50</td> <td align="right" valign="top" style="border: 2px solid;">50</td> <td align="right" valign="top" style="border: 2px solid;">10</td> <td align="right" valign="top" style="border: 2px solid;">0</td>
</tr> <tr>
<td align="center" style="border: 2px solid;">配信</br>準備</td> <td align="left" style="border: 2px solid;">レンダリング</td> <td align="left" style="border: 2px solid;">APサーバのメモリに格納されている動画データを基にBGM、テロップなどを合成して一つの動画データを作成する。</td> <td align="right" valign="top" style="border: 2px solid;">500</td> <td align="right" valign="top" style="border: 2px solid;">100</td> <td align="right" valign="top" style="border: 2px solid;">0</td> <td align="right" valign="top" style="border: 2px solid;">100,000</td>
</tr> <tr>
<td rowspan="2" align="center" style="border: 2px solid;">アクセス</br>分析</td> <td align="left" style="border: 2px solid;">オンラインユーザ数取得</td> <td align="left" style="border: 2px solid;">DBサーバに格納されている特定の動画を視聴しているオンラインユーザ数をリアルタイムに集計して表示する。</td> <td align="right" valign="top" style="border: 2px solid;">100</td> <td align="right" valign="top" style="border: 2px solid;">0.1</td> <td align="right" valign="top" style="border: 2px solid;">50</td> <td align="right" valign="top" style="border: 2px solid;">0</td>
</tr> <tr>
<td align="left" style="border: 2px solid;">多次元分析</td> <td align="left" style="border: 2px solid;">DBサーバに格納されている前日までの動画の視聴ログを複数の分析軸から分析する。</td> <td align="right" valign="top" style="border: 2px solid;">50,000</td> <td align="right" valign="top" style="border: 2px solid;">1</td> <td align="right" valign="top" style="border: 2px solid;">300</td> <td align="right" valign="top" style="border: 2px solid;">0</td>
</tr> </table>
レンダリング処理は、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社は新システムによる新しい動画配信者向けサービスの提供を開始した。
設問1 [新システムのサーバ構成]について答えよ。
(1) 本文中の下線①について、整数演算に該当する演算を回答群の中から全て選び、記号で答えよ。
回答群
ア 300+200-100
イ 300×200÷100
ウ 3.00+2.00-0.10
エ -300+(-200)-(-100)
オ 300×0
カ 3.00×0
(2) 本文中の [a] に入れる適切な数値を答えよ。ここで、本文に記載の読込速度、書込速度を実効速度とし、他のオーバヘッドは無視できるものとする。なお、計算結果の小数が発生する場合、答えは小数第2位を四捨五入して小数第1位まで求めよ。
設問2 [配置の検討]について答えよ。ここで、図1のサーバ構成を一つの処理が占有でき、[新システムのサーバ構成]と表5に記載以外のオーバヘッドや並列処理に伴うオーバヘッドは無視できるものとする。
(1) 本文中の [b] ~ [d] に入れる適切な数値を整数で答えよ。
(2) 本文中の [e] に入れる適切な数値を答えよ。なお、計算結果に小数が発生する場合、答えは小数第2位を四捨五入して小数第1位まで求めよ。
(3) 本文中の下線②について、DBサーバで処理した結果をAPサーバへ送信する方法が最適と考えたのはなぜか。データ量の観点から35字以内で答えよ。
(4) 本文中の下線③について、素材送信処理の処理方法をどのように変更したか。変更点を30字以内で答えよ。
設問3 [動画配信者数増大への対応方針]について答えよ。
(1) 本文中の [f] 、[g] に入れる適切な字句を回答群の中から選び、記号で答えよ。
回答群
ア スケールアウト
イ スケールアップ
ウ スケールイン
エ スケールダウン
(2) 本文中の下線④について、オンラインユーザ数取得処理と対比して、多次元分析処理で扱うデータの特徴を20字以内で答えよ。
令和6年度秋期 午後 問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 |
回線 | 通信速度 (G bps) |
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バイトの動画ファイルをメモリに読み込む時間は a 秒である。また、DBサーバのDBMSはRDBである。
[配置の検討]
D君は、新システムの各機能の中でデータ量や計算量が多い処理を抽出した。データ量や計算量が多い処理の一覧を表5に示す。なお、データ量には、各処理を実行するためにCPUやGPUにインプットされるデータ量と、CPUやGPUで計算した後にアウトプットされるデータ量とがある。
機能名 | 処理名 | 処理方法 | データ量 | 計算量 | ||
インプット (Mバイト) |
アウトプット (Mバイト) |
整数 演算数 (GO) |
浮動小数 点演算数 (GFLO) |
|||
動画 編集 |
素材送信 | 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社は新システムによる新しい動画配信者向けサービスの提供を開始した。
設問1 [新システムのサーバ構成]について答えよ。
(1) 本文中の下線①について、整数演算に該当する演算を回答群の中から全て選び、記号で答えよ。
回答群
ア 300+200-100
イ 300×200÷100
ウ 3.00+2.00-0.10
エ -300+(-200)-(-100)
オ 300×0
カ 3.00×0
(2) 本文中の a に入れる適切な数値を答えよ。ここで、本文に記載の読込速度、書込速度を実効速度とし、他のオーバヘッドは無視できるものとする。なお、計算結果の小数が発生する場合、答えは小数第2位を四捨五入して小数第1位まで求めよ。
設問2 [配置の検討]について答えよ。ここで、図1のサーバ構成を一つの処理が占有でき、[新システムのサーバ構成]と表5に記載以外のオーバヘッドや並列処理に伴うオーバヘッドは無視できるものとする。
(1) 本文中の b ~ d に入れる適切な数値を整数で答えよ。
(2) 本文中の e に入れる適切な数値を答えよ。なお、計算結果に小数が発生する場合、答えは小数第2位を四捨五入して小数第1位まで求めよ。
(3) 本文中の下線②について、DBサーバで処理した結果をAPサーバへ送信する方法が最適と考えたのはなぜか。データ量の観点から35字以内で答えよ。
(4) 本文中の下線③について、素材送信処理の処理方法をどのように変更したか。変更点を30字以内で答えよ。
設問3 [動画配信者数増大への対応方針]について答えよ。
(1) 本文中の f 、g に入れる適切な字句を回答群の中から選び、記号で答えよ。
回答群
ア スケールアウト
イ スケールアップ
ウ スケールイン
エ スケールダウン
(2) 本文中の下線④について、オンラインユーザ数取得処理と対比して、多次元分析処理で扱うデータの特徴を20字以内で答えよ。
回答・解説
AP過去問_令和6年度秋期_午後_問3_プログラミングの同じ回の前の問題へ移動。
AP過去問_令和6年度秋期_午後_問5_ネットワークの同じ回の次の問題へ移動。
AP 過去問題 午後に戻る。