EnterpriseZine(エンタープライズジン)

EnterpriseZine(エンタープライズジン)

テーマ別に探す

ITインフラのキホン:3階層型システムを見てみよう【後編】

  2020/09/16 12:00

3.4.4 コンテナの歴史

 Docker登場以降、急激にコンテナが流行しましたが、コンテナとは何かそのメリットを紹介します。コンテナは「入れ物」や「容器」といった意味で、一言で言うと「リソースが隔離されたプロセス」です。

 1つのOS上で複数同時稼働可能で、それぞれ独立したルートファイルシステム、CPU/メモリ、プロセス空間等々を使うことができる点が、ハードウェアの仮想化である仮想マシン(VM)とは異なります(図3.22)。

図3.22 仮想マシンとコンテナ
図3.22 仮想マシンとコンテナ

 コンテナのルーツをたどると、1970年代にBSD(Barkley Software Distribution)UNIXやTCP/IP、viなどの開発者として有名なBill Joyが開発したchrootがルーツと言われています。

 1970年代はコンピュータは非常に高価で、本番環境と開発環境を用意するには高い費用が必要でしたが、1つのコンピュータで本番環境と開発環境を共存させると誤ってファイルを変更したり削除してしまったりするリスクがありました。

 この課題を解決するために生まれたchrootは、OSのルートディレクトリ以下の特定の階層以下へのアクセスをプロセスに許可する機能で、現在でもさまざまな分野で応用され利用されています。たとえば、Linuxのレスキューモード、FTPでユーザーごとのアクセス範囲限定、PostfixやBINDなどでのアクセス可能なディレクトリの限定などに活用されています。

 1990年代にFreeBSD jailが登場し、「あるディレクトリ配下をルートディレクトリに見せる」chrootの概念に加え、アプリケーションのプロセスも隔離できるようになりました。その後、Bill Joyの所属していたサン・マイクロシステムズは2000年代にはSolarisコンテナと呼ばれるコンテナ機能を提供していました(Oracle Solaris 11ではOracle Solarisゾーンと呼ばれています)。

3.4.5 Docker の登場

 その後も商用UNIXやオープンソースでコンテナ技術の開発は地道に続けられていましたが、2013年にファイルシステムとプロセスを分離する機能に加えて、ファイルシステムイメージのパッケージングとバージョニングができ、コンテナイメージをシェアできるDockerが登場したことでコンテナは一躍脚光を浴びました(図3.23)。

図3.23 Dockerの基本機能
図3.23 Dockerの基本機能

 2014年にGoogleは、Googleのすべてのサービス、そしてGoogleの社内で使われているツールもすべて、Docker登場以前からコンテナ型仮想化技術の上で実行されていると発表しています[※3]。

 Docker社は改名する前はdotCloud社で、2008年に言語中立なPaaSを構築するために設立しました。dotCloudのPaaSは開発したアプリケーションをクラウドにデプロイすると実行できるというものでしたが、アプリケーション周辺のフレームワークやライブラリなどのバージョンの不一致などでローカルでは動作したプログラムがクラウドでは動作しないといった問題が多発したため、元々クラウド内部の仕組みとして開発していたアプリケーション実行環境を自動構築して「Dockerイメージ」に固める技術を、クラウド以外の環境でも利用できるようにオープンソースとして公開しました。

 さらにDocker Hubと呼ばれるパブリックなレジストリで、誰でもDockerイメージをシェアできるようにしたため、爆発的な人気を得ました。仮想マシンと比較してDockerのメリットとしては、以下のような点があります。

  • コンテナはホストOSとOSカーネルを共有するため、コンテナの起動や停止が速い
  • ホストOSのカーネルを共有するため、VMだけを使う場合に比べて、1台のホストマシンではるかに多くのコンテナを実行でき、リソース集約率が高くなる
  • DockerはライブラリやフレームワークなどをDockerイメージに固めて共有できるため、ある人の環境では再現するが自分の開発環境では再現しないといった問題が起きにくくなり、効率的なバグフィックスが可能になる

 ※3 https://www.publickey1.jp/blog/14/google20.html

3.4.6 クラウドと仮想化技術

 ハイパーバイザーやコンテナなどの仮想化技術はGoogleやFacebook、Amazon.comなどの大規模Webサービスの裏側で利用され、AWS(Amazon Web Services)、GCP(Google Cloud Platform)、Azure(Microsoft Azure)などのクラウドサービスでは、仮想マシンサービス、コンテナサービス、Function as a Service(FaaS)[※4]などのサービスとして、またはそのほかのサービスを支える裏側の機能として利用されています(図3.24)。

図3.24 クラウドと仮想化技術
図3.24 クラウドと仮想化技術

 ※4 機能(Function)の実行環境がサービスとして提供されるもの。

絵で見てわかるITインフラの仕組み 新装版

Amazon  SEshop  その他


絵で見てわかるITインフラの仕組み 新装版

著者:山崎 泰史、三縄 慶子、畔勝 洋平、佐藤 貴彦 著、小田 圭二 監修
発売日:2019年06月19日
価格:2,618円(税込)

本書について

本書では、普遍的な常識をもとに、ITインフラという領域全体を、ミクロ、マクロの視点で、わかりやすいように絵(図)で説明します。ITインフラの常識(=勘所)をつかむことで、よりITシステムに対する理解が深まり、専門外または新しい技術に出会ったときにその本質を理解するための基礎力が身につくはずです。



関連リンク

著者プロフィール

  • EnterpriseZine編集部(エンタープライズジン ヘンシュウブ)

    「EnterpriseZine」(エンタープライズジン)は、翔泳社が運営する企業のIT活用とビジネス成長を支援するITリーダー向け専門メディアです。データテクノロジー/情報セキュリティの最新動向を中心に、企業ITに関する多様な情報をお届けしています。

バックナンバー

連載:翔泳社の本

もっと読む

All contents copyright © 2007-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5