近年、従来の仮想化をベースとしたシステムから、新たにクラウドをベースとしたシステムの利用を検討する企業が増えつつある。その目的としては、クラウドにおける柔軟性・迅速性といった特徴を生かして、「ビジネスの俊敏性を向上したい」「運用コストを削減したい」といったことが挙げられる。
このクラウドはさまざまな要素で構成されており、主な要素としては、コンピュートリソース/ストレージリソース/ネットワークリソース、これらを連携するためのメッセージや認証の仕組み、そして、利用者/管理者が用いるポータル機能がある。これらの要素が連携することで、セルフサービスでの迅速なITリソース構成を可能にしている。
ただ、利用者の環境に応じて、これらすべての要素が必ずしも重要ではない場合もあるし、特定の要素においては、単一の仕組みに捕らわれずに、さまざまな手法が必要となる場合もある。
例えば、コンピューティングに関する機能はそれほど重要視しないものの、ストレージに関しては「オブジェクトストレージやブロックストレージなど、多様な利用方法を提供したい」といった要望があるケースもある。このように、クラウドにおいては、利用者や管理者に対して"本当の意味での柔軟性"を提供する仕組みが重要となる。
こうした仕組みを実現するためには、クラウドを提供する製品の継続的な改良や機能追加が短期間で求められる。この解決策の1つとして、オープンソースとしてソフトウェアを公開し、多くの企業や組織のエンジニアが機能実装を貢献する手法が注目されている。この手法により、多くの実装がオープンな形で作成され、多くの関係者により検証されることとなる。
このような背景の下、本連載では、オープンソースのクラウド管理ソフトウェアの中でも近年大きな注目を集めているOpenStackについて、さまざまな方に幅広く理解していただくため、その特徴・役割・構成手法などを紹介していく。第1回となる今回は、OpenStackの概要として、開発背景やリリースサイクル、そしてコンポーネントを解説する。
「OpenStack」とは?
OpenStackは、IaaS (Infrastructure as a Service) を構成するためのクラウド管理ソフトウェアだ。パブリッククラウドとして有名なAmazon EC2/S3に相当するクラウドインフラを構成するためのオープンソースソフトウェアとして開発されており、コンピューティングリソース/ネットワークリソース/ストレージリソースなどからなるマルチテナント型のクラウドを提供する。
これはもともと、米Rackspaceが自社開発で利用していた「Swift」(S3相当の機能を提供)と、NASAが開発していた「Nova」(EC2相当の機能を提供)をオープンソース化したもので、2010年にOpenStackの開発を支える公式の非営利団体である「OpenStack Foundation」が設立された。これらに対して、多くの利用者や企業がさまざまなコードを寄与することにより、継続的な機能拡張・改善が行われている。
OpenStackのリリースとプロジェクト
OpenStackのリリースサイクルは、約半年に1回となっており、アルファベット順で並べられたリリース名(開発コードネーム)が公募され、投票によって選ばれている。
上図の下部の「IceHouse」や「Juno」がリリース名であり、「2014.1」や「2014.1.1」がそのリリース番号となる。ただ、「2014.1.2」 といっても、2014年1月2日にリリースされたわけではなく、「2014年の初期リリースの、2回目のメンテナンスが実施されたリリース」という意味であることには注意いただきたい。なお、本稿執筆の2014年11月末時点では、10番目の「Juno」が最新版としてリリースされている。
また、OpenStackでは、クラウドに必要な各機能・コンポーネントに対して「プロジェクト」という形態をとり、それぞれ並列した開発がコミュニティにより行われている。その主要コンポーネントおよび機能を以下に紹介する。
コンポーネント名とその機能・特長
プロジェクト名 | 機能 | 特徴 |
---|---|---|
Nova | コンピュート | 仮想マシン管理やハイパーバイザとの接続を提供 |
Swift | オブジェクトストレージ | オブジェクトストレージサービスを提供 |
Glance | イメージ | 仮想マシンの起動イメージサービスを提供 |
Horizon | ダッシュボード | GUIのダッシュボードを提供 |
KeyStone | 認証 | 認証サービスを提供 |
Neutron | ネットワーク | L2/L3ネットワークと、ファイアウォールのネットワークサービスを提供 |
Cinder | ブロックストレージ | 永続的なブロックストレージサービスを提供 |
Heat | 自動化 | スクリプトによる仮想マシンの作成からアプリのインストール等を自動化 |
Ceilometer | メータリング | 各サーバからシステム情報を定期的に収集して保存 |
Trove | データベース | データベースに関わるサービスを提供 |
Sahara | ビッグデータ | ビッグデータに関わるサービスを提供 (Hadoop、Spark) |
次回は、OpenStackを利用するメリットとデメリットを解説する。
藤田 雄介
ネットワンシステムズ株式会社 経営企画本部 第2応用技術部 クラウドソフトウェアチーム リーダー
シスコシステムズの認定資格「CCIE #8777」、ヴイエムウェアの認定資格「vExpert2013」「vExpert2014」を保持。ネットワークをベーススキルとして、仮想化基盤の大規模案件を数多く経験。現在は、SDNやクラウドのエンジニアとして邁進中。