アプリケーション実行の基盤技術として、コンテナが注目を浴びています。本講座では、GCP(Google Cloud Platform)でコンテナを活用するためのノウハウを、5回にわたって紹介します。
第1回では、コンテナの技術的な仕組みや背景について説明します。その後、実際にどのように使うものなのか、GCPのサービスを使って体験してみましょう。
コンテナとは何か
コンテナとは、アプリケーションとその実行に必要なライブラリをパッケージングする技術です。アプリケーションをコンテナ化することで、実行基盤とアプリケーションが疎結合化されます。開発者のPCからクラウド、企業のデータセンター(オンプレミス)などの環境を問わず、同じ方法でアプリケーションを簡単にデプロイすることが可能になります。
コンテナの説明をする際によく比較されるのが、仮想マシンです。両者は、物理サーバーのリソースを用途ごとに分割して利用する点では同じですが、その仕組みが違います(図1)。仮想マシンは、ハイパーバイザーと呼ばれるソフトウエア上に、仮想的なハードウエア環境を再現することで実現します。各仮想マシン上で、ゲストOSが動作します。
それに対してコンテナはホストOS上で直接実行されます。Linuxカーネルが備える「namespace」や「cgroup」といった機能を使って、コンテナごとに論理的に独立した空間で動作します。仮想ハードウエアやゲストOSが存在しないため、仮想マシンと比較して少ないコンピューティングリソースで動作し、起動も高速です。