CloudStackをAPIで操作するCloudStackによるプライベートクラウド構築術(5)(1/2 ページ)

CloudStackは、オープンソースベースのIaaSクラウド構築・運用ソフトウェア。使いやすく、機能が充実していることなどから、大規模なデータセンター事業者や組織での導入が相次いでいる。本連載では、このソフトウェアをプライベートクラウド構築に活用する方法を紹介する

» 2012年04月02日 00時00分 公開
[荒井康宏, 飯塚雅之一般社団法人クラウド利用促進機構(CUPA)/クリエーションライン株式会社]

CloudStack APIとは

 前回までで、CloudStackを小規模構成でインストールし、その機能を確認しました。今回は、CloudStackをAPI経由で利用する方法を説明します。

 CloudStackはGUI以外にもAPIを提供しており、CloudStackが持つ数多くの機能を外部からコントロールすることができます。GUIで使用できるほとんどの機能はAPI経由で操作可能で、APIでのみ提供されている機能もあります。

 APIを使用することにより、開発者がCloudStackによるクラウド環境を、新たな管理システムや既存のシステムと統合することが可能です。クラウド環境をAPI経由で制御するクラウド管理のサービスやソフトウェアはすでに存在しており、RightScaleやenStratusはすでにCloudStack APIに対応しています。

 CloudStack APIを使用してCloudStackをベースとしたクラウドサービスを制御することもできるため、社内のクラウドとクラウドサービスを一括管理し、ハイブリッドクラウド環境として利用することが可能です。

 さらに、さらに、シトリックスシステムズはCloudBridgeと呼ばれるCloudStack用の追加モジュールを提供しており、これを使用することにより、Amazon EC2と互換性を持つAPIを提供することも可能です(クラウド対応のWAN高速化およびSSO商品であるCloudBridgeとは別物です)。

CloudStack APIの仕様

 CloudStack API は、CloudStack Managementサーバのポート8080で受け付けられ、処理されます。利用者は、このAPIをコマンドラインツールなどで利用することによって、CloudStack基盤の自動的な操作を実現できます。

図1 APIによるCloudStackの操作 図1 APIによるCloudStackの操作

 APIはRESTで提供されています。応答結果はXMLとJSON形式に対応しており、デフォルトではXML形式のレスポンスとなります。JSONでの応答の場合はresponse=jsonのコマンドオプションを追加します。

 CloudStackでは、ユーザーの権限により、3種類のAPIが用意されています。

GlobalAdmin API
管理者用のAPI。クラウドに対する全てのコントロールが可能で、仮想リソースと物理リソース、両方の管理を行います。

DomainAdmin API
ドメイン管理者用のAPI。一般ユーザーのコントロールに加え、ドメイン内の仮想リソース状態を確認することができます。

User API
一般ユーザー用のAPI。ユーザーに割り当てられた仮想インスタンス、ストレージ、ネットワークをコントロールできる。

 APIの一覧は、シトリックスのWebページ上に公開されています。

 CloudStack APIを8080ポートから使用するには、API鍵の生成と、署名パラメータの指定を行う必要があります。

 署名作成方法の詳細はCloudStackのドキュメントに記されていますが、おおまかな流れとしては以下のようになります。

  1. コマンドパラメータの要素をソート
  2. コマンドパラメータをURLエンコード
  3. エンコードされた文字列を全て小文字へ置換
  4. 上記文字列と管理サーバで作成された秘密鍵に使用してsha1で署名
  5. signature文字列をURLエンコード

 この署名作成方法の一連の処理は、スクリプトで自動化できます。本稿の後半で、手軽にAPIを実行できるbashスクリプトのソースを公開します。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。