DevOpsにおけるコンテナ技術の活用【情報処理安全確保支援士試験 令和元年度 秋期 午後2 問1 設問4】

情報処理安全確保支援士試験 令和元年度 秋期 午後2 問1 設問4

【出典:情報処理安全確保支援士試験 令和元年度 秋期 午後2 問1(一部、加工あり)】

【コンテナ技術活用の検討】
 B氏は、コンテナ技術を、構成管理、変更管理、リリース前の確認及び実行環境の更新に活用することを提案した。次は、PさんとB氏の会話である。

Pさん:まず、コンテナ技術の活用について解説してもらえますか。
B氏:サーバで(c)を一つ稼働させておけば、(c)の上で、(d)ごとの別の(e)を稼働させることが可能です。ほかの(e)への影響なく、(e)ごとにサービスの提供や停止ができます。さらに、(c)の上で稼働する(e)は複製が容易なので、同じ開発環境をいくつも用意して(d)を開発することが可能となります。
Pさん:なるほど。S社でも以前から、遠隔監視するツールのためにサーバA上で(c)を稼働させているのですが、そのようにも活用できるのですね。構成管理・変更管理への活用についても解説してもらえますか。
B氏:実行環境の構成情報を、(d)のソースコードと同じようにサービスHでバージョン管理できます。構成情報については、(f)を確認することができ、図5で提案した運用プロセスでのシステム変更の管理につながります。
Pさん:なるほど。リリース前の確認への活用について解説してもらえますか。
B氏:リリースする際の確認のため、(g)環境と同じ実行環境を用意して、(d)が動作するかを確認することが可能となります。図5で提案した(h)環境も用意できます。
Pさん:実行環境の更新への活用について解説してもらえますか。
B氏:(e)内のライブラリ及びミドルウェアは、(c)が稼働するOS側のそれらとは別のファイルです。複製した(e)内で、ライブラリ及びミドルウェアにパッチを適用したときに、現在の(d)が正常に稼働するかを回帰テストを行って確認できます。
Pさん:それは朗報ですね。Sシステムでは、創業時に構築した古い実行環境を使っていて新しいバージョンへの更新が課題でしたので、その解決の糸口になります。早速、コンテン技術を活用してみます。

 S社は、セキュリティの向上、開発プロセスの強化、及びコンテナ技術の活用によって、DevOpsの実践を改善した。その効果もあってサービス品質が向上し、登録会員数を増やすことができた。

c:コンテナエンジン、d:アプリ、e:コンテナ、f:変更の履歴、g:本番、h:検証

 コンテナとは、サーバのコンテナエンジン上で、アプリケーション、ライブラリ、設定ファイルなどをひとまとめにしてコンテナとして動作させる技術のことです。
 サーバ仮想化の仮装マシンと似ていますが、サーバ仮想化ではホストOSの上でゲストOSを構築する必要がありますが、コンテナではゲストOSを構築する必要がなく、アプリケーションの実行環境を構築することが可能です。
 サーバ仮想化と比べて、CPUやメモリなどリソースの消費が少なく処理が軽量、環境構築が容易であることから、DevOpsとの相性がよく、検証環境や障害対応による代替環境への切り替えなど迅速に行うことが可能です。