いまさら聞けないOpenStack〜よく知られた「常識」と知っておくべき「常識」特集:OpenStack超入門(2)(2/3 ページ)

» 2014年11月19日 11時30分 公開
[中井悦司レッドハット株式会社]

ITインフラの三大要素を仮想化して提供するOpenStack

 それでは、OpenStackの機能について、その概要を捉えておきましょう。OpenStackは、IaaS(Infrastructure as a Service)タイプのクラウドサービスを提供するのがその使命です。マルチテナントでの利用が前提となっており、OpenStackのエンドユーザーには、それぞれに独立したテナントが与えられます。1つのテナントを複数のユーザーで共同利用することも可能です(図1)。

ALT 図1 OpenStackが提供するコンピューティングリソース

 ユーザーは、自身のテナントの内部で、仮想ネットワーク、仮想マシン、仮想ストレージを自由に構成して、組み合わせていきます。あくまで仮想化された世界ではありますが、「ネットワーク」「サーバー」「ストレージ」という、ITインフラの三大要素が自由に手に入るようになります。物理的な制約を気にすることなく、自席の端末から、GUI/CLI操作での環境構築が可能になります。

 ここまでは、IaaSタイプのクラウド一般にいえる話ですが、OpenStackの場合は、次のような操作方法を選択できます。

  1. Webブラウザーからダッシュボード(GUI)を操作する
  2. OpenStackのクライアントコマンド(CLI)を利用する
  3. APIライブラリを用いて、環境を自動操作するプログラムを作成する
  4. AnsibleやChefなどの構成管理ツールを利用して環境操作を自動化する

 1、2は手動操作ですので、まだ、本来の意味における自動化には達していません。しかしながら、従来の世界で必要とされた物理作業がなくなることで、作業効率は格段に向上します。ネットワーク、サーバー、ストレージを用意して、アプリケーションの実行環境を整備するという一日がかりの作業が、数分で完了します。

 そして、3、4はOpenStack本来の威力を発揮する自動操作です。詳しくは次回に解説しますが、OpenStackが提供する全ての機能は、REST形式のAPIを通じて利用することが可能です。APIにリクエストを発行するプログラムライブラリが用意されており、「腕に覚えのあるエンジニア」であれば、Pythonなどのプログラム言語で、さまざまな環境操作を自動化することが可能です。

 とはいえ、個々のエンジニアが独自に自動化プログラムを作るのも非効率的です。そこで登場するのが、AnsibleやChefなど、既存の構成管理/自動化ツールを利用した手法です。例えば、Ansibleでは、個々の作業手順を「プレイブック」と呼ばれる設定ファイルにまとめていきます。プレイブックを共有することで、チーム全体で自動化の仕組みを共有することが可能になります。

 冒頭で紹介した、OSの設定変更作業であれば、「アプリケーションを起動/停止するプレイブック」「アプリケーションの稼働テストを実施するプレイブック」などをアプリケーションチームが事前に用意しておきます。これにより、変更作業そのものには、アプリケーションチームは関わる必要がなくなります。対象サーバーが10台だろうが、100台だろうが、変更作業の手間は変わりません。

 この時、自動化の対象が「OSの設定変更」だけであれば、OpenStackの機能は直接には関係しませんが、スケールアウト型のアプリケーションであれば、後からアプリケーションサーバーを追加するような作業も発生します。

 Ansibleには、OpenStackのAPIを操作するモジュールも用意されているので、「新規の仮想マシンを起動してストレージを接続した後、アプリケーションを導入してロードバランサーに組み入れる」といった一連の作業を、プレイブックの組み合わせで自動化することが可能になります(図2)。OpenStackで提供するストレージ(ブロックボリューム)には、スナップショットコピーの機能もあるので、データベースのバックアップ作業など、ストレージの機能と連携した自動化も可能です。

ALT 図2 Ansibleによるアプリケーションサーバー構築の自動化

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。