ニフクラ ブログ

ニフクラ/FJ Cloud-Vやクラウドの技術について、エンジニアが語るブログです。

ニフティクラウド API REST、SDK for Java、CLI の提供を開始しました

本日、ニフティクラウド API のアップデートを行い、以下の機能が利用できるようになりました。

REST API

SOAP API と合わせて REST API も利用できるようになりました。
今後の機能バージョンアップは SOAP/REST ともに対応していく予定です。

SDK for Java

REST API を使用した Java 用のライブラリを提供いたします。
Eclipse 等、お使いの IDE からニフティクラウドのプログラムが可能になります!

CLI

SDK for Java をラッピングしたシェル(Linux 用)、バッチ(Windows用)を提供いたします。
コマンドラインからニフティクラウドの操作が可能となり、コーディングの知識が無くてもリソースの自動運用が実現できます!

機能追加

サーバーのコピー、イメージ化、ロードバランサーの操作に対応しました。
SOAP/REST/SDK/CLI のすべてで利用可能です。

今回は、この中から CLI の利用方法について具体的にご紹介したいとおもいます。
CLI の詳しい使い方は以下から。

CLI を使ってみる

今回リリースされた CLI を使ってサーバーの作成、停止、起動をやってみたいと思います。
簡単な操作ですが、cron やタスクスケジューラ等に組み込むことで定時にサーバーを上げ下げしたり、バッチ処理でサーバーを増やしたり、といった事が自動でできるようになります。

CLI のダウンロード

以下からダウンロードして、お好みの場所に展開してください。
http://cloud.nifty.com/api/sdk/NIFTY_Cloud_api-tools.zip

AccessKey/SecretAccessKey の取得

CLI は、サーバーとの通信にREST API を使っているので、AccessKey/SecretAccessKey の取得が必要になります。
AccessKey/SecretAccessKey はコントロールパネルから取得できます。

1.コントロールパネルから「API認証」をクリックします。

001_2

2.認証キーの「新規作成」ボタンをクリックします。

002

3.確認ダイアログが出ますのでOKボタンをクリックします。

003

4.SecretAccessKeyが表示されるので、コピーして保存しておきます。

004

 【ご注意】
SecretAccessKey が外部に漏れると、第三者から API が実行される可能性があります。外部に漏れないよう、SecretAccessKey の取り扱いには十分ご注意ください。

5.ダイアログを閉じると、認証キー欄にAccessKeyが表示されているので、こちらもコピーして保存しておきます。

005

Java 実行環境

CLI は SDK for Java をラッピングしていますので、Java 実行環境が必要になります。
Java SE 6 Update7 以降に対応していますので、インストールされていない場合は、以下からダウンロードしてインストールしてください。
http://www.java.com/ja/download/

環境変数の設定

以下の環境変数をセットします。
※以下は Windows の場合の例です。

NIFTY_CLOUD_HOME CLI の zip を展開したパス
NIFTY_ACCESS_KEY_ID コントロールパネルから取得した AccessKey
NIFTY_SECRET_KEY コントロールパネルから取得した SecretAccessKey
PATH %NIFTY_CLOUD_HOME%\bin

動作確認

nifty-describe-images コマンドを実行してみます。

> nifty-describe-images

以下のような結果が返って来れば成功です。
エラーになる場合は、AccessKey/SecretAccessKey、環境変数などを見直してみてください。

IMAGE  1   CentOS 5.3 32bit Plain                available  public    i386    machine      centos   disk
IMAGE  2   CentOS 5.3 64bit Plain                available  public    x86_64  machine      centos   disk
IMAGE  3   Red Hat Enterprise Linux 5.3 32bit    available  public    i386    machine      redhat   disk
IMAGE  4   Red Hat Enterprise Linux 5.3 64bit    available  public    x86_64  machine      redhat   disk
IMAGE  6   CentOS 5.3 32bit Server               available  public    i386    machine      centos   disk
IMAGE  7   CentOS 5.3 64bit Server               available  public    x86_64  machine      centos   disk
IMAGE  12  Microsoft Windows Server 2008 R2      available  public    x86_64  machine      windows  disk
サーバーの作成

サーバーの作成は nifty-run-instances コマンドを実行します。
最低限必要なオプションは以下の通りです。

--accounting-type 料金プラン 1:月額課金 2:従量課金(指定しない場合は従量課金になります)
--instance-type タイプ(mini~large16までを指定します)
--instance-id サーバー名(指定しない場合は自動的に名前が付与されます)
--key SSHキー名(サーバーにログインするためのSSHキーを指定します)
--password root のパスワード(Windows の場合は --admin も指定します)
OSイメージID nifty-describe-images コマンドで表示されるイメージIDを指定します。

ここでは、以下のサーバーを作って見たいと思います。
・料金プラン:月額(1)
・タイプ:mini
・サーバー名:api001
・OSイメージ:CentOS 5.3 64bit Server (7)

<pre> nifty-run-instances --accounting-type 1 --instance-type mini --instance-id api001 --key key001 --password ****** 7

以下、結果が返ってくれば作成要求自体は成功です。

INSTANCE  api001  CentOS 5.3 64bit Server      pending  key001      mini  2011-03-23T10:49:01+09:00  ap-japan-1a      monitoring-disabled          disk    1

↑ただし、ステータスが「pending」となっているので、まだ作成処理中になります。

サーバーの状態確認

上記で作成したサーバーの状態を確認するためには nifty-describe-instances コマンドを実行します。
オプションにはサーバー名を指定しますが、指定しない場合はすべてのサーバーの情報を取得できます。

今回は一台だけしか作成していないのでオプション無しで実行してみます。

> nifty-describe-instances
INSTANCE  api001  7      pending  key001      mini  2011-03-23T10:49:01+09:00  ap-japan-1a      disabled          disk  1

先ほど作成したサーバー情報が取得できましたが、まだ「pending」の状態ですので処理中になります。
しばらく待ってから再度実行してみます。

> nifty-describe-instances
INSTANCE  api001  7  111.*.*.*  10.*.*.*  running  key001      mini  2011-03-23T10:49:01+09:00  ap-japan-1a      disabled  111.*.*.*  10.*.*.*  disk  1

ステータスが「running」となり IP アドレスも取得できている事が確認できます。

コントロールパネルでもサーバーが作成されている事を確認してみましょう。

006
↑めでたく作成されました。

サーバーの停止

サーバーの停止は nifty-stop-instances を実行します。
オプションにはサーバー名を指定します。

先ほど作成したサーバーを停止してみます。

> nifty-stop-instances api001
INSTANCE  api001  running  pending

しばらく待ってから nifty-describe-instances を実行してみます。

> nifty-describe-instances
INSTANCE  api001  7      stopped  key001      mini  2011-03-23T10:49:01+09:00  ap-japan-1a      disabled          disk  1

ステータスが「stopped」になっている事が確認できます。

サーバーの起動

サーバーの起動は nifty-start-instances を実行します。
オプションにはサーバー名を指定しますが、タイプ、料金プランを指定して起動することもできます。

今回は、タイプを small にして起動してみます。

> nifty-start-instances "api001,instance-type=small"
INSTANCE  api001  stopped  pending

しばらく待ってから nifty-describe-instances を実行してみます。

> nifty-describe-instances
INSTANCE  api001  7  111.*.*.*  10.*.*.*  running  key001      small  2011-03-23T10:49:01+09:00  ap-japan-1a      disabled  111.*.*.*  10.*.*.*   disk  1

ステータスが「running」、タイプも「small」になっている事が確認できます。

REST API、SDK for Java について

今回、ご紹介しました CLI も含め、REST API、SDK for Java については、以下に詳しい説明がありますのでご参照ください。
http://cloud.nifty.com/api/