PD試験 システム

PD試験(仮称)システム区分 サンプル問2(無停止の切換え手順)の解説

プロフェッショナルデジタルスキル(システム)試験(仮称)の科目Bサンプル問2を、スマホで解いて確かめられます。ロードバランサーのグループ切換で無停止更新する手順を、時系列で追って空欄a・bを決める解き方と、選択肢ごとの根拠を解説します。

PD試験 システム

科目Bサンプル問題 問2

IPA 公表問題

先に設問を確認

設問 本文中の[ a ],[ b ]に入れる字句の組合せはどれか。解答群の中から最も適切なものを選べ。

設問と解答群へ移動

A 社は,取引先企業向け EC サイト(以下,A 社サイトという)をパブリッククラウドに構築中である。A 社サイトには,A 社と契約がある取引先企業がインターネットを経由してアクセスする予定である。

A 社サイトは,ロードバランサー,アプリケーションサーバ及びデータベースから構成されている。A 社サイトの構成を図に示す。アプリケーションサーバは複数の仮想マシンにインストールされ,ロードバランサーはアプリケーションサーバへのリクエストを分散させる。アプリケーションプログラムはステートレスとして設計され,セッションや取引のデータなどの保存にデータベースを用いる。

図1 A 社サイトの構成(当サイトで文章に書き換え)

  • A社取引先企業が,クラウド上の LB(ロードバランサー)に接続している。
  • LB の先に,AP(アプリケーションサーバ)が3台並列に接続されている。
  • 3台の AP は,いずれも DB(データベース)に接続されている。

A 社は,アプリケーションプログラムの軽微な変更を伴うバージョンアップ時に,A 社サイトを停止することなく,アプリケーションプログラムを既存のものから新しいバージョンのものに切り換える手順を検討している。アプリケーションプログラムの切換えに関する要件は次のとおりである。

〔アプリケーションプログラムの切換えに関する要件〕

  1. 1. 切換え作業中も A 社サイトが利用できること。
  2. 2. 一つのバージョンのアプリケーションプログラムだけがリクエストを受け付けること。

ロードバランサーに備わっているグループ切換機能を利用して,要件を満たすアプリケーションプログラムの切換手順を考える。グループ切換機能とはリクエストの転送先をグループ単位で切り換える機能で,指定した一つのグループに所属する仮想マシンだけにリクエストを転送することができる。グループ切換機能を使って,要件を満たすアプリケーションプログラムの切換えが実現できることを,次の手順で検証することにした。

〔検証の手順〕

  1. (1) グループ 1 とグループ 2 の二つのグループを作成する。
  2. (2) 仮想マシンを新たに起動し,検証用アプリケーションプログラム x をインストールする。
  3. (3) (2)で起動した仮想マシンを停止し,仮想マシンのイメージを作成する。
  4. (4) (3)で作成したイメージを基にした仮想マシンを複数起動する。
  5. (5) (4)で起動した仮想マシンをグループ 1 に所属させる。
  6. (6) リクエストの転送先にグループ 1 を指定する。
  7. (7) 負荷テストツールを使ってリクエストをロードバランサーに送信する。
  8. (8) 仮想マシンを新たに起動し,検証用アプリケーションプログラム y をインストールする。
  9. (9) (8)で起動した仮想マシンを停止し,仮想マシンのイメージを作成する。
  10. (10) (9)で作成したイメージを基にした仮想マシンを(4)と同じ台数だけ起動する。
  11. (11) (10)で起動した仮想マシンをグループ 2 に所属させる。
  12. (12) リクエストの転送先にグループ 2 を指定する。
  13. (13) グループ 1 に所属している仮想マシンを停止する。
  14. (14) (3)で作成したイメージを削除する。
  15. (15) 負荷テストツールの使用を停止する。
  16. (16) 検証用アプリケーションプログラム x と検証用アプリケーションプログラム y のログから手順が要件を満たすことを検証するため,負荷テストツールからの全てのリクエストに対して,正常にレスポンスを返却していること及び要件を満たすための条件の一つである[ a ]を確認した。

検証した手順で,アプリケーションプログラムを切換え可能であると確認できた。

追加要件として,切り換え後のアプリケーションプログラムに不具合があった場合速やかに切り戻せることが追加された。このため手順を修正し,再度検証することにした。(16)の後にグループ 1 に切り換えてログを確認する手順を追加し,再び負荷テストツールを使用する。また,切戻しの妨げになるので[ b ]の手順を削除することにした。

設問 本文中の[ a ],[ b ]に入れる字句の組合せはどれか。解答群の中から最も適切なものを選べ。

  • (一) アプリケーションプログラム x が最後にリクエストを受けた時刻が,アプリケーションプログラム y が最初にリクエストを受けた時刻より,早い時刻であること
  • (二) アプリケーションプログラム x が最後にレスポンスを返却した時刻が,アプリケーションプログラム y が最初にリクエストを受けた時刻より,早い時刻であること
  • (三) アプリケーションプログラム x が最後にレスポンスを返却した時刻が,アプリケーションプログラム y が最後にレスポンスを返却した時刻より,早い時刻であること
  • (四) (12)
  • (五) (13)
  • (六) (14)
解答群
答えと選択肢ごとの根拠を見る

正解:イ(a (一)/b (五)) IPA 公表の解答例による

  • ア × 誤り 切換えそのものを消してしまう

    a (一)/b (四)

    aは正しい。しかし(12)はグループ2(y)へ転送先を切り換える手順そのもので,これを消すと新しいバージョンに切り換わらない。切戻しを妨げているのは,切り換えたあとに旧バージョンの仮想マシンを止める(13)。

  • イ ○ 正しい

    a (一)/b (五)

    a:要件2は「一つのバージョンだけがリクエストを受け付けること」なので,ログで確かめるべきは「受け付けた時刻」が重なっていないこと。xの最後の受付がyの最初の受付より早ければ,同時に2つのバージョンが受け付けた時間はない。b:(13)でグループ1の仮想マシンを止めると,グループ1へ転送先を戻しても応答する仮想マシンがない。切り戻すには,起動し直す時間がかかる。

  • ウ × 誤り イメージがなければ切り戻せないと考えた

    a (一)/b (六)

    aは正しい。(14)で削除するのはxの仮想マシンのイメージだが,(13)を消してグループ1の仮想マシンを動かしたままにしておけば,イメージがなくてもグループ1へ転送先を戻すだけで切り戻せる。イメージの削除は,速やかな切戻しの妨げにはならない。

  • エ × 誤り 「受け付ける」と「レスポンスを返却する」の取り違え

    a (二)/b (四)

    要件2が求めるのは,リクエストを受け付けるバージョンが一つであること。転送先を切り換えた直後に,xが受付済みのリクエストのレスポンスを返している間にyが受付を始めても,要件には反しない。(二)が成り立たなくても要件2は満たされるので,要件2を守るのに必須の条件ではない。bの(12)も誤り。

  • オ × 誤り 「受け付ける」と「レスポンスを返却する」の取り違え

    a (二)/b (五)

    bは正しいが,aが違う。xがレスポンスを返し終える前にyが受付を始めても,受け付けているのはyだけなので要件2は満たされる。確かめるべきは受付の時刻。

  • カ × 誤り 「受け付ける」と「レスポンスを返却する」の取り違え

    a (二)/b (六)

    aは受付の時刻で確かめるべきで,レスポンスの返却時刻ではない。bの(14)(イメージの削除)は,仮想マシンが動いていれば切戻しの妨げにならない。

  • キ × 誤り 最後どうしの比較で重なりを判定できると考えた

    a (三)/b (四)

    (三)はxとyの「最後の返却」どうしを比べるだけで,xとyが同時にリクエストを受け付けた時間があったかどうかは分からない。bの(12)も,切換えそのものを消してしまう。

  • ク × 誤り 最後どうしの比較で重なりを判定できると考えた

    a (三)/b (五)

    bは正しいが,(三)では同時受付の有無を判定できない。負荷テストを止めるまでyが受け付け続けるので,xの最後の返却がyの最後の返却より早いのは当然で,要件の確認にならない。

  • ケ × 誤り 最後どうしの比較で重なりを判定できると考えた

    a (三)/b (六)

    (三)では同時受付の有無を判定できない。(14)のイメージの削除も,切戻しの妨げにはならない。

出典:プロフェッショナルデジタルスキル(システム)試験(仮称) 科目B サンプル問題 問2独立行政法人情報処理推進機構(IPA)(掲載)原文を開く(確認)図1を文章に書き換え,空欄の枠を[ ]で示しました。問題文・要件・手順・設問・解答群の文言は原文のままです。

この問題の誤りを報告
どこが違いますか

名前や連絡先は書かないでください。内容は訂正の確認にだけ使い、90日で削除します。

解説

この問題で問われていること:無停止で切り換える手順の検証

IPAは出題趣旨で、この問題を「ロードバランサーの機能を含むクラウド基盤の運用設計と,システムの信頼性・可用性を確保するための手順を検証する能力」を評価するものとしています。

題材は、いわゆるブルーグリーンデプロイメントです。旧バージョン(x)の仮想マシン群と新バージョン(y)の仮想マシン群を両方用意しておき、ロードバランサーの転送先を一度に切り換えます。ただし、問題文にこの用語は出てきません。用語を知らなくても、手順を時系列に並べれば解けるように作られています。

解き方:手順を「いつ、どちらが受け付けているか」の時系列にする

16の手順を全部読む前に、要件を2つ頭に入れておきます。

  1. 切換え作業中もサイトが使えること
  2. 一つのバージョンだけがリクエストを受け付けること

空欄aは「要件を満たすための条件の一つ」なので、要件2をログでどう確かめるかが問われています。空欄bは、あとから加わった「速やかに切り戻せること」を妨げる手順です。

手順を3つの区間に分ける

区間 手順 リクエストを受け付けているもの
準備と旧版の稼働 (1)〜(7) グループ1(x)だけ
新版の準備 (8)〜(11) グループ1(x)だけ。グループ2は起動しているが転送先ではない
切換えと後片付け (12)〜(15) (12)の瞬間から、グループ2(y)だけ

ロードバランサーのグループ切換機能は「指定した一つのグループに所属する仮想マシンだけにリクエストを転送する」ので、(12)の前後で受付がxからyへ一度に移ります。

空欄a:確かめるのは「受け付けた時刻」

要件2を満たしていることをログで示すには、xとyが同時にリクエストを受け付けていた時間がないことを確かめます。それを1つの不等式で書いたのが(一)で、xが最後にリクエストを受けた時刻が、yが最初にリクエストを受けた時刻より早いことを確かめます。

空欄b:切戻しに必要なのは「動いている旧版」

追加要件で、(16)のあとに「グループ 1 に切り換えてログを確認する」手順が加わります。ところが(13)でグループ1の仮想マシンを止めていると、転送先を戻しても応答する仮想マシンがありません。起動し直す時間がかかり、「速やかに」切り戻せません。消すべきは (13) です。

aが(一)、bが(五)で、答えはイです。

迷いやすい選択肢:(二)は要件より厳しすぎる

空欄aで最後まで残るのは(二)で、xが最後にレスポンスを返却した時刻と、yが最初にリクエストを受けた時刻を比べます。こちらのほうが厳密で安全に見えます。しかし、切り換えた瞬間にxがまだ処理中のリクエストを抱えていることは、ふつうにあります。そのレスポンスを返している間にyが受付を始めても、受け付けているのはyだけなので、要件2には反しません。(二)が成り立たなくても要件2は満たされるので、(二)は要件2を守るのに必須の条件ではありません。要件より厳しい条件を確かめても、「要件を満たすための条件」を確かめたことにはなりません。

空欄bでは、(14)のイメージの削除も切戻しの邪魔に見えます。ただ、削除されるのはxのイメージで、xの仮想マシンが動いていれば、イメージがなくても転送先を戻すだけで切り戻せます。(12)を消す選択肢は、切換えそのものを消してしまうので、yに切り換わりません。

時間をかけないコツ:16の手順を3区間にまとめる

解く時間の目安は6分ほどです(当サイトの推測)。手順の数が16と多いので、上の表のように「どの区間で、どちらが受け付けているか」だけをメモしてから設問に進むと、読み返しが減ります。

空欄aの(三)は、xとyの「最後の返却」どうしを比べるだけで、同時に受け付けた時間があったかどうかを判定できないので、すぐに外せます。残る(一)と(二)は、要件の動詞「受け付ける」と同じ動詞を使っている(一)を選びます。

本番の手順として読み直す:データベースと旧版の停止

この手順は検証用です。本番の切換え手順として見ると、試験では問われない点が2つ残ります。

1つめは、xとyが同じデータベースを使っていることです。本文に「軽微な変更を伴うバージョンアップ」とあるのは、データベースの構造を変えない前提だと読めます。テーブル定義が変わる更新では、切り戻したときにxが新しい構造のデータを読めるかどうかも、検証の項目に入れる必要があります。

2つめは、旧版をいつ止めるかです。(13)を消すと、グループ1の仮想マシンは動き続け、そのぶんのクラウドの費用がかかります。「切換え後、何時間(何日)問題がなければ旧版を止める」という基準を、手順とは別に決めておくことになります。

次に読む

参考にした資料

独立行政法人情報処理推進機構(IPA)(確認)