本文へジャンプします。

こんにちは、わたなべです。先月はいろいろあり記事を書く時間が取れず2ヶ月ぶりのエントリーです。

さて、去る3/24にNifty Cloudにエンハンスがあり待望の REST API が提供されました。同時にJava SDK,CLIの提供も始まりました。

SOAP I/Fに比べて扱いやすいREST APIの提供を心待ちにしていた方は多いのではないかと思います。残念ながら現状公式に公開されたSDKは、Javaのみとなっており私が普段の開発に使用しているPHP用のSDKは提供されていません。

折角RESTのAPIが提供されたのに使えないのは癪だな〜…(^^;、ということで先日からREST API で色々と遊んでいました。

出来るだけ汎用的に使える様に考えていたら、SDKに近いものができ上がったので紹介させていただこうと思います。

なお、このSDKは私が個人的に開発した非公式な物です。Niftyさんは開発には関わっておりませんので、問い合わせなどはしないようお願いします。

Unofficlal NIFTY Cloud SDK for PHP

Unofficlal NIFTY Cloud SDK for PHPのソースコードはgithubで公開しているので下記を参照してください。

Unofficlal NIFTY Cloud SDK for PHP

事前準備

REST APIを使用するには、認証キーが必要なのでコントロールパネルの「API認証」メニューよりREST APIの認証キー(AccessKey ,SecretAccessKeyの2つ)を取得しておいてください。

SDKの設置
アーカイブをダウンロードする方法

最新のバージョンのアーカイブがありますので以下からダウンロードして使用できます。

v0.1aのダウンロード

$ wget "https://github.com/kaz29/unofficial-niftycloud-sdk-for-php/zipball/v0.1a"
$ unzip kaz29-unofficial-niftycloud-sdk-for-php-v0.1a-0-g0a59355.zip
$ mv kaz29-unofficial-niftycloud-sdk-for-php-0a59355 niftycloudsdk
gitコマンドで取得する方法

git コマンドで取得する場合は下記の様になります。

$ git clone https://github.com/kaz29/unofficial-niftycloud-sdk-for-php.git niftycloudsdk
サンプルを動かしてみる

設置が完了しましたので、早速サンプルを動かしてみましょう。

認証情報の設定

SDKを使用できる様に事前に取得しておいた認証キーを設定します。samplesディレクトリに設定ファイルのサンプル(settings.php.sample)がありますのでそれをコピーして各自の設定を行ってください。

$ cd niftycloudsdk/samples
$ cp settings.php.sample settings.php
$ vim settings.php
'ここにSecretAccessKeyを入れてください',
    'access_key' => 'ここにAccessKeyを入れてください。', 
    'instance_id' => "ここにテストで使用するインスタンスIDを入れてください。", 
    'key_name' => 'ここにテストで使用するSSH Key IDを入れてください', 
);
  • secret_key
  • 事前に取得したSecretAccessKeyを設定してください

  • access_key
  • 事前に取得したAccessKeyを設定してください

  • instance_id
  • サンプル実行時に使用するサーバー名を設定してください。ここで指定したサーバー名でテスト用のサーバーを作成しますので、"APITEST"の様に分かりやすいIDを指定すると良いと思います。
    サーバー名は、英数字1~15文字で指定してください。

  • key_name
  • サンプル実行時に使用するSSHキー名を指定してください。サンプルでサーバー作成をする際にこのSSHキー名を使用してサーバーが作成されます。

サーバーの作成

まずはサーバー作成APIの使用方法を解説します。以下がサーバー起動APIを使用する場合のサンプルです。

// samples/run_instances.php の抜粋
$result = $api->run_instances(array(
'ImageId' => 1,
'KeyName' => $params['key_name'],
'InstanceType' => 'mini',
'InstanceId' => $params['instance_id'],
'AccountingType' => NiftyCloud::ACCOUNTING_TYPE_PAYPER,
'Admin' => null,
'Password' => $params['instance_id'],
));
if ( $api->isError() ) {
echo "Errorn";
} else {
echo "{$result->instancesSet->item->instanceId}: {$result->instancesSet->item->instanceState->name}n";
}

run_instances(サーバー作成)に指定するパラメータの詳細は以下の通りです。

  • ImageId
  • 作成するサーバーのOSイメージIDを指定します。
    デフォルトで用意されているOSイメージのIDは以下の通りです。

    • 1 : CentOS 5.3 32bit Plain
    • 2 : CentOS 5.3 64bit Plain
    • 3 : Red Hat Enterprise Linux 5.3 32bit
    • 4 : Red Hat Enterprise Linux 5.3 64bit
    • 6 : CentOS 5.3 32bit Server
    • 7 : CentOS 5.3 64bit Server
    • 12 : Microsoft Windows Server 2008 R2

    オリジナルのOSイメージを作成している場合は保存時に指定したイメージ名を指定する事が出来ます。

  • KeyName
  • 作成するサーバーで使用するSSHキー名を指定します。

  • InstanceType
  • 作成するサーバーのインスタンスタイプを指定します。
    指定可能なインスタンスタイプは下記の通りです。

    • mini
    • small
    • small2
    • small4
    • medium
    • medium4
    • medium8
    • large
    • large8
    • large16

    使用するOSによって指定可能なインスタンスタイプに制限がありますので詳細はNIFTY Cloudのサービス仕様をご確認ください。

  • InstanceId
  • サーバーのIDを指定します

  • AccountingType
  • 利用料金のタイプを指定します。
    指定可能な値は以下の通りです。

    • 1 : 月額課金(NiftyCloud::ACCOUNTING_TYPE_MONTH)
    • 2 : 従量課金(NiftyCloud::ACCOUNTING_TYPE_PAYPER)

  • Admin
  • 管理者アカウント名

    Windows OS選択時のみ指定可能な値ですので今回はnullを指定しています。

  • Password
  • 管理者パスワード

    root / 管理者アカウントのパスワードを指定します。

正常に処理が完了した場合、APIのレスポンスはSimpleXMLのインスタンスになります。応答フィールドの詳細についてはAPIのリファレンスを参照してください。

その他のサンプルについて

現在用意してあるその他のサンプルは以下の通りです。

  • describe_availavility_zones.php
  • 利用可能なゾーンの情報を取得

  • modify_instance_attribute.php
  • 指定したサーバーの詳細情報を更新

  • stop_instances.php
  • 指定したサーバーを停止

  • describe_instances.php
  • 指定したサーバーの情報を取得

  • terminate_instance.php
  • 指定したサーバーを削除

まとめ

今回紹介した以外の機能に関しても一通り実装はすんでいますので、今後紹介しようと思っています。ご利用になった、感想や要望があれば@kaz_29github宛にお寄せください。もちろんご自身で改造しいただいても構いません!有益な修正が出来たらpullリクエスト頂ければうれしいです。

また、若干無茶っぽい非公式SDKの公開を快く承諾してくださったNIFTY Cloudチームの皆さんありがとうございました!

最後に再度念のため…、このSDKは私わたなべが個人的に開発した物ですのでくれぐれもNIFTYさんに問い合わせ等しないようお願いしますね!

ニフティクラウド 導入相談窓口
ニフティクラウド 無料セミナー

閉じる

閉じる

クラウドブログ編集部

クラウドブログ編集部

ニフティクラウド ユーザーブログ編集部のアカウントです。 編集部からのお知らせや、レギュラーライター以外のゲストによる寄稿記事を掲載していきます。

浜中 慶

浜中 慶

1980年、神奈川県生まれ。2003年ニフティ入社。 ポータルサイト開発を中心に、音楽配信サービス、CGMサービスなど様々なプロジェクトに企画/デザイン/システム担当として参加。現在は@niftyのポータルサービス向けコンテンツ管理システムの企画/開発/運用を担当。

吉田 雄哉

吉田 雄哉

株式会社co-meetingの創業メンバー。「取締役&External- facing Technologist」と名乗り新しいIT技術を広く伝える活動とWebアプリケーション開発を行う毎日。パッケージベンダーでのSaaS立上げ・製造業の情報システム部門で企画やPM・受託開発と従事してきたため、ベンダーサイドとユーザサイド の両方の視点を持ち合わせる。

石田 健亮

石田 健亮

株式会社ドリーム・アーツで小売事業者向けSaaS「Shopらん」を企画、開発。メインの仕事はプログラマーだがサーバー管理や営業もこなすユーティリティプレイヤー。最近好きな事はパフォーマンスチューニング。特に並列化プログラミングがマイブーム。キライなことはデータセンターでの作業。騒音と乾燥が弱点。ニフティクラウドでデータセンターに行く必要が無くなったことが本当の利点だ と思っている。

五月女 雄一

五月女 雄一

ニフティでは「インフラを守る簡単な様で奥が深いお仕事」をしています。 夢はインフラの気持ちが読めるエンジニアになること。

わたなべ かずひろ

わたなべ かずひろ

専門学校卒業後、ソフトウェア開発会社で電力系統制御システムの開発に従事。その後、CD-ROM等マルチメディア系PCソフトの開発を経て、1998年フリーランスに。 2000年8月に株式会社イーツーの設立に参画。携帯を含む様々なWeb系のシステム開発に携わる。現在はiPhone/Androidアプリなどの開発も手がけている。

市角

市角

ニフティクラウドのコントロールパネル設計・開発をメインに、たまにインフラの運用やお手伝いもやっていたりします。コントロールパネルや新機能の活用方法、アイデアなどを中心に書いていく予定です。

仲山 昌宏

仲山 昌宏

歌って踊れるインフラエンジニア兼、PHPもRubyもJavaも書くPerl使い。 物理サーバの運用に飽きて、フルラックに格安サーバ詰めて自宅プライベートクラウドを構築中。 今年は個人的には分散処理を攻めていきます。

猪飼 賢広

猪飼 賢広

1984年、愛知県名古屋市生まれ。大学は福島県にある某大学。2008年ニフティに入社。 開発系部署に配属後、主に各種テーマサイト開発のシステム面調整、開発進行管理役などとして参加。 現在もPC・ガラケーサイトの開発まわりを担当。インフラまわりを触る案件にも携わっており、日々修行中。 好きな芸人はなかやまきんに君とレイザーラモンRG。

久江 裕之

久江 裕之

ニフティクラウドのインフラ運用、OS提供の仕事をしています。 新しいOSやイメージが出る時にこのブログでご紹介いたします。入社5年目。一流のインフラエンジニアを目指して日々勉強中。

竹内 豪

竹内 豪

ニフティクラウド エンジニア

山口

山口

ニフティクラウドの基盤設計、新サービス/アライアンス/インフラ企画、その他雑用全般を担当しています。 クラウドに欲しい機能や、こんなふうに使ってほしいという想いが共有できれば良いですね。

芳中 隆幸

芳中 隆幸

ニフティクラウドの開発、運用を担当しています。

酒井 浩平

酒井 浩平

ニフティクラウドの中にいます。 ネットワークまわりの運用・開発や自動化などに取り組んでいます。 すべてのエンジニアを幸せにすることを目指しています。

higebu

higebu

ニフティクラウド IaaSのエンジニアです。 ネットワーク、DRサービス with VMware vCloud® Air™ Technology辺りの担当をしています。

武田

武田

ニフティクラウドの開発・運用を担当しています。 各種機能の内容についてなどで執筆させていただく予定です。

森藤 大地

森藤 大地

データに関する仕事が好きです。

宮原徹

宮原徹

日本仮想化技術株式会社 代表取締役社長兼CEO。仮想化技術に関するコンサルタントとして長年活動しており、特にベンチマークテストによる性能評価を得意としている。

荒谷翔

荒谷翔

株式会社はてなでMackerelのセールスデベロッパーとして勤務しています

東條 望

東條 望

2014年にニフティへ中途入社。 入社後から現在まで、ニフティクラウドのサービス企画・開発を担当しています。 各サービスの紹介を執筆させていただく予定です。