令和4年度 春期 応用情報技術者試験 午後 問4 名刺管理サービスのクラウド移行におけるサービス選定とコスト性能評価

学習ガイド

オンプレミス環境で運用していた名刺管理システムをクラウドへ移行する構成設計を扱います。IaaS・PaaS・FaaSの特徴に応じた役割分担や利用料金の比較試算、FaaS運用時のレスポンス遅延対策が主な論点です。表1の要件と表2の制約から処理ごとの最適なサービスを見極め、表3のパラメータを使って台数とコストを算定します。終盤の遅延トラブルは、FaaSの実行環境の維持条件に注目して回避策を読み解きましょう。

この記事で押さえる論点

  • IaaS・PaaS・FaaSの運用保守範囲の違いと運用コスト低減の理由を説明できる
  • バッチ処理の実行時間制約など非機能要件に応じた適切なクラウドサービスの選定理由を述べられる
  • リクエスト数や処理時間からPaaSとFaaSの稼働台数および利用料金を算定できる
  • FaaSで発生するコールドスタートによる遅延原因と定期呼出しによる回避策を説明できる

問題本文

問4 クラウドサービスの活用に関する次の記述を読んで,設問1〜4に答えよ。

J社は,自社のデータセンタからインターネットを介して名刺管理サービスを提供している。このたび,運用コストの削減を目的として,クラウドサービスの活用を検討することにした。

〔非機能要件の確認〕

クラウドサービス活用後も従来のサービスレベルを満たすことを基本方針として,その非機能要件のうち性能・拡張性の要件について表1のとおり整理した。

表1 性能・拡張性の要件(抜粋)
図の説明テキスト

表1 性能・拡張性の要件(抜粋)

中項目 小項目 メトリクス(指標)
業務処理量 通常時の業務量 オンライン処理
・名刺登録処理 1,000 件/時間, データ送受信量 5M バイト/トランザクション
・名刺参照処理 4,000 件/時間, データ送受信量 2M バイト/トランザクション
バッチ処理
・BI ツール連携処理 1 件/日
業務処理量 業務量増大度 オンライン処理数増大率
・1年の増大率 2.0 倍
性能目標値 オンラインレスポンス ・名刺登録処理 10 秒以内,遵守率 90%
・名刺参照処理 3 秒以内,遵守率 95%
性能目標値 バッチレスポンス ・BI ツール連携処理 30 分以内
注記 BI : Business Intelligence

〔クラウドサービスの概要〕

クラウドサービスの一覧を表2に示す。

表2 クラウドサービスの一覧
図の説明テキスト

表2 クラウドサービスの一覧

サービス 特徴 料金及び制約
FW インターネットからの不正アクセスを防ぐことを目的として,インターネットと内部ネットワークとの間に設置する。 ・料金
1台当たり 50円/時間
ストレージ HTML,CSS,スクリプトファイルなどの静的コンテンツ,アプリケーションプログラム(以下,アプリケーションという)で利用するファイルなどを保存,送受信する。 ・料金(次の合計額)
1Gバイトの保存 10円/月
1Gバイトのデータ送信 10円/月
1Gバイトのデータ受信 10円/月
IaaS OS,ミドルウェア,プログラム言語,開発フレームワークなどを自由に選択できる。設定も自由に変更できるので,実行時間の長いバッチ処理なども可能である。ただし,OSやミドルウェアのメンテナンスをサービス利用者側が実施する必要がある。 ・料金
1台当たり 200円/時間
PaaS OS,ミドルウェア,プログラム言語,開発フレームワークはクラウドサービス側が提供する。サービス利用者は開発したアプリケーションをその実行環境に配置して利用する。配置されたアプリケーションは常時稼働し,リクエストを待ち受ける。事前の設定が必要だが,トランザクションの急激な増加に応じて,a できる。 ・料金
1台当たり 200円/時間
・制約
1 トランザクションの最大実行時間は 10分
FaaS PaaS 同様,アプリケーション実行環境をサービスとして提供する。PaaS では,受信したリクエストを解析してから処理を実行し,結果をレスポンスとして出力するところまで開発する必要があるのに対して,FaaS では,実行したい処理の部分だけをプログラム中で b として実装すればよい。また,a は事前の設定が不要である。 ・料金(次の合計額)
1時間当たり 10万リクエストまで 0円,次の 10万リクエストごとに 20円
CPU 使用時間 1ミリ秒ごとに 0.02円
・制約
1 トランザクションの最大実行時間は 10分。20 分間一度も実行されない場合,応答が 10秒以上掛かる場合がある。
CDN ストレージ,IaaS,PaaS 又は FaaS からのコンテンツをインターネットに配信する。ストレージからの静的コンテンツは,一度読み込むと,更新されるまで c して再利用される。 ・料金(次の合計額)
1万リクエストまで 0円,次の 1万リクエストごとに 10円
1Gバイトのデータ送信 20円/月

注記 FW : ファイアウォール
CDN : Content Delivery Network

〔システム構成の検討〕

現在運用中のサービスは,OSやミドルウェアがPaaSやFaaSの実行環境のものよりも1世代古いバージョンである。アプリケーションに改修を加えずに,そのままのOSやミドルウェアを利用する場合,利用するクラウドサービスはIaaSとなる。

しかし,①運用コストを抑えるためにオンライン処理はPaaS又はFaaSを利用することを検討する。PaaS又はFaaSでのアプリケーションは,WebAPIとして実装する。そのWebAPIは,ストレージに保存されたスクリプトファイルがdとFWを介してWebブラウザへ配信され,実行されて呼び出される。

バッチ処理については,登録データ量が増加した場合,②PaaSやFaaSを利用することには問題があることから,IaaSを利用することにした。

検討したシステム構成案を図1に示す。

図1 システム構成案
図の説明テキスト

図1 システム構成案
「Webブラウザ」は「インターネット」に接続されている。
「インターネット」からは「FW」および「CDN」へ接続されている。
「FW」の内側には内部ネットワークが走っており、「バッチ処理 (IaaS)」、「オンライン処理 (PaaS 又は FaaS)」、および「ストレージ」が接続されている。
「CDN」は「ストレージ」にも接続されている。

〔PaaSとFaaSとのクラウドサービス利用料金の比較〕

アプリケーションの実行環境として,PaaS又はFaaSのどちらのサービスを採用した方が利用料金が低いか,通常時の業務量の場合に掛かる料金を算出して比較する。クラウドサービス利用料金の試算に必要な情報を表3に整理した。

表3 クラウドサービス利用料金の試算に必要な情報
図の説明テキスト

表3 クラウドサービス利用料金の試算に必要な情報

項目 情報
PaaS 1台当たりの処理能力 性能目標値を満たす1時間当たりの処理件数
・名刺登録処理 200 件/台
・名刺参照処理 500 件/台
FaaS でオンライン処理を実行する場合の CPU 使用時間 ・名刺登録処理 50 ミリ秒/件
・名刺参照処理 10 ミリ秒/件

PaaSの場合,通常時の業務量から,オンライン処理で必要な最小必要台数を求めると,名刺登録処理では5台,名刺参照処理ではe台となる。したがって,1時間当たりの費用はf円と試算できる。

FaaSの場合,通常時の業務量から1時間当たりのリクエスト数とCPU使用時間を求め,1時間当たりの費用を試算すると,その費用はg円となる。

試算結果を比較した結果,FaaSを採用した。

〔オンラインレスポンスの課題と対策〕

クラウドサービスを活用したシステムの運用が始まるとすぐに,早朝や深夜にシステムを利用した際,はじめの画面は表示されるが名刺登録や名刺参照を実行すると,データが表示されるまでに10秒以上の時間を要することがある,との課題が報告された。クラウドサービスで提供されている各サービスのログを確認したところ,hの制約が原因であることが判明した。そこで,採用したクラウドサービスを別のものには変更せずに,③ある回避策を施したことで,課題を解消することができた。

設問と解答・解説

設問1

表2中のa〜cに入れる適切な字句を答えよ。

(1)配点 2点

aに入れる適切な字句を答えよ。

模範解答

スケールアウト

採点基準

知識・理解度(内容)1点
  • 1点: クラウドサービスにおけるサーバ拡張方式として「スケールアウト」という用語を正しく解答している。
  • 0点: 用語が誤っている、または解答がない。
論理性(構造)1点
  • 1点: 文脈に適合する適切な表現となっている。
  • 0点: 文脈に合わない不適切な表現である。

解説

【正解】 スケールアウト

表2「クラウドサービスの一覧」におけるPaaSの特徴として、「トランザクションの急激な増加に応じて、a できる。」と記載されています。
クラウド環境において、トランザクションや負荷の増加に合わせてサーバの台数を増やすことでシステム全体の処理能力を向上させる手法を スケールアウト と呼びます。PaaSは事前の設定により、負荷に応じて自動的にスケールアウト(およびスケールイン)を行う機能を提供しています。

高得点のポイント

  • 知識・理解度(内容): サーバリソースの拡張方式である「スケールアウト」という用語を正しく理解していること。
  • 論理性(構造): 文脈に沿って適切な用語を選択できていること。
(2)配点 2点

bに入れる適切な字句を答えよ。

模範解答

関数

採点基準

知識・理解度(内容)1点
  • 1点: FaaSの実装単位として「関数」という用語を正しく解答している。
  • 0点: 用語が誤っている、または解答がない。
論理性(構造)1点
  • 1点: 文脈に適合する適切な表現となっている。
  • 0点: 文脈に合わない不適切な表現である。

解説

【正解】 関数

表2におけるFaaS(Function as a Service)の特徴として、「実行したい処理の部分だけをプログラム中で b として実装すればよい」と記載されています。
PaaSではリクエストの受信から結果のレスポンス出力までアプリケーション全体を開発して配置する必要がありますが、FaaSでは特定のイベントをトリガーとして実行される単一の 関数(Function)として処理を実装します。これにより、インフラやサーバの管理を意識せずにコードの実行のみに集中できます。

高得点のポイント

  • 知識・理解度(内容): FaaSの名称の由来でもあり、実装の基本単位である「関数」という用語を正しく理解していること。
  • 論理性(構造): 文脈に沿って適切な用語を選択できていること。
(3)配点 2点

cに入れる適切な字句を答えよ。

模範解答

キャッシュ

採点基準

知識・理解度(内容)1点
  • 1点: CDNのコンテンツ再利用の仕組みである「キャッシュ」という用語を正しく解答している。
  • 0点: 用語が誤っている、または解答がない。
論理性(構造)1点
  • 1点: 文脈に適合する適切な表現となっている。
  • 0点: 文脈に合わない不適切な表現である。

解説

【正解】 キャッシュ

表2におけるCDN(Content Delivery Network)の特徴に、「ストレージからの静的コンテンツは,一度読み込むと,更新されるまで c して再利用される。」と記載されています。
CDNは、オリジンサーバ(この場合はストレージ)にあるコンテンツを自身の配信サーバ内に一時的に保存しておき、次回以降のアクセス時にはその保存したデータを返すことで応答速度の向上とサーバ負荷の軽減を図ります。この一時的に保存する仕組みやデータを キャッシュ と呼びます。

高得点のポイント

  • 知識・理解度(内容): CDNにおいてコンテンツを一時保存・再利用する仕組みである「キャッシュ」という用語を正しく理解していること。
  • 論理性(構造): 文脈に沿って適切な用語を選択できていること。

設問1のaは,正答率が低かった。PaaSの特徴の一つに,トランザクションの負荷に応じてサーバリソースをスケールアウト及びスケールインできることが挙げられる。問題文中に示された条件を過不足なく読み取り,正答を導き出してほしい。

設問2

〔システム構成の検討〕について,(1)〜(3)に答えよ。

(1)配点 2点

本文中の下線①について,IaaSと比較して運用コストを抑えられるのはなぜか。40字以内で述べよ。

模範解答

PaaSやFaaSでは,OSやミドルウェアのメンテナンスが不要だから

採点基準

知識・理解度(内容)1点
  • 1点: PaaSやFaaSではOSやミドルウェアのメンテナンスが不要であることを正しく指摘している。
  • 0点: メンテナンスに関する言及がない、あるいは内容が誤っている。
論理性(構造)1点
  • 1点: 運用コストが抑えられる理由として、因果関係が明確な文脈で記述できている。
  • 0点: 理由としての論理が破綻している、または因果関係が不明瞭である。

解説

【正解】 PaaSやFaaSでは,OSやミドルウェアのメンテナンスが不要だから

〔システム構成の検討〕において運用コストを抑える理由を問われています。表2「クラウドサービスの一覧」に記載されている各サービスの特徴を比較します。

  • IaaS: 「OSやミドルウェアのメンテナンスをサービス利用者側が実施する必要がある。」
  • PaaS: 「OS,ミドルウェア,プログラム言語,開発フレームワークはクラウドサービス側が提供する。」
  • FaaS: 「PaaS 同様,アプリケーション実行環境をサービスとして提供する。」

IaaSでは利用者がOSやミドルウェアの管理・更新等のメンテナンスを行う必要があり、その分の運用コストがかかります。一方でPaaSやFaaSを利用する場合は、それらの実行環境をクラウド事業者が提供・管理するため、利用者側でのメンテナンス作業が不要となります。これが運用コストを抑えられる理由です。

高得点のポイント

  • 知識・理解度(内容): IaaSとPaaS/FaaSの違いとして、OSやミドルウェアの提供者・管理責任の範囲の違いを正確に理解できていること。
  • 論理性(構造): コスト削減の理由として、メンテナンスの手間(作業)が不要になるという因果関係を論理的に記述できていること。
(2)配点 2点

本文中のdに入れる適切な字句を,表2中のサービスの中から答えよ。

模範解答

CDN

採点基準

正確性(内容)2点
  • 2点: 表2中のサービスから「CDN」(「cdn」など大文字小文字の違いを含む)と正確に解答している。
  • 1点: 正答に近いが、一部の字句が誤っている、または欠けている。
  • 0点: 不正解、または解答がない。

解説

【正解】 CDN

〔システム構成の検討〕の本文には、「ストレージに保存されたスクリプトファイルが d と FW を介して Web ブラウザへ配信され」と記載されています。
この記述を図1「システム構成案」と照らし合わせます。Webブラウザ(インターネット側)から内部への接続経路上において、インターネットと直接つながっており、かつストレージ上のコンテンツを配信する役割を持つ機器やサービスを探します。
図1を見ると、インターネットから内部へは FW と CDN が配置されており、CDNはストレージとも接続されています。また、表2におけるCDNの特徴にも「ストレージからの静的コンテンツは...再利用される」とあり、役割が一致します。
したがって、d に当てはまるサービスは「CDN」です。

(3)配点 2点

本文中の下線②にある問題とは何か。30字以内で述べよ。

模範解答

バッチ実行時間が上限の10分を超えてしまう問題

採点基準

知識・理解度(内容)1点
  • 1点: PaaS/FaaSの制約である「実行時間の上限(10分)」について正しく指摘している。
  • 0点: 実行時間に関する制約の理解が不足している、または言及がない。
論理性(構造)1点
  • 1点: データ量増加に伴って処理時間が上限を超過するという問題点を、論理的かつ簡潔にまとめられている。
  • 0点: 論理が飛躍している、または問題点が不明瞭である。

解説

【正解】 バッチ実行時間が上限の10分を超えてしまう問題

〔システム構成の検討〕において、下線②「PaaSやFaaSを利用することには問題があること」の直前に「バッチ処理については,登録データ量が増加した場合」という条件が提示されています。
表2「クラウドサービスの一覧」でPaaSおよびFaaSの「制約」欄を確認すると、どちらも 「1トランザクションの最大実行時間は 10分」 と定められています。
バッチ処理は一般に処理時間が長くなる傾向があり、データ量が増加すると処理時間が10分を超過してしまう可能性が高くなります。10分を超えると制約により処理が強制終了されてしまうため、正常にバッチ処理を完了できないという問題が発生します。したがって、実行時間に制限のないIaaSを選択することになります。

高得点のポイント

  • 知識・理解度(内容): PaaSおよびFaaSの制約である「最大実行時間(10分)」の制限を正確に把握していること。
  • 論理性(構造): データ量増加に伴い、処理時間が制約の上限を超えてしまうという問題のメカニズムを論理的に記述できていること。

設問3

本文中のe〜gに入れる適切な数値を答えよ。

(1)配点 1点

eに入れる適切な数値を答えよ。

模範解答

8

解説

【正解】 8

PaaSを利用して名刺参照処理を行う場合に必要な最小台数を算出します。

  1. 通常時の業務量の確認
    表1「性能・拡張性の要件」より、オンライン処理における通常時の業務量は、名刺参照処理が 4,000 件/時間 です。

  2. 1台当たりの処理能力の確認
    表3「クラウドサービス利用料金の試算に必要な情報」より、PaaS 1台当たりの処理能力は、名刺参照処理が 500 件/台(1時間当たり)です。

  3. 最小必要台数の計算
    必要な最小台数は、全体の業務量を1台当たりの処理能力で割ることで求められます。
    4000 件/時間÷500 件/台=8 台 4000 \text{ 件/時間} \div 500 \text{ 件/台} = 8 \text{ 台}

したがって、空欄 e に入る数値は 8 となります。

(2)配点 1点

fに入れる適切な数値を答えよ。

模範解答

2600

解説

【正解】 2,600

PaaSを利用した場合の、通常時の業務量における1時間当たりの費用を試算します。

  1. 必要なPaaSの総台数の算出
    〔PaaSとFaaSとのクラウドサービス利用料金の比較〕の本文より、最小必要台数は以下の通りです。

    • 名刺登録処理: 5 台
    • 名刺参照処理: 8 台(設問 e で求めた値)
      したがって、必要な総台数は 5+8=13 台5 + 8 = 13 \text{ 台} となります。
  2. 1時間当たりの費用の計算
    表2「クラウドサービスの一覧」より、PaaSの料金は 1台当たり 200円/時間 です。
    よって、1時間当たりの費用は総台数に単価を掛けて求めます。
    13 台×200 円/時間=2600 円 13 \text{ 台} \times 200 \text{ 円/時間} = 2600 \text{ 円}

したがって、空欄 f に入る数値は 2,600 となります。

(3)配点 1点

gに入れる適切な数値を答えよ。

模範解答

1800

解説

【正解】 1,800

FaaSを利用した場合の、通常時の業務量における1時間当たりの費用を試算します。
表2より、FaaSの料金は「リクエスト数に基づく料金」と「CPU使用時間に基づく料金」の合計額です。

  1. リクエスト数に基づく料金
    表1より、オンライン処理の1時間当たりのリクエスト数は、名刺登録処理が 1,000件、名刺参照処理が 4,000件であり、合計 5,000件 です。
    表2の制約に「1時間当たり 10万リクエストまで 0円」とあるため、5,000リクエストの場合は 0円 となります。

  2. CPU使用時間に基づく料金
    表3より、1件あたりのCPU使用時間を用いて1時間当たりの総CPU使用時間を計算します。

    • 名刺登録処理: 1000 件×50 ミリ秒/件=50000 ミリ秒1000 \text{ 件} \times 50 \text{ ミリ秒/件} = 50000 \text{ ミリ秒}
    • 名刺参照処理: 4000 件×10 ミリ秒/件=40000 ミリ秒4000 \text{ 件} \times 10 \text{ ミリ秒/件} = 40000 \text{ ミリ秒}
      総CPU使用時間は 50000+40000=90000 ミリ秒50000 + 40000 = 90000 \text{ ミリ秒} です。
      表2より、料金は「CPU使用時間 1ミリ秒ごとに 0.02円」であるため、以下のように計算します。
      90000 ミリ秒×0.02 円/ミリ秒=1800 円 90000 \text{ ミリ秒} \times 0.02 \text{ 円/ミリ秒} = 1800 \text{ 円}

これらの合計費用は 0+1800=18000 + 1800 = 1800 円となります。したがって、空欄 g に入る数値は 1,800 です。

設問4

〔オンラインレスポンスの課題と対策〕について,(1),(2)に答えよ。

(1)配点 3点

本文中のhに入れる適切な字句を,表2中のサービスの中から答えよ。

模範解答

FaaS

採点基準

正確性(内容)3点
  • 3点: 表2中のサービスから「FaaS」(「faas」など大文字小文字の違いを含む)と正確に解答している。
  • 1点: 正答に近いが、一部の字句が誤っている、または欠けている。
  • 0点: 不正解、または解答がない。

解説

【正解】 FaaS

〔オンラインレスポンスの課題と対策〕において、「早朝や深夜にシステムを利用した際、はじめの画面は表示されるが名刺登録や名刺参照を実行すると、データが表示されるまでに10秒以上の時間を要することがある」という課題が報告されています。
この事象の原因として該当する制約を、表2「クラウドサービスの一覧」から探します。
FaaSの「制約」欄には、「20分間一度も実行されない場合,応答が 10秒以上掛かる場合がある。」 と明記されています。
早朝や深夜はシステムが利用される頻度が低下し、トランザクションが20分以上発生しない状態になりやすいため、この制約に引っかかり応答に時間がかかっています。したがって、原因となったサービスは FaaS です。

(2)配点 2点

本文中の下線③の回避策とは何か。40字以内で述べよ。

模範解答

20分未満の間隔でFaaS上のアプリケーションを定期的に呼び出す。

採点基準

知識・理解度(内容)1点
  • 1点: FaaSの制約を回避するために、実行間隔を「20分未満」に保つ必要があることを正確に記述している。
  • 0点: 実行間隔の条件が「20分未満」となっていない、または記載がない。
論理性(構造)1点
  • 1点: アプリケーションを定期的に呼び出す(実行する)という具体的な回避策を論理的に説明できている。
  • 0点: 解決策としての論理が不明瞭である、または行動が具体的に示されていない。

解説

解説

設問4(1)で確認した通り、課題の原因はFaaSの制約である「20分間一度も実行されない場合,応答が10秒以上掛かる場合がある」ことです。
クラウドサービスを変更せずにこの課題を回避するためには、FaaS上のアプリケーションが20分間一度も実行されない状態を確実に防ぐ必要があります。
「20分間一度も実行されない場合」に遅延が発生するため、「20分以内」や「20分ごと」ではちょうど20分が経過して制約に抵触する恐れがあり、間隔は「20分未満」でなければなりません。
したがって、利用者からのリクエストがない時間帯であっても、20分未満の間隔でFaaS上のアプリケーションを定期的に呼び出す仕組みを導入することが適切な回避策となります。

高得点のポイント

  • 制約条件を確実に回避するため、実行間隔を「20分以内」ではなく「20分未満」と正確に記述すること。
  • アプリケーションを定期的に呼び出す(実行する)という具体的な行動を明記すること。

設問4(2)は,正答率が低かった。オンラインレスポンスの課題の原因である,FaaSの制約を回避するためには,トランザクションの実行間隔を制御する必要がある。その間隔の値を誤った解答が散見された。問題が発生する境界値を正確に把握することは,システムを設計する上で重要であることを理解してほしい。

Spineチーム