前回、OpenStackの五つの主要コンポーネントについて解説した。これらの各コンポーネントで構成されるIaaSの機能は、REST形式のクラウドサービスAPIを通じて実行される(表1)。仮想マシンイメージの登録や仮想マシンの起動・停止といった管理を、Horizonなどのツールから実施できる。

表1●OpenStackが備える主なクラウドサービスAPI
表1●OpenStackが備える主なクラウドサービスAPI
[画像のクリックで拡大表示]

 OpenStackのNovaでは、「Amazon EC2 API」「OpenStack Compute API」という2種類のAPIを備える。Amazon EC2 APIは、AWSが提供するクラウドサービスの互換APIである。「euca2ools」などのクライアントツールや、「Python boto」「RightAWS」といったクライアントライブラリから利用可能な他、「Hybridfox(Firefoxプラグイン)」によるGUI操作にも対応する。

 IaaSのデファクトスタンダードといえるAmazon EC2 APIをサポートすることで、テナント管理者は、OpenStackで構築したIaaSを、AWS互換の管理ツールを用いて管理できる。仮想マシンの起動/停止、スナップショットの取得、パブリックIPアドレスの割り当てなど、仮想化基盤を提供するための主要機能を利用可能だ。

 一方OpenStack Compute APIは、独自のAPIである(米Rackspaceの商用クラウドサービスAPIのサブセットに相当)。Horizonによる管理機能のバックエンドはこちらのAPIに基づく実装となっている。

 OpenStack独自に機能拡張を図っていく上では、AWSとのAPI互換性は障壁となる。そのため、独自機能向けのAPIはOpenStack Compute API側に実装するというアプローチがとられている。例えば、ライブマイグレーション、マルチ仮想NICの管理などの機能は、OpenStack Compute APIで実装されている。

 Swiftは、「Amazon S3 API」「OpenStack Object Storage API」という2種類のAPIを備える。オブジェクトの登録/取得/削除などの操作を行うことができる。