ダッシュボードサービス「Horizon」は、OpenStackにおけるWeb GUI を提供する。もちろんOpenStackはAPIやCLIクライアントでの操作も可能だが、ユーザビリティの向上が必要なクラウドサービスを提供する時などは、Webベースで利用できるGUIを提供することは重要な要素だ。今回は、Horizonの概要を紹介しよう。

Keystoneとの連携が必須

HorizonではOpenStackにおけるダッシュボード機能を提供し、インスタンスの操作やボリューム/ネットワークの作成・削除などをWeb GUI上で可能にする。ただ、独自のプロセスが動作するわけではなく、PythonのWebフレームワークであるDjangoをフロントエンドとして利用している。そのため、実行時にはhttpdのプロセスが動作し、内部ではNovaやNeutronといった各サービスのAPIで連携して、その返り値をGUIで表示している。

また、ダッシュボードを利用する際はOpenStackで作成されたユーザーによる認証が必要となるため、必然的にKeystoneとの連携が必要となる。加えて、Keystoneと連携することで、ポリシーによるGUIのフィルタリングが可能となる。

例えば、管理者権限を有するユーザーであれば、物理ホストのリソース状況や各サービスの稼働状況、リソースの制限値などをGUIから変更できるようになる。このように、ロールに対してもポリシーを定義しておくことで、「ユーザーにインスタンスの作成を許可しない」「ネットワークの追加をさせない」といった細かな制限を設けることができる。

ポリシー適用の例

ただし、API経由で変更を加えようとすると正常に処理されてしまう点には注意する必要がある。なぜなら、この制御はHorizonが動作しているコントローラーノード上でJSON(JavaScript Object Notation)形式のポリシーファイルで定義されており、GUI上での表示可否の制御のみが行われているからだ。

より厳密に操作を制御する場合は、Horizonだけではなく各サービスで同様に定義されているポリシー・ファイルも修正することで、GUIとAPI双方でユーザーに対する操作権限の制御が可能となる。

各種GUIの紹介

それでは、Horizonで提供されているダッシュボード機能のGUIを一部紹介する。なお、以下の画像はRedHatが提供している「RedHat Enterprise Linux OpenStack Platform 6」からの抜粋となる。

プロジェクト概要画面

プロジェクトの概要画面では現状利用しているリソース量や空きリソースの様子を確認できる。また、上部タブからボリューム操作やネットワーク操作などの各種サービスを利用する画面へと遷移する。

ネットワークトポロジ画面

ネットワークトポロジ画面では、インスタンスや仮想ルータとネットワークの接続状況を確認することができる。この画面からルータやインスタンスのアイコンにマウスオーバーすることでステータスやIDを確認できるほか、インスタンスのコンソール画面を起動することができる。

以上、今回はOpenStackコンポーネントの紹介として、ダッシュボードサービスを提供するHorizonを紹介した。次回は、オブジェクトストレージサービスを提供するSwiftを紹介する。

千葉 豪
ネットワンシステムズ株式会社 ビジネス推進本部 第2応用技術部 クラウドソフトウェアチーム
OpenStackおよびCloudStackなどの主にオープンソースをベースとしたクラウドソフトウェアを担当。
Apache Software Foundationにおいてコミッタ兼PMC(Project Management Committee)としても活動している。