1分でわかるIT用語集

コンテナ

仮想的な環境でアプリケーションを実行させる(仮想化)技術の一つ。システム開発・運用の生産性や柔軟性を高めるコンテナの活用は、デジタルトランスフォーメーション(DX)の実現に欠かせないと言われている。

コンテナの仕組みは、ホストOSに仮想環境を作成、配布、実行する「コンテナエンジン」をインストール、その上にコンテナ(分離、独立した領域)を作成し、異なる複数のアプリケーションを実行させる。コンテナ内部にはアプリケーションと、そのアプリケ-ションの実行に必要なミドルウェア、ライブラリなどが格納されている。もともと、コンテナとは容器、入れ物、箱のこと。貨物輸送で使われる品物を入れた箱をイメージするとわかりやすい。

コンテナエンジンのデファクトスタンダード「Docker」は、専用のオープンソースソフトウェア「Kubernetes」を活用することで、複数のコンテナを効率よく維持・管理できる。今後、Kubernetesはコンテナを中心とするIT環境における新たなOSになると言われている。

従来の仮想化では1台の物理サーバーをバーチャルに分割して仮想化マシンを作成。仮想化マシンごとにゲストOSやアプリケーションを構築するため、起動やアプリケーションの実行に時間がかかる。複数のゲストOSにメモリーやCPUなどが割り当てられるので、サーバーのリソースを多く消費する。これに対し、コンテナ技術はホストOSを共有するので、個別にゲストOSを用意する必要がない。リソースを節約でき、負荷が小さいので起動も速く、効率よく稼働させられる。

コンテナは簡単にコピーやバックアップが可能。コンテナイメージを開発中のテスト環境から、そのまま本番環境に移行できるので、開発コストだけでなく運用コストも抑えられるメリットがある。一方で、ホストOSのカーネル(OSの中核的なプログラム)を個別に変更できない、異なるOSを同一基盤で動かせないというデメリットがある。新しい技術のためノウハウを持った技術者が少なく、導入・運用のための学習コストが比較的高いのも課題としてあげられる。
(青木逸美)