IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

クラウド時代のオープンソース実践活用

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第7回 デプロイ自動化の素「JEOS(ジュース)」って美味しいの? (中井悦司) 2012年11月

はじめに

 最近、ITエンジニアの間で、有志による「勉強会」が広まっていることはみなさんよくご存知だと思います。日々の業務に関係しない分野でも、勉強会などを活用して知識を蓄えておくと、思わぬところで役に立つこともあります。
 いわゆる勉強会とは異なりますが、先週、私は「GRACEセンター(先端ソフトウェア工学・国際研究センター)」が主催するソフトウェア工学のセミナーに顔を出して、「リアルタイムシステムの解析」について聞いてきました。プログラムのバイナリコードを元に、そこに含まれる1つ1つの命令のプロセッサ上での実行時間を分析することで、「特定の処理にかかる時間をできるかぎり厳密に見積もる」という研究です。
 例えば、航空機の動きを制御する組み込みソフトウェアの場合、マイクロ秒レベルでの処理の遅れが、人命に関わる事故につながる可能性もあります。学術的で難解な研究ですが、このような制御システムの開発に利用される、実用的な研究でもあります。
 本コラムの話題である「クラウドの自動化」もある種の制御システムと言えるでしょう。近い将来、このような制御系システムの研究がクラウドに応用される時代がくるのかも知れません。
 それでは、本題に入りましょう。前回はアプリケーション・デプロイの自動化ツール「Aeolus(アイオロス)」の全体像を紹介しました。今回は、少し踏み込んで、「アプリケーション・デプロイ自動化の3方式」について解説を進め、Aeolusが採用する「JEOS(ジュース)方式」の利点を紹介します。

アプリケーション・デプロイ自動化の3方式

 クラウドに限らず、一般にアプリケーション環境を自動構築する際は、次の3つの要素を管理する必要があります。

  1. インフラ環境 - 仮想マシンの構成やOSイメージをどのように管理するのか?
  2. アプリケーションプログラム - 導入するアプリケーションをどのように管理するのか?
  3. アプリケーション設定 - アプリケーションの設定内容をどのように管理するのか?

「アプリケーション・デプロイ自動化の3方式」とは、これらの要素のどこまでをマシンイメージ化して管理するかの違いになります(図1)。

fig01

図1 アプリケーション・デプロイ自動化の3方式

「仮想アプライアンス方式」では、アプリケーションを導入・設定した環境を丸ごとマシンイメージ化します。利用者は、マシンイメージから仮想マシンを起動するだけで、すぐに利用できるメリットがあります。
 ただし、管理者の立場では、不便な点もあります。すべてがマシンイメージとして固められているため、アプリケーションのバージョンが変わるとマシンイメージを新たに作成する必要があり、バージョンや設定の違いごとに個別のマシンイメージを用意することになります。つまり、マシンイメージの作成・管理の手間がかかります。
 一方、「自動インストール方式」はマシンイメージを一切使用しないやり方です。OSのインストールからアプリケーションの導入・設定まで、すべての作業を自動化して実施します。サーバ仮想化が始まる以前から、PXEブート、KickStart、Puppetなどのツールを組み合わせて、物理サーバ環境の自動構築に用いられてきた手法です。この場合、デプロイする内容のカスタマイズや構成のアップデートは、KickStartやPuppetの設定ファイルを書き換えることで容易に行えます。
 ただし、これらのツールを連携させるためのノウハウが必要で、マシンイメージを使用する場合に比べると、デプロイ処理に時間がかかります。また、マシンイメージからの起動が前提となるクラウド環境では、そもそも利用することができません。
 このような課題を解決するのが、次に説明する「JEOS方式」です。

AeolusのJEOS方式の特徴

「JEOS方式」は、先の2つの中間的なやり方で、それぞれの「いい所取り」をした形です。JEOSとは、「Just Enough Operating System」の略で、アプリケーションをインストールする土台となる「最小構成のOS環境」という意味です。「ジュース」と発音します。
 具体的には、最小構成のOS環境をマシンイメージとして固めておき、ここから仮想マシンを起動した後に、アプリケーションの導入・設定を別途、自動化ツールで実施します。マシンイメージからの起動が前提となるクラウドでも利用可能で、アプリケーションの構成変更への対応も容易です。
 あえてデメリットをあげるならば、一般に、仮想化ソフトウェアやクラウドによってマシンイメージの形式が異なるため、使用するインフラごとに、対応するJEOSのマシンイメージを作成・管理する必要があることです。
 しかしながら、Aeolusには、この問題を解決する仕組みもあります。前回、Aeolusでは、「システムテンプレート」と「アプリケーション・ブループリント」の2種類の設計書(XMLファイル)を使用すると説明しました。「システムテンプレート」は、JEOSイメージを作成する元ネタとなります。Aeolusは、このファイルに基づいて、管理対象のクラウド/仮想化環境に合わせた形式のマシンイメージを自動作成します(*1)。
 つまり、1つのシステムテンプレートを用意するだけで、使用するインフラの違いを意識することなく、自由にJEOSイメージが準備できるようになります。システムテンプレートの記述次第では、JEOSイメージだけではなく、アプリケーションを導入したマシンイメージを自動作成することも可能です(*2)。

次回予告

 JEOSイメージが準備できたら、この後は、「アプリケーション・ブループリント」を利用して、アプリケーション導入・設定の自動化を行います。次回以降、「アプリケーション・ブループリント」の利用方法を説明する予定です。
 ただし・・・、今週末の11/10(土)は、CTC教育サービスの研修施設をお借りして、Linux KVMの勉強会が開催されます! 私も講師として参加する予定ですので、次回は、クラウドの話題は一休みして、勉強会の様子をレポートしたいと思います。

参考資料

*1Aeolus(アイオロス)でRHELonEC2を利用する(その2)
 システムテンプレートの具体例とシステムテンプレートからマシンイメージを作成する手順の例が紹介されています。

*2Aeolus-templates
 アプリケーション導入済みのさまざまなマシンイメージが作成できる、システムテンプレートのサンプルが集められています。

 

++ CTC教育サービスから一言 ++
このコラムでLinuxや周辺技術の技術概要や面白さが理解できたのではないかと思います。興味と面白さを仕事に変えるには、チューニングやトラブルシューティングの方法を実機を使用して多角的に学ぶことが有効であると考えます。CTC教育サービスでは、Linuxに関する実践力を鍛えられるコースを多数提供しています。興味がある方は以下のページもご覧ください。
 CTC教育サービス Linuxのページ
 http://www.school.ctc-g.co.jp/linux/
 

Linux研修トレーニングならCTC教育サービス


 

筆者書籍紹介

Software Design plusシリーズ
「独習Linux専科」サーバ構築/運用/管理
  ――あなたに伝えたい技と知恵と鉄則

本物の基礎を学ぶ!新定番のLinux独習書

中井悦司 著
B5変形判/384ページ
定価3,129円(本体2,980円)
ISBN 978-4-7741-5937-9
詳しくはこちら(出版社WEBサイト)
「独習Linux専科」サーバ構築/運用/管理

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes