LinuCレベル4 システムアーキテクト システムアーキテクチャ 問9
システムアーキテクチャ/柔軟性を高めるアーキテクチャパターンFaaS(いわゆるサーバーレス)の採用を検討している。FaaSの特性や採用判断に関する説明として適切でないものはどれか。
当サイトのオリジナル問題(LinuCレベル4 システムアーキテクトの出題範囲「システムアーキテクチャ」に対応。実際の試験問題ではありません)
- A処理がイベントの発生時にだけ起動されるため、発生頻度が低く不定期な処理では常時稼働のサーバーより費用を抑えやすい
- Bしばらく呼び出しがないと実行環境が解放され、次の呼び出しで起動待ち(コールドスタート)の遅延が生じることがある
- C関数の実行環境は呼び出しごとに使い回される保証がないため、状態はデータベースなど外部のサービスに保存する
- D実行時間の上限や起動の遅延を気にせず使えるため、常時高負荷で1件に数時間かかるバッチ処理に最も向いている
正解:D
解説
FaaSは、イベントを契機に関数を起動し、必要なときだけ実行環境を動的に確保する方式です。実行した分だけの課金が一般的なため、不定期でばらつきの大きい処理では常時稼働のサーバーより費用を抑えやすくなります。一方、実行環境が解放された後の呼び出しではコールドスタートの遅延が生じうること、1回の実行時間に上限が設けられるのが一般的であること、関数をステートレスに作り状態を外部に置く必要があることが制約です。常に高い負荷が続く処理や長時間の処理は、常時稼働のサーバーやコンテナの方が向く場合が多くなります。
選択肢ごとの解説
- A誤り(正しい記述)。イベント駆動で必要なときだけ起動するため、利用頻度の低い処理ほど費用面の利点が大きくなります。
- B誤り(正しい記述)。コールドスタートはFaaSの代表的な制約で、応答時間の要件が厳しい処理では考慮が必要です。
- C誤り(正しい記述)。実行環境は使い捨てを前提とするため、状態は外部のデータベースやストレージに保存します。
- D正しい(誤っている記述)。FaaSには実行時間の上限があるのが一般的で、常時高負荷の長時間処理では実行時間課金のため費用も割高になりやすく、最も向いているとはいえません。