応用情報技術者過去問題 令和4年春期 午後問4
⇄問題文と設問を画面2分割で開く⇱問題PDF問4 システムアーキテクチャ
クラウドサービスの活用に関する次の記述を読んで,設問1~4に答えよ。
J社は,自社のデータセンタからインターネットを介して名刺管理サービスを提供している。このたび,運用コストの削減を目的として,クラウドサービスの活用を検討することにした。
〔非機能要件の確認〕
クラウドサービス活用後も従来のサービスレベルを満たすことを基本方針として,その非機能要件のうち性能・拡張性の要件について表1のとおり整理した。〔クラウドサービスの概要〕
クラウドサービスの一覧を表2に示す。〔システム構成の検討〕
現在運用中のサービスは,OSやミドルウェアがPaaSやFaaSの実行環境のものよりも1世代古いバージョンである。アプリケーションに改修を加えずに,そのままのOSやミドルウェアを利用する場合,利用するクラウドサービスはIaaSとなる。
しかし,①運用コストを抑えるためにオンライン処理はPaaS又はFaaSを利用することを検討する。PaaS又はFaaSでのアプリケーションは,WebAPIとして実装する。そのWebAPIは,ストレージに保存されたスクリプトファイルがdとFWを介してWebブラウザへ配信され,実行されて呼び出される。
バッチ処理については,登録データ量が増加した場合,②PaaSやFaaSを利用することには問題があることから,IaaSを利用することにした。
検討したシステム構成案を図1に示す。〔PaaSとFaaSとのクラウドサービス利用料金の比較〕
アプリケーションの実行環境として,PaaS又はFaaSのどちらのサービスを採用した方が利用料金が低いか,通常時の業務量の場合に掛かる料金を算出して比較する。クラウドサービス利用料金の試算に必要な情報を表3に整理した。 PaaSの場合,通常時の業務量から,オンライン処理で必要な最小必要台数を求めると,名刺登録処理では5台,名刺参照処理ではe台となる。したがって,1時間当たりの費用はf円と試算できる。
FaaSの場合,通常時の業務量から1時間当たりのリクエスト数とCPU使用時間を求め,1時間当たりの費用を試算すると,その費用はg円となる。
試算結果を比較した結果,FaaSを採用した。
〔オンラインレスポンスの課題と対策〕
クラウドサービスを活用したシステムの運用が始まるとすぐに,早朝や深夜にシステムを利用した際,はじめの画面は表示されるが名刺登録や名刺参照を実行すると,データが表示されるまでに10秒以上の時間を要することがある,との課題が報告された。クラウドサービスで提供されている各サービスのログを確認したところ,hの制約が原因であることが判明した。そこで,採用したクラウドサービスを別のものには変更せずに,③ある回避策を施したことで,課題を解消することができた。
J社は,自社のデータセンタからインターネットを介して名刺管理サービスを提供している。このたび,運用コストの削減を目的として,クラウドサービスの活用を検討することにした。
〔非機能要件の確認〕
クラウドサービス活用後も従来のサービスレベルを満たすことを基本方針として,その非機能要件のうち性能・拡張性の要件について表1のとおり整理した。〔クラウドサービスの概要〕
クラウドサービスの一覧を表2に示す。〔システム構成の検討〕
現在運用中のサービスは,OSやミドルウェアがPaaSやFaaSの実行環境のものよりも1世代古いバージョンである。アプリケーションに改修を加えずに,そのままのOSやミドルウェアを利用する場合,利用するクラウドサービスはIaaSとなる。
しかし,①運用コストを抑えるためにオンライン処理はPaaS又はFaaSを利用することを検討する。PaaS又はFaaSでのアプリケーションは,WebAPIとして実装する。そのWebAPIは,ストレージに保存されたスクリプトファイルがdとFWを介してWebブラウザへ配信され,実行されて呼び出される。
バッチ処理については,登録データ量が増加した場合,②PaaSやFaaSを利用することには問題があることから,IaaSを利用することにした。
検討したシステム構成案を図1に示す。〔PaaSとFaaSとのクラウドサービス利用料金の比較〕
アプリケーションの実行環境として,PaaS又はFaaSのどちらのサービスを採用した方が利用料金が低いか,通常時の業務量の場合に掛かる料金を算出して比較する。クラウドサービス利用料金の試算に必要な情報を表3に整理した。 PaaSの場合,通常時の業務量から,オンライン処理で必要な最小必要台数を求めると,名刺登録処理では5台,名刺参照処理ではe台となる。したがって,1時間当たりの費用はf円と試算できる。
FaaSの場合,通常時の業務量から1時間当たりのリクエスト数とCPU使用時間を求め,1時間当たりの費用を試算すると,その費用はg円となる。
試算結果を比較した結果,FaaSを採用した。
〔オンラインレスポンスの課題と対策〕
クラウドサービスを活用したシステムの運用が始まるとすぐに,早朝や深夜にシステムを利用した際,はじめの画面は表示されるが名刺登録や名刺参照を実行すると,データが表示されるまでに10秒以上の時間を要することがある,との課題が報告された。クラウドサービスで提供されている各サービスのログを確認したところ,hの制約が原因であることが判明した。そこで,採用したクラウドサービスを別のものには変更せずに,③ある回避策を施したことで,課題を解消することができた。
設問1
表2中のa~cに入れる適切な字句を答えよ。
解答入力欄
- a:
- b:
- c:
解答例・解答の要点
- a:スケールアウト
- b:関数
- c:キャッシュ
解説
〔aについて〕
問題文には「トランザクションの急激な増加に応じて,aできる」と記載されています。
空欄には、トランザクションの急激な増加でCPUやメモリなどのリソースが不足した際に、サーバの処理能力(スケール)を向上させる方法を入れるのが適切です。クラウドサービスではシステムリソースが仮想化されており、必要に応じてサーバの台数を増やしたり減らしたりといったことが可能です。サーバ台数を増やして分散処理を行うことで、システム全体の処理性能を高めるアプローチを「スケールアウト」といいます。したがって、[a]には「スケールアウト」が当てはまります。
∴a=スケールアウト
〔bについて〕
問題文には「FaaSでは,実行したい処理の部分だけをプログラム中でbとして実装すればよい」と記載されています。
FaaS(Function as a Service:ファース)とは、アプリケーション開発に必要な関数をクラウドのサーバ上で実行できるサービスです。その名のとおり、実現したい機能を関数(Function)として実装してアップロードしておけば、指定したイベントをトリガーとして、関数を実行してくれます。PaaSと比較すると、サービス利用者側でプラットフォームを管理する必要がない(サーバレス)、イベントドリブン、自動スケーリングなどの特徴があります。したがって、[b]には「関数」が当てはまります。
∴b=関数
〔cについて〕
問題文には「ストレージからの静的コンテンツは,一度読み込むと,更新されるまでcして再利用される」と記載されています。
一度読み込んだ内容を再利用するために一時的に保持しておくデータのことを「キャッシュ」と言います。同じコンテンツが呼び出された時に、毎回オリジンサーバから読み込むのではなく、CDN上のキャッシュの内容を返すことで、表示スピードを上げることができます。したがって、[c]には「キャッシュ」が当てはまります。
∴c=キャッシュ
問題文には「トランザクションの急激な増加に応じて,aできる」と記載されています。
空欄には、トランザクションの急激な増加でCPUやメモリなどのリソースが不足した際に、サーバの処理能力(スケール)を向上させる方法を入れるのが適切です。クラウドサービスではシステムリソースが仮想化されており、必要に応じてサーバの台数を増やしたり減らしたりといったことが可能です。サーバ台数を増やして分散処理を行うことで、システム全体の処理性能を高めるアプローチを「スケールアウト」といいます。したがって、[a]には「スケールアウト」が当てはまります。
∴a=スケールアウト
〔bについて〕
問題文には「FaaSでは,実行したい処理の部分だけをプログラム中でbとして実装すればよい」と記載されています。
FaaS(Function as a Service:ファース)とは、アプリケーション開発に必要な関数をクラウドのサーバ上で実行できるサービスです。その名のとおり、実現したい機能を関数(Function)として実装してアップロードしておけば、指定したイベントをトリガーとして、関数を実行してくれます。PaaSと比較すると、サービス利用者側でプラットフォームを管理する必要がない(サーバレス)、イベントドリブン、自動スケーリングなどの特徴があります。したがって、[b]には「関数」が当てはまります。
∴b=関数
〔cについて〕
問題文には「ストレージからの静的コンテンツは,一度読み込むと,更新されるまでcして再利用される」と記載されています。
一度読み込んだ内容を再利用するために一時的に保持しておくデータのことを「キャッシュ」と言います。同じコンテンツが呼び出された時に、毎回オリジンサーバから読み込むのではなく、CDN上のキャッシュの内容を返すことで、表示スピードを上げることができます。したがって、[c]には「キャッシュ」が当てはまります。
∴c=キャッシュ
設問2
〔システム構成の検討〕について,(1)~(3)に答えよ。
解答入力欄
- d:
解答例・解答の要点
- PaaSやFaaSでは,OSやミドルウェアのメンテナンスが不要だから (34文字)
- d:CDN
- バッチ実行時間が上限の10分を超えてしまう問題 (23文字)
解説
- IaaSの場合、自由度は高いものの、表2中に記載があるように「OSやミドルウェアのメンテナンスをサービス利用者側が実施する必要がある」ため、その分の運用コストが掛かります。一方、PaaSやFaaSの場合、OSやミドルウェアの管理はクラウドベンダが責任を負って実施します。したがって、運用コストを抑えることができるのです。
したがって、PaaSやFaaSをIaaSと比較したときに運用コストが抑えられるのは「PaaSやFaaSでは、OSやミドルウェアのメンテナンスが不要だから」となります。
∴PaaSやFaaSでは,OSやミドルウェアのメンテナンスが不要だから - 〔dについて〕
問題文には「そのWebAPIは,ストレージに保存されたスクリプトファイルがdとFWを介してWebブラウザへ配信され,実行されて呼び出される」と記載されています。
「表2中のサービスの中から」という条件があるので表2を見ると、CDNの説明に「ストレージ,IaaS,PaaS又はFaaSからのコンテンツをインターネットに配信する」とあります。この記述から、ストレージから読みだされたファイルはCDNにキャッシュされ、CDNのキャッシュコンテンツがFWを介してユーザのWebブラウザに配信されることがわかります。CDN(Content Delivery Network)は、Webコンテンツを効率よく配信するために最適化された仕組みです。したがって、答えは「CDN」となります。
∴d=CDN - 問題文には「バッチ処理については,登録データ量が増加した場合,PaaSやFaaSを利用することには問題があることから、IaaSを利用することにした」と記載されています。
まずは、問題文の中からバッチ処理やPaaS・FaaSについての記述を探し、何が問題なのかを考えます。表1の性能目標値のバッチレスポンスの欄に「BIツール連携処理 30分以内」と記載されています。また、表2のPaaS・FaaSの説明には、制約として「1トランザクションの最大実行時間は10分」と記載されています。
バッチ処理の時間は最長30分まで延びる可能性がありますが、PaaS・FaaSの実行時間の上限は10分なので、登録データ量が増えてバッチ処理時間が10分を超えてしまった場合には、PaaS・FaaSで処理しきれなくなってしまう問題があることがわかります。
∴バッチ実行時間が上限の10分を超えてしまう問題
設問3
本文中のe~gに入れる適切な数値を答えよ。
解答入力欄
- e:
- f:
- g:
解答例・解答の要点
- e:8
- f:2,600
- g:1,800
解説
〔eについて〕
表1より、オンライン処理の通常時の業務量は次のとおりです。
∴e=8
〔fについて〕
表2のPaaSの説明より、1台当たりの料金は1時間当たり200円であることがわかります。
上記の[e]で求めたとおり必要な最小台数は合計13台なので、1時間当たりの費用は次の式で求められます。
200[円/時間]×13[台]=2,600[円]
したがって、[f]には「2,600」が入ります。
∴f=2,600
〔gについて〕
表2のFaaSの説明には「1時間当たり10万リクエストまで0円、次の10万リクエストごとに20円」、「CPU使用時間1ミリ秒ごとに0.02円」と記載されています。今回は1時間当たりの処理件数が合計5,000件なので、1つ目のリクエスト数に対する課金は0円です。表3の「FaaSでオンライン処理を実行する場合のCPU使用時間」より、FaaSの費用を求める式は次のようになります。
∴g=1,800
表1より、オンライン処理の通常時の業務量は次のとおりです。
- 名刺登録処理 1,000件/時間
- 名刺参照処理 4,000件/時間
- 名刺登録処理
- 1,000[件/時間]÷200[件/時間]=5[台]
- 名刺参照処理
- 4,000[件/時間]÷500[件/時間]=8[台]
∴e=8
〔fについて〕
表2のPaaSの説明より、1台当たりの料金は1時間当たり200円であることがわかります。
上記の[e]で求めたとおり必要な最小台数は合計13台なので、1時間当たりの費用は次の式で求められます。
200[円/時間]×13[台]=2,600[円]
したがって、[f]には「2,600」が入ります。
∴f=2,600
〔gについて〕
表2のFaaSの説明には「1時間当たり10万リクエストまで0円、次の10万リクエストごとに20円」、「CPU使用時間1ミリ秒ごとに0.02円」と記載されています。今回は1時間当たりの処理件数が合計5,000件なので、1つ目のリクエスト数に対する課金は0円です。表3の「FaaSでオンライン処理を実行する場合のCPU使用時間」より、FaaSの費用を求める式は次のようになります。
- 名刺登録処理
- 50[ミリ秒]×1,000[件]×0.02[円]=1,000[円]
- 名刺参照処理
- 10[ミリ秒]×4,000[件]×0.02[円]=800[円]
∴g=1,800
設問4
〔オンラインレスポンスの課題と対策〕について,(1),(2)に答えよ。
- 本文中のhに入れる適切な字句を,表2中のサービスの中から答えよ。
- 本文中の下線③の回避策とは何か。40字以内で述べよ。
解答入力欄
- h:
解答例・解答の要点
- h:FaaS
- 20分未満の間隔でFaaS上のアプリケーションを定期的に呼び出す (32文字)
解説
- 〔hについて〕
今回の課題である「早朝や深夜にシステムを利用した際,データが表示されるまでに10秒以上の時間が掛かってしまう」に関係すると思われる制約を、問題文の中から探します。
表2のFaaSの説明の中に、「20分間一度も実行されない場合,応答が10秒以上掛かる場合がある」という記述があります。早朝や深夜はシステム利用者が少ないため、20分間一度も実行されず、応答に時間が掛かってしまうと考えられます。したがって、[h]には「FaaS」が当てはまります。
∴h=FaaS - 応答が10秒以上掛かる問題は、20分間一度も実行されないときに発生するのですから、それを防ぐための策が必要となります。単純に、20分未満の間隔で定期的にトランザクションを実行させておけば、今回の課題は回避できると考えられます。一般的にはcronなどのプログラムに定期実行を登録しておくことになります。したがって、答えは「20分未満の間隔でFaaS上のアプリケーションを定期的に呼び出す」です。
∴20分未満の間隔でFaaS上のアプリケーションを定期的に呼び出す