コラム

よくわかるIT新発見 第2回 「OpenStack」が実現する次世代IT基盤

更新

クラウド基盤を構築するOSS「OpenStack」をCTCのエンジニアが解説

ソースコードが公開されており、誰もが自由に利用することができるソフトウェアである「オープンソースソフトウェア」(以下OSS)、中でも、クラウド基盤を構築するOSSである「OpenStack」が注目されています。

注目を集めるOpenStackとは

OpenStackはOSSで開発されるクラウド基盤ソフトウェアです。Amazonのクラウドサービスをモデルに開発されており、OpenStackを利用すると、仮想サーバ、仮想ストレージ、データベース等がサービスとして利用できるクラウドプラットフォームであるアマゾンウェブサービス(以下AWS)と同等のIaaS(Infrastructure as a Service)環境と、一部のPaaS(Platform as a Service)環境を構築することができます。

OpenStackは、元々は米航空宇宙局(NASA)と米国の大手ホスティング事業者であるラックスペースが中心となって開発され、2012年9月に開発のガバナンス強化や、知財管理の強化を目的に非営利団体OpenStack Foundationに移管されました。IBM社、RedHat社、HP社、Cisco社、VMware社をはじめとする米国主要ITベンダーはほぼOpenStackプロジェクトへ参画しています。また大手企業だけでなく様々なITベンチャー企業がこのプロジェクトに参加しており、全体として巨大なエコシステムを形成しつつあります。100カ国 10,000人以上の開発者が参加し、日進月歩で新機能の開発、既存機能の強化が行われています。2013年11月に香港で開催された「OpenStack Summit」では3,000人以上の来場があり、盛り上がりの一端を垣間見ることができました。

OpenStackには類似のソフトウェアとして、CloudStack、Eucalyptus、OpenNebula等がありますが、その中でもOpenStackが注目を集めている背景として、OpenStackが他のソフトウェアに比べ「特徴」を持っていることが挙げられます。この特徴ゆえにOpenStackは注目を集め、出資者・開発者が集まり、その特徴をさらに強固にするという好循環が生まれています。ここではその特徴について解説していきます。

ソフトウェア全体としての特徴 ~基盤の標準化と自動制御~

まず真っ先に挙げられる特徴として、OSSであるという点です。OSSとして開発・配布されるため、誰でも・自由に・無償で利用可能です。また、足りない機能があれば自分で付け足すことも自由です。OSSには様々なライセンス形態がありますが、OpenStackはその中でも企業が利用しやすいApache2ライセンスを採用しており、これが企業からの参入障壁を下げる1つの要因になっていると考えられます。

2つ目の特徴としてはOpenStackがプラットフォームの標準化を実現する手法である点が挙げられます。OpenStackはIaaSを実現するためのソフトウェアですが、その構造上から基盤の標準化にとても適しています。特にWEBサービスを提供しているような、大規模にサーバリソースを消費する企業でこの標準化が積極的に活用されています。OpenStackは自身が管理するIaaS用の仮想サーバ、仮想ストレージ、仮想ネットワークというリソースを、外部から利用できるようにするためのインタフェースであるAPI(Application Programming Interface)を介して操作させることができ、環境のディプロイメントを強力にアシストしてくれます。このAPIは、ハイパーバイザーの種類や、利用しているストレージ製品といった管理するリソースの構成要素に依存しないため、IaaSの利用者はOpenStackの使い方さえ覚えれば、インフラを構成する製品群の独自仕様について覚える必要がありません。またAPIが利用可能ということは、プログラムからの自動操作も可能であるということでもあり、たとえば20:00~24:00はサービスの負荷が高いため、WEBサーバの100台数を増やし、0:00~6:00は負荷が低くなるのでサーバを50台まで減らす、といった操作を簡単に、かつ人手を介さずに行うことができます。

OpenStackの機能イメージ

そして、多数の開発者が参入して開発が進んだ結果、OpenStackは他のIaaS基盤ソフトウェアに比べリッチな機能セットを持つことになりました。仮想サーバ、仮想ストレージ、仮想ネットワークといった基本的なIaaS制御だけでなく、物理サーバを使ったベアメタルプロビジョニング機能や、仮想ファイアウォール、仮想ロードバランサ、オーケストレーション機能、モニタリング・メータリング機能と代表的なものを挙げるだけでもかなりの数になります。そしてこれらの機能は疎結合しており、個別の機能ごとに単独で開発が行えるようにも工夫されています。OpenStackの各機能とそれを構成するコンポーネントを含めた全体イメージを図へ記載します。

構造的な特徴 ~構成要素を隠蔽し、一貫した操作を提供~

OpenStackのドライバ・プラグイン構造

さらに一歩踏み込んでいきます。OpenStackはソフトウェアの標準化を実現するために構造自体に特徴を持っています。それは「プラグイン」または「ドライバ」構造を採用しているという点にあります。図に例を示しました。

これはOpenStackの中で、仮想サーバをコントロールする Nova という機能の例です。仮想サーバを管理するためにはハイパーバイザーと連携する必要がありますが、通常であればハイパーバイザーごとに操作方法は異なっています。その違いを吸収するため、Nova は各ハイパーバイザー用のドライバを持っており、このドライバにより違いを吸収するという構造を取っています。これはちょうどWindows OSのプリンタに良く似ています。様々なメーカーが販売するプリンタがありますが、利用者は「ファイル」から「印刷」を選択するだけで、プリンタの違いを意識せずに印刷を行うことができます。OpenStackも同様に配下に収める要素技術の種類によらず、利用者は一貫した操作を行うことができます。この構造ゆえに、IT基盤の標準化に適用しやすくなっています。

OpenStackの最新状況

OpenStackのリリース状況

本記事の執筆時点で、OpenStackは8度目のメジャーアップデートとなるコード名「Havana」がリリースされています。このアップデートにおいて新たにオーケストレーション機能を提供するHeat、モニタリングと課金のためのメータリングを行うCeilometerが追加されました。また既存機能の安定性、スケーラビリティの強化や対応ドライバの拡充が行われました。2013年11月に香港で開催されたOpenStack Summitでは、多数の大規模事例が発表され、OpenStackは完全に実用段階に突入していると言えます。発表された事例には月間30億ビューを超えるオンライン動画サイトの基盤としてOpenStackを採用したものや、毎日1,000万を超えるアクセス照会のあるセキュリティソフトウェアの基盤として採用されたものがありました。

まとめ ~大規模仮想環境の運用自動化へ~

OpenStackはOSSとして開発されるクラウド基盤ソフトウェアで、AWS相当の環境を作ることができます。構造に特徴があり、インフラを構成する各種要素技術の差を「プラグイン・ドライバ」構造により吸収するため、クラウドサービスの基盤を提供できるだけでなく、利用者に統一的な操作方法を提供するインフラの標準化ツールとして活用することもできます。またAPIによる自動操作も可能で、IaaS管理ソフトウェアや、自作のプログラムから仮想サーバ、仮想ネットワーク、仮想ストレージといったリソースを操作できるため、大規模なサービスの基盤として数千~数万台規模の仮想環境の運用を自動化することが可能です。今後はこの自動操作を応用することで、「Application Centric」な新しいソフトウェアアーキテクチャが実現されていることになっていきますが、その話はまた別の機会に。

著者紹介

クラウドプラットフォーム事業グループ クラウドサービス企画開発本部 ITインフラサービス企画開発部 中島 倫明

クラウドプラットフォーム事業グループ
クラウドサービス企画開発本部
ITインフラサービス企画開発部
中島 倫明

  • このページについてツイッターでツイート(新しいウィンドウで開く)
  • このページをフェイスブックでシェア(新しいウィンドウで開く)

このコラムに関するお問い合わせはこちら

※記載内容は掲載当時のものであり、変更されている場合がございます。