CloudGarage
[機能アップデート]

CloudGarage Public API の提供を開始しました!

CloudGarage
CloudGarage開発チーム

こんにちは。CloudGarage 開発チームです。

本記事はCloudGarage Advent Calendar 2018の6日目の記事です。
昨日はryosms さんの「DAPを利用してCockroachDBのクラスタを作ってみてる話」でした。
DAP のご利用ありがとうございます!
DAP についての詳細はこちらをご覧ください(宣伝です)。

明日はCloudGarageセッションチームよりベンチマークテストの結果を掲載いたします。乞うご期待!

本日、ユーザーの皆様から熱くご要望をいただいていたPublic API の公開を開始しました!
そこで、本記事では提供しているAPI の一つ、「インスタンス作成API」(以下、本API)について解説したいと思います。
本API を利用することでコントロールパネルを経由せずにインスタンスの作成が可能になります!便利!!!

はじめに

はじめに、Public API のご利用方法についてはFAQ を参照ください。
提供しているAPI の一覧はCloudGarage API リファレンスを参照ください。

本API について

本API のアクセスURI や指定できるパラメータについてはCloudGarage API リファレンスを参照ください。
CloudGarage API リファレンスにサラっと書いてありますが、
コントロールパネル経由でのインスタンス作成とは多少仕様が異なっている部分があります。

– 契約ID を指定しないでインスタンス作成が出来る

この点が一番大きい違いではないでしょうか。
CloudGarage プランを契約しているユーザーさんは本API 呼び出し時に契約ID(contract_id)をリクエストに含める必要はありません。
contract_id を省略した場合、指定したspec のインスタンスが作成可能な契約を自動的に検出してインスタンス作成を行います。
CloudGarage プランを持っていない、あるいは、インスタンスが作成できるリソースの容量が残っていない場合は400 Bad Request を返却します。
BOX プラン、WPH プランの契約を利用したい場合はcontract_id の指定は必須です。

– BOX プラン、WPH プランの契約を利用した場合はスペックは自動で決定する

BOX プラン、WPH プランの契約を使用する場合は自動的に商品に基づいたスペックの値を利用します。
そのため、本API 呼び出し時にスペック(spec)をリクエストに含める必要はありません。リクエストにspec オブジェクトを含めている場合は無視されます。
たとえば、本API 実行時に「BOX5/4GB プラン」の契約を利用した場合は「CPU 3 Core / Memory 4GB / Disk 150GB」のインスタンスが作成されます。

– WPH プラン、Welcart 専用プランの契約を利用した場合は専用のイメージを自動で使用する

WPH プラン、Welcart 専用プランの契約を使用する場合は自動的に専用のイメージを利用します。
そのため、本API 呼び出し時にイメージのUUID(image_id)をリクエストに含める必要はありません。リクエストにimage_id を含めている場合は無視されます。

– ユーザがアップロードしたISO イメージではインスタンス作成は出来ない

本API で指定できるイメージはCloudGarage で提供しているイメージ、あるいは、インスタンスのバックアップイメージのみとなります。
VNC コンソールでのインストール作業が必要となる理由から、アップロードしたISO イメージはご利用いただけません。
ご不便をおかけしますが、ISO イメージを利用したインスタンス作成に限っては従来どおりコントロールパネル経由での操作をお願いいたします。

– その他

リクエストパラメータのcontract_id とspec オブジェクトの両方が指定されていない場合は400 Bad Request を返却します。

使ってみる

では、実際に本API を利用してインスタンスの作成にチャレンジしたいと思います!

まずはToken を発行します。

インスタンス作成に利用するイメージのUUID をhttps://api.cloudgarage.jp/images を呼び出して取得します。
今回はCentOS 7.5 64bit のイメージを利用します。

– CloudGarage プランを利用してインスタンスの作成を試す

まずはシンプルにcontract_id を指定せずにスペックを指定してインスタンス作成を行ってみます。
本API が正常に完了すると作成したインスタンスのUUID がレスポンスとして返ってきます。
インスタンス情報も併せて確認してみると無事に作成が出来ました!

念のためコントロールパネルも確認すると、きちんとCloudGarage プランとしてインスタンスが作成されています。

– BOX プランを利用してインスタンスの作成を試す

もう一つ、今度はBOX プランを利用してのインスタンス作成を行ってみます。
先ほど作成した一つ目のインスタンス作成時のリクエストとの違いは、spec オブジェクトを指定せずにcontract_id を指定しています。

コントロールパネルを確認すると、BOX プランの契約でインスタンスが作成されています。
インスタンスのスペックはプランのサイズに準拠しています。

– 接続許可設定を指定してインスタンスの作成を試す

最後に、接続許可設定も指定してインスタンスを作成してみたいと思います。

リクエスト用に以下の内容でjson ファイルを用意し、そのファイルを利用してインスタンス作成を行ってみます。

コントロールパネル経由でインスタンスの情報を確認すると、リクエストのports オブジェクトに指定した内容に基づいてインスタンスに接続許可設定がされています。

おわりに

いかがでしたでしょうか?
本API を利用する事でこれまでよりも気軽にインスタンスを作成出来るようになったのでは無いでしょうか?
特に、一度に同じようなスペックのインスタンスを複数台調達したい!というシーンに遭遇した方にとっては「もっと早く提供してくれれば良かったのに・・・」と思われる機能かもしれません。

今後の展望として、Public API 経由でのスケールアップ・ダウンや、インスタンス設定の更新などの操作もできるように機能拡充をしていく予定です。
この機能をPublic API 化して欲しい!という要望がございましたら気軽に「#cloudgarage」タグを付けてツイートしていただいたり、公式Twitter アカウントまでご意見を頂戴できればと思います!
また、Public API を利用していただいた感想もどしどしお待ちしております!

今後ともCloudGarage をよろしくお願い申し上げます。

CloudGarage 開発チームでした。

この記事を書いた人

CloudGarage開発チーム

CloudGarage開発チームのスタッフです。CloudGarageへのご質問・ご要望などありましたらお気兼ねなくご意見をいただければm(_ _)m

オススメの記事

ページトップへ