本日、ニフティクラウド 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認証」をクリックします。
2.認証キーの「新規作成」ボタンをクリックします。
3.確認ダイアログが出ますのでOKボタンをクリックします。
4.SecretAccessKeyが表示されるので、コピーして保存しておきます。
【ご注意】
SecretAccessKey が外部に漏れると、第三者から API が実行される可能性があります。外部に漏れないよう、SecretAccessKey の取り扱いには十分ご注意ください。
5.ダイアログを閉じると、認証キー欄にAccessKeyが表示されているので、こちらもコピーして保存しておきます。
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 アドレスも取得できている事が確認できます。
コントロールパネルでもサーバーが作成されている事を確認してみましょう。
サーバーの停止
サーバーの停止は 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/