CloudStackをAPIで操作する:CloudStackによるプライベートクラウド構築術(5)(1/2 ページ)
CloudStackは、オープンソースベースのIaaSクラウド構築・運用ソフトウェア。使いやすく、機能が充実していることなどから、大規模なデータセンター事業者や組織での導入が相次いでいる。本連載では、このソフトウェアをプライベートクラウド構築に活用する方法を紹介する
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基盤の自動的な操作を実現できます。
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のドキュメントに記されていますが、おおまかな流れとしては以下のようになります。
- コマンドパラメータの要素をソート
- コマンドパラメータをURLエンコード
- エンコードされた文字列を全て小文字へ置換
- 上記文字列と管理サーバで作成された秘密鍵に使用してsha1で署名
- signature文字列をURLエンコード
この署名作成方法の一連の処理は、スクリプトで自動化できます。本稿の後半で、手軽にAPIを実行できるbashスクリプトのソースを公開します。
Copyright © ITmedia, Inc. All Rights Reserved.