全7378文字

 アプリケーション実行の基盤技術として、コンテナが注目を浴びています。本講座では、GCP(Google Cloud Platform)でコンテナを活用するためのノウハウを、5回にわたって紹介します。

 第1回では、コンテナの技術的な仕組みや背景について説明します。その後、実際にどのように使うものなのか、GCPのサービスを使って体験してみましょう。

コンテナとは何か

 コンテナとは、アプリケーションとその実行に必要なライブラリをパッケージングする技術です。アプリケーションをコンテナ化することで、実行基盤とアプリケーションが疎結合化されます。開発者のPCからクラウド、企業のデータセンター(オンプレミス)などの環境を問わず、同じ方法でアプリケーションを簡単にデプロイすることが可能になります。

 コンテナの説明をする際によく比較されるのが、仮想マシンです。両者は、物理サーバーのリソースを用途ごとに分割して利用する点では同じですが、その仕組みが違います(図1)。仮想マシンは、ハイパーバイザーと呼ばれるソフトウエア上に、仮想的なハードウエア環境を再現することで実現します。各仮想マシン上で、ゲストOSが動作します。

図1●仮想マシンとコンテナの比較
図1●仮想マシンとコンテナの比較
[画像のクリックで拡大表示]

 それに対してコンテナはホストOS上で直接実行されます。Linuxカーネルが備える「namespace」や「cgroup」といった機能を使って、コンテナごとに論理的に独立した空間で動作します。仮想ハードウエアやゲストOSが存在しないため、仮想マシンと比較して少ないコンピューティングリソースで動作し、起動も高速です。