2015/11/09

vCloud Air の vCloud API

vCloud Air は VMware のクラウド管理ツールである vCloud Director を利用して構築されている。 vCloud Director は REST ベースの vCloud API を通じて操作や連携が可能になっている。
( むしろ、vCloud Director 標準の FLEX UI は REST API のサンプル実装で実際には REST での操作でUIを構築するべきものと vCloud Director リリース前には聞いていたのたが、そこまで頑張るクラウドベンダーも少なく、"サンプル"がそのまま使われ続けてサポートせざるを得なくなったというのが事実ではないかと思われる。 )

vCloud Air でも vCloud API で操作できるか? と言われるとこれが実は微妙なところだった。 vCloud API は vCloud Director を指し示すURLに対して送付することになっていたが、vCloud Air では各リージョンで多数の vCloud Director が動作しており、利用者の仮想データセンター(VDC)はそのどれかにマッピングされる。vCloud API でアクセスすべきURLが仮想データセンターに接続してみないと分からないのだ。


標準の Web Console は一カ所で稼働しており、これは各ユーザのVDCがどのリージョンのどの vCloud Director にマップされているかを把握している。しかし、この WebConsole はvCloud Director の範囲外で動作しており、システマチックにVDCのリストを得ることがこれまでできなかった。

複数のVDCを利用する場合、どのVDCがどのURLかは利用者が管理し続けることになり、これはとうていクラウドらしいAPIとはいえない。

この点は VMware 社も把握しており、vCloud API の拡張が続けられていた。

最初の改善は、vSphere 6.0 に付属の PowerCLI 6.0R1 に見られる。このバージョンでは vCloud API 5.6 を使用して、https://vchs.vmware.com/api/vchs/sessions へ接続、VDCのリストを得て、VDCへのセッションを張ることが可能となった。
PowerCLI ではこの接続を「Connect-PIServer」 というコマンドレットでサポートしている。このコマンドレットを含むモジュールが VMware.VimAutomation.PCloud (PICloud でないのに注意)なので、おそらくPublic の P なのだろう。

Connect-PIServer で接続後、Get-PIDataCenter コマンドレットを使うことで、ログインした権限で利用可能な全ての仮想データセンターがオブジェクトとして渡される。-Name オプションで名前を指定、あるいは取得したオブジェクトを Select-Object などを使って選択後、Connect-CIServer コマンドレットに渡せば vCloud Director への接続が得られる。

ただし、このバージョンの vCloud API は Dedicate Cloud (DR), Virtual Private Cloud (VPC),  Disaster Recovery (DR) といったサブスクリプション制のサービスにのみ対応し、従量課金制の Virtual Private Cloud On Demand や、Google のOEMである Object Storage には対応していなかった。


これら新しいサービスへの対応は、PowerCLI 6.0R2 とそれに対する fling のリリースによって行われた。fling 、すなわちまだプロダクションレベルのサポートではない、評価版という形だが、ここで vCloud API 5.7 with vCloud Air Extension をサポートし、これまでのAPIを vCHS Platform API 、5.7 でサポートされた vCloud Air の拡張を含む API を vCA Platform API と呼ぶようになった。
(vCHS は vCloud Hybrid Service の略で、vCloud Air の旧称)

vCA Platform API は VPC および DR、それから Virtual Private Cloud On Demand 、Object Storage をサポートするが、一方で DC をサポートしない。どちらのAPIがどれをサポートするかはこちらのドキュメントに記載がある。どちらのAPIセットを使うかは Connect-PIServer のオプションで決まる。「-vCA」オプションを追加すると新しい vCA Platform API で、そうでない場合は従来の vCHS Platform API となる。

Virtual Private Cloud On Demand の取得には Get-PIDataCenter ではなく Get-PIComputeInstance コマンドレットを使用する。帰ってきたオブジェクトを Connect-CIServer に渡す点は同じだ。



そして、PowerCLI 6.0 R3 にて fling 部分のコードも統合された。すなわち、 PowerCLI 6.0 R3 さえインストールすれば追加のインストールコンポーネントなしに vCA Platform API が利用できる。