OpenStackディストリビューション「RDO」を用いて、実際に動作するOpenStack環境を構築しながら、OpenStackの利用方法や内部構造を学ぶ特集です。「基礎編」として掲載した第1回から第4回では、主にWebベースのGUIであるHorizonダッシュボードを利用して、OpenStackを利用する方法を紹介しました。

 第5回となる今回からは「応用編」として、CLI(コマンドラインツール)を用いた操作を通して、OpenStackを構成する各種コンポーネントの役割と内部の仕組みを学んでいきます。今回は、CLIの基本的な使い方とコンポーネント間のAPI連携を解説します。

OpenStackを構成するコンポーネント

 「基礎編」第2回の表1に示したように、OpenStackは、Nova、Cinderなど、機能別にコンポーネントが分かれています。多くの場合、これらのコンポーネントは1台の管理サーバー(コントローラーノード)にまとめてインストールされますが、必ずしもそのような構成にする必要はありません。各コンポーネントは、REST APIによってネットワーク経由で連携するため、それぞれ異なるサーバーにインストールしても正しく動作します。REST APIでは、事前に決められたURLに対して、HTTP(もしくは、HTTPS)のプロトコルで命令を送信することで、それぞれのコンポーネントを操作します。

 例えば、Horizonのダッシュボードで仮想マシンインスタンスの起動を指示すると、その背後では、図1のような連携処理が行われます。まず、Horizonのサーバーから、NovaのAPIに対して、仮想マシンインスタンス起動の指示が流れます。さらに、Novaが仮想マシンインスタンスを起動する際は、Glanceからテンプレートイメージをダウンロードしたり、Neutronによって仮想スイッチに新たな接続ポートを追加するなどの処理が必要です。これは、NovaがGlanceやNeutronのAPIを用いて、必要な処理を依頼します。

図1●OpenStackを構成するコンポーネントのAPI連携
図1●OpenStackを構成するコンポーネントのAPI連携
[画像のクリックで拡大表示]