SlideShare a Scribd company logo
1 of 86
(C)Copyright 1996-2016 SAKURA Internet Inc.
【入門編】
インフラエンジニアなら「さくらのクラウド」をAPIでいじろう
初めての人のためAPI入門! APIをコマンドラインで触ってみよう
2016年3月3日
さくらインターネット株式会社
エバンジェリスト
寺尾 英作
今日は・・・
• 諸般の事情でCLIが不調のため
• APIをコマンドラインから叩く方法をご説明しま
す
• 今日帰ってすぐ使えるコマンドをご紹介します。
http://bit.ly/1tzFx8z
今日の資料ダウンロードはこちら
画面が見にくい場合は、スマホなどで
拡大して見てください
http://www.slideshare.net/eisakuterao/20160619-sakuracloudap-iatoscdo
会社概要
東京支社外観
商 号 さくらインターネット株式会社 (東証一部:3778)
大阪本社
東京支社
大阪市中央区南本町1-8-14 堺筋本町ビル9F
東京都新宿区西新宿7-20-1 住友不動産西新宿ビル33F
設 立 1999年8月17日 (サービス開始: 1996年12月23日)
資 本 金 8億9,530万円
売上高 105億7,600万円(2015年3月期)
事業内容
インターネットでのサーバの設置及びその管理業務
電気通信事業法に基づく電気通信事業
従業員数 266名(2015年3月末現在)
所属団体
社団法人日本ネットワークインフォメーションセンター 会員(JPNIC)
特定非営利活動法人日本データセンター協会 会員(JDCC)
社団法人インターネットプロバイダー協会 会員(JAIPA)
グリーン・グリッド(The Green Grid)
IPv6普及・高度化推進協議会 会員
ASP・SaaSインダストリ・コンソーシアム 会員 など
4
データセンターの概要
業界トレンドと幅広い利用者からのニーズを反映したデータセンター
様々なサービスが集約できる
国内最大級の拡張性を持つ郊外型データセンター
郊外型データセンター
オフィス至近、豊富な配信実績を持つ
都市型データセンター
都市型データセンター
石狩
東京
大阪
●用途
ホスティング、VPS、クラウド、ハウジング
●総ラック数
2,700基(2015年4月現在)
●顧客数
約360,000件(2015年4月現在)
5
データセンターへの入局や機
器の設置といった物理作業の
すべてを代行するサービス
サービスラインアップ
ハウジング
サービス
会員制サイト、キャンペーンサイト
エンタープライズ
インターネットメール、Webサイト運営
ネットビジネス、電子商取引、動画・音楽配信
専用サーバ Platform St
専用サーバ Platform Ad
レンタルサーバ
サービス
ハウジング
専用サーバ
サービス
さくらの
マネージド
サーバ
さくらの
レンタル
サーバ
1台を共有1台を専有
1台 ~ 複数台
・サービスの主な利用用途
仮想サーバ
サービス
さくらのVPS
仮想化技術を用
いて、1台の物
理サーバ上に複
数の仮想サーバ
を構築し、仮想
専用サーバとし
て利用するサー
ビス
クラウド
サービス
高性能サーバと拡張
性の高いネットワー
クを圧倒的なコスト
パフォーマンスで実
現
SNS、Webアプリケーション、SaaS、ASP
リモートハウジング
※石狩データセンターで提供
6
7
クラウド
クラウドとは
“クラウドとはコンピュータ資源を必要なとき必要
なだけ簡単に使える仕組み”
8
クラウドコンピューティングとは、ネットワーク、サーバ、ストレージ、アプリ
ケーション、サービスなどの構成可能なコンピューティングリソースの共用プール
に対して、便利かつオンデマンドにアクセスでき、最小の管理労力またはサービス
プロバイダ間の相互動作によって迅速に提供され利用できるという、モデルのひと
つである(NISTの定義)
アメリカ国立標準技術研究所
さくらのクラウドの説明
ブラウザだけで「仮想データセンター」を操作
ブラウザから、サーバ・スイッチなど「仮想データセンター」を操作
物理サーバとも接続できる
コストパフォーマンスが高い物理サーバとも接続
料金プランは1つ、自動的に最安値にセット
利用開始から20日未満は日割り、20日の時点で月額料金が適用
さくらのクラウドの説明
• サーバの作成
• サーバのプラン変更(スケールアップ/ダウン)
• クローン(サーバの複製)
• NICの追加(10個)
• DNS逆引きレコード設定
• ロードバランサ(通常/ハイスペック)
• ディスクの作成・追加
• アーカイブ(スナップショット)の作成
• パケットフィルタの作成
• 仮想スイッチの作成
一般的な「クラウド(=IaaS)」で
「できる事」はほぼできます。
データセンターをブラウザからセッティング
11
ブラウザからまるでデータセンターにいるように、サーバや
スイッチのセットアップが可能です
「物理データセンター」とも接続できる
12
ハイブリッド接続を利用すれば「物理データセンター」であ
る「さくらの専用サーバ」や「リモートハウジング」さらに
「ハウジング」とも接続可能
その他の特徴
13
日本法
VLANで仮想ネットワーク
ロケーションの公開
当社のデータセンターは石狩と東京とおおまかなロケーショ
ンを公開しております
(当たり前ですが)当社のクラウドは日本法が適用されます
セキュリティグループではなく、VLANで仮想ネットワーク
を構築できます。
イベントログ
14
コントロールパネルやAPIからリソースの作成・削除・
起動・停止、設定変更などを行った操作を記録し利用者自身
が確認できるようになる機能です
テストゾーン(Sandbox)
15
テスト用ゾーン「Sandboxゾーン」では、無償でAPI動作確
認が可能です。APIを使用して自動操作するなどの独自スク
リプトの動作確認用に最適です。
こんな悩みがあるでしょうか
・受注のたびに同じ手順で作業してるけど、
この手順を自動化したい
・何かをトリガーにして自動で再起動したい
・コンパネでは作業手順を書いたり、作業ロ
グを取るのが難しい
・さくらからの請求を元にお客さんに
請求書を出したい
・請求内容の分析がしたい
クラウドAPI
請求関連API
解決できます!
さくらのクラウドを操作する4つの方法
・さくらのクラウド API クライアントライブラリ saklient
・コマンドライン操作ツール node-sacloud
・さくらのクラウド API
・さくらのクラウド コントロールパネル
API
sacloud CLI
コンパネ
saklient
+独自スクリプト
#!/bin/bash
さくらの
クラウド
4つの操作方法
コマンドライン操作ツール node-sacloud (sacloud CLI)
https://github.com/sakura-internet/node-sacloud/
(更新停滞中)
さくらのクラウドクライアントライブラリ saklient
http://sakura-internet.github.io/saklient.doc/
さくらのクラウド API 1.1
http://developer.sakura.ad.jp/cloud/api/1.1/
REST と JSON
API を使うにはREST とJSONは避けて通れません
REST (Representational State Transfer )とは
Webアーキテクチャスタイル(設計思想)の一つ。
同じURLやパラメータの組み合わせ時には、常に同じ結果が返されること
が期待される。
システムの状態やセッションに依存しない。
RESTに準拠したインタフェースのことをRESTful API と呼びます。
さくらのクラウドのAPIもRESTful APIです
JSON
JSON(ジェイソン、JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文は
JavaScriptにおけるオブジェクトの表記法をベースとしているが、JSONはJavaScript専用のデータ形
式では決してなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しに使える
よう設計されている。
表記方法
JSONで表現するデータ型は以下の通りで、これらを組み合わせてデータを記述する。true, false, null
などは全て小文字でなくてはならない。
• 数値(整数、浮動小数点数)
• 文字列(バックスラッシュによるエスケープシーケンス記法を含む、ダブルクォーテーションでく
くった文字列)
• 真偽値(trueとfalse)
• 配列(データのシーケンス)
• オブジェクト(順序づけされていないキーと値のペアの集まり。JSONでは連想配列と等価)
• null
数値は10進法表記に限り、8進、16進法表記などはできない。また浮動小数点数としては1.0e-10と
いった指数表記もできる。
文字列は(JSONそれ自体と同じく)Unicode文字列である。基本的にはJavaScriptの文字列リテラルと
同様だが、囲むのにシングルクォートは使えない。バックスラッシュによるエスケープがある。
Wikipediaより引用 https://ja.wikipedia.org/wiki/JavaScript_Object_Notation
JSON(2)
配列はゼロ個以上の値をコンマで区切って、角かっこでくくることで表現する。例えば以下のように表
現する:
["milk", "bread", "eggs"]
オブジェクトはキーと値のペアをコロンで対にして、これらの対をコンマで区切ってゼロ個以上列挙し、
全体を波かっこでくくることで表現する。例えば以下のように表現する:
{"name": "John Smith", "age": 33}
ここで注意することはキーとして使うデータ型は文字列に限ることである。したがって、
{name: "John Smith", age: 33}
という表記は許されない。この後者の表記はJavaScriptのオブジェクトの表記法としては正しいが、
JSONとしては不正な表記である。
エンコーディング
JSONテキストはUnicodeでエンコードするとされている (SHALL)。デフォルトのエンコーディングは
UTF-8である。
Wikipediaより引用 https://ja.wikipedia.org/wiki/JavaScript_Object_Notation
{
"Total": 検索条件にマッチする全レコード数: int,
"From": 取得された最初のレコードのオフセット: int,
"Count": 取得されたレコード数: int,
"リソース名": [
"リソース情報": object,
"リソース情報": object,
...
]
}
さくらのクラウド API 基礎知識
さくらのクラウド API 1.1
http://developer.sakura.ad.jp/cloud/api/1.1/
API URL(エンドポイントのベースURL)
https://secure.sakura.ad.jp/cloud/zone/tk1a/api/cloud/1.1/ (東京第1ゾーン)
https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/ (石狩第1ゾーン)
https://secure.sakura.ad.jp/cloud/zone/is1b/api/cloud/1.1/ (石狩第2ゾーン)
https://secure.sakura.ad.jp/cloud/zone/tk1v/api/cloud/1.1/ (Sandbox)
エンドポイントのURL
ベースURL パス
https://secure.sakura.ad.jp/cloud/zone/tk1a/api/cloud/1.1 /server
ゾーン バージョン
今日のレシピ
• APIを使えるようにする
• 共通仕様説明(つまらないです)
• サーバの操作
1. サーバプラン取得
2. ディスクの作成
3. サーバとディスクの接続
4. ディスクの修正
5. 電源投入 / 電源OFF
6. サーバ一覧
• シンプル監視設定
• オートスケーリング
– スクリプトの紹介
• 料金の確認
– プライスリストの確認
– 料金の確認
さくらのクラウド API を使えるようにする
アカウント管理の概要
会員ID アカウントA
アカウントB
ユーザA
ユーザB
┗APIキーA1
┗APIキーA2
┗APIキーB1
• API キーはアカウントに紐付きます。
• アカウントに対して、複数のAPIキーが作成できます
• APIキーにアクセスレベル・アクセス権を設定することが出来ます。
アクセスレベル:無効<リソース閲覧<電源操作<設定編集<作成・削除
アクセス権:請求情報(リソース閲覧以上のアクセスレベルが必要です)
• APIキーはユーザー権限でも作成することは可能ですが、当該ユーザが当該アカウント
に対するアクセスレベルを超えるAPIキーの作成は出来ません。
コンパネでAPIキーを作成する(1)
APIキーは、さくらのクラウドコンパネで作成します。利用するアカウントを選択し、
さくらのクラウドの「IaaS」にアクセスし、上のメニューにある「設定」をクリックし
ます。
コンパネでAPIキーを作成する(2)
左のメニューにある「APIキー」をクリックします。
コンパネでAPIキーを作成する(3)
上のメニューにある「+追加」をクリックします。
コンパネでAPIキーを作成する(4)
APIキーの詳細を入力します。入力が終わったら[追加]をクリックします。
コンパネでAPIキーを作成する(5)
作成が完了しているかを確認します。
詳細を確認するには、該当行をダブルクリックします。
コンパネでAPIキーを作成する(6)
アクセストークンと、アクセストークンシークレットをメモします。
アクセスレベルやアクセス権が正しいことを確認します。以上で作成完了です。
この例ではリソースの閲覧と請求情報への
アクセスが許可されています。
簡易リクエスト方法
メソッドは GET / POST / PUT / DELETE の4種類あります。
GET 情報の取得
POST リソースの登録・作成
PUT リソースの部分登録・変更
DELETE リソースの削除
簡易リクエスト方法
パラメータやデータが無い例
サーバの検索・一覧を取得するには、以下のようなURLパスにリクエストを送ります。説明では
ベースURLを省略をして記載します。
GET /product/server
curl --user "Access_Token":"Access_Token_Secret" 
-X GET ¥
https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/product/server ¥
| jq . | more
↓これを、curlで実行するためには以下のようなコマンドでアクセスをします。
アクセストークンとシークレットをコロン区切って指定。
作成した物に置換してください
APIベースURL(リージョン指定) API パス
メソッド
簡易リクエスト方法
メソッドの指定と、URLパラメータの指定がある例
「リソースの解放」インタフェースを持つAPIが返すレスポンスは、以下のようなオブジェクト
構造を持ちます。
PUT /server/:serverid/power
curl --user "Access_Token":"Access_Token_Secret" 
-X PUT -d '' 
https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/server/:serverid/power
↓
メソッド
URLパラメータ(変数)
: (コロン)+パラメータ名で記載します
簡易リクエスト方法
リクエストデータがある例
以下の例は、:serverid に対して、サーバ名を変更するためのリクエストです。データはJSON
形式で送信します。
PUT /server/:serverid
{
"Server":{
"Name":"New Server Update”
}
}
curl --user "Access_Token":"Access_Token_Secret" 
-X PUT -d '{"Server":{"Name":"New Server Update"}}' 
https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/server/:se
rverid
↓ 送信データ
curlでは-dの後に送信データ
を指定します
さくらのクラウド API 共通仕様
サーバを作成する
• その前に
2xx系 成功
3xx系 情報
4xx系 一時的失敗
5xx系 失敗
ステータスコード 内容
200 OK
正常に処理され、何らかのレスポンスが返却さ
れた。
201 Created
正常に処理され、何らかのリソースが作成され
た。
例:仮想サーバを作成した
202 Accepted
正常に受け付けられたが、処理は完了していな
い。
例:ディスクの複製を開始したが、まだ完了し
ていない
204 No Content 正常に処理され、空のレスポンスが返却された。
ステータスコード 内容
305 Use Proxy
Locationフィールドに示されたプロクシ経由
でのアクセスが必要。
ステータスコード 内容
500 Internal
Server Error
内部エラーが発生した。
例:PHPエラーが発生した。
503 Service
Unavailable
何らかの事情によりサービスが利用可能
でない。
例:DB接続に失敗した
次ページ参照
サーバを作成する
4xx系 成功
ステータスコード 内容
400 Bad Request
リクエストパラメータが不正等。
例:許可されないフィールドに対し、負の値、過去の日付、異なる型の値等が指定されている
401 Unauthorized 認証に失敗した。
403 Forbidden
リソースへのアクセス権限がない。
例:/user/sakurai というリソースの上位にある /user にアクセスしたが、このリソースは一般
ユーザにはアクセスできない。
404 Not Found
リソースが存在しない。
例:taroというユーザはいないのに /user/taro というリソースにアクセスした。
405 Method Not Allowed
要求されたメソッドは非対応。
例:/zone/5 というリソースにPUTメソッドは許可されていない。
406 Not Acceptable 何らかの事情でリクエストを受け入れられない。 例:残りの空きリソースがない
408 Request Time-out リクエストがタイムアウトした。
409 Conflict
リソースの現在の状態と矛盾する操作を行おうとした。
例:仮想サーバの電源が既に入っているのに、電源を投入しようとした。
411 Length Required リクエストヘッダーにLengthが含まれていない。curlコマンドの場合、curl -d ''で回避できる。
413 Request Entity Too Large
リクエストされた処理にかかる負荷が対応可能な範囲を越えた。
例:アップロードファイルのサイズ制限を越えた
415 Unsupported Media Type
リクエストされたフォーマットに対応していない。
例:画像データを返すリソースに対し、CSVフォーマットを要求した。
共通インタフェース
• 「リソースの検索」共通インタフェース
• レスポンスの共通仕様
• リクエストパラメータの共通仕様
• ページング / ソート / フィルタリング / 取得キーを除外 / 取得キーの選択
• 各オプション指定時の挙動
• リソース取得(GET)
• レスポンスの共通仕様
• リクエストパラメータの共通仕様
• 取得キーについて
• リソース登録(POST)
• レスポンスの共通仕様
• リクエストパラメータの共通仕様
• 返却件数の指定 /返却件数の排除
• リソース設定(PUT)
• レスポンスの共通仕様
• リクエストパラメータの共通仕様
• リソース解放(DELETE)
• レスポンスの共通仕様
• リクエストパラメータの共通仕様
「リソースの検索」共通インタフェース
レスポンスの共通仕様
「リソースの検索」インタフェースを持つAPIが返すレスポンスは、以下のようなオブジェクト
構造を持ちます。
{
"Total": 検索条件にマッチする全レコード数: int,
"From": 取得された最初のレコードのオフセット: int,
"Count": 取得されたレコード数: int,
"リソース名": [
"リソース情報": object,
"リソース情報": object,
...
]
}
各リソース情報は、原則として0から始まる通し番号 および リソースIDを表すフィールドを持
ちます。例えば GET /server を取得した結果、全300件中の101~150件目が返された場合は、
以下のようなレスポンスになります。
「リソースの検索」共通インタフェース
{
"Total": 300,
"From": 100, /* 0から始まる通し番号 */
"Count": 50,
"Servers": [ /* 原則としてリソース名の複数形 */
{
"Index": 100, /* 0から始まる通し番号 */
"ID": xxxxxxxxxxxx, /* サーバID */
...
},
{
"Index": 101,
"ID": yyyyyyyyyyyy,
...
},
...
{
"Index": 150,
"ID": zzzzzzzzzzzz,
...
}
]
}
「リソースの検索」共通インタフェース
リクエストパラメータの共通仕様
ページング
検索結果のリソース数が膨大になるとAPIの反応が遅くなるため、取得範囲を限定してページン
グすることを推奨します。 例えば GET /server の101~150件目を取得する場合は、以下のよ
うなパラメータを指定します。
GET /cloud/1.1/server
{
"From": 100, /* 0から始まる通し番号 */
"Count": 50
}
なお、大半のAPIリソースはLimitに一定の上限値が設けられており、省略時もその上限までの
レコード数しか取得できません。上限値はリソースにより異なる場合があります。
「リソースの検索」共通インタフェース
リクエストパラメータの共通仕様
ソート
ソートキーを文字列の配列で列挙することで、ソートすることができます。 単一キーを指定す
る場合は、単一文字列で指定ができます。
GET /cloud/1.1/server
{
"Sort": [ // 優先順に通常配列で指定
"Server.Name", // 昇順
"-Host.Zone.Name" // 先頭にマイナスを付けると降順
]
}
「リソースの検索」共通インタフェース
リクエストパラメータの共通仕様
フィルタリング
• 文字列型カラムは中間一致、その他の型は完全一致のみ対応しています。
• スカラ値を与えると部分一致のAND結合、配列を与えると完全一致のOR結合と見なされま
す。
• 大文字・小文字は区別されません。
• 複数の条件はAND結合されます。
GET /cloud/1.1/server
{
"Filter": {
"Name": "test example", // Name に test と example を両方含みます
"Zone.Name": [ "is1a", "is1b" ],
// Zone.Name が is1a または is1b に完全一致
"CreatedAt <": "2011-09-01T00:00:00+0900”
// 作成日時がこの時刻より前(演算子は時刻・数値カラムのみ使用可)
// (これらをすべて満たすレコードが抽出されます)
}
}
「リソースの検索」共通インタフェース
リクエストパラメータの共通仕様
取得キーを除外
通信量やクライアントのメモリを節約したい場合、取得情報を指定し除外できます。
• 不要なキーの配列をExcludeオプションに指定すると、マッチする要素がレスポンスから取
り除かれます。
• *(アスタリスク)を用いてワイルドカード指定することができます。
GET /cloud/1.1/servers
{
"Exclude": [ "Zone.Name", "Interfaces.*" ]
}
各オプション指定時の挙動
Excludeのみ指定時
Exclude指定されたものを除く、取得可能なすべてのキーを取得
Includeのみ指定時
Include指定されたキーのみ取得
Include, Excludeともに指定時
Includeのみ指定時の取得キーから、Exclude指定されたキーを除いて取得
「リソースの検索」共通インタフェース
リクエストパラメータの共通仕様
取得キーの選択
必要なキーの配列をIncludeオプションに指定すると、マッチする要素以外はレスポンスから取
り除かれます。
*(アスタリスク)を用いてワイルドカード指定することができます。
GET /cloud/1.1/servers
{
"Include": [ "Name", "Status.*", "Zone.ID", "Region.*" ]
}
リソース解放(GET)
レスポンスの共通仕様
「リソースの取得」インタフェースを持つAPIが返すレスポンスは、以下のようなオブジェクト
構造を持ちます。
{
"is_ok": 処理結果, /* boolean (true|false) */
"リソース名": リソース情報, /* object */
}
//原則として、API処理の実行結果はis_ok = true で、判定ができます。
{
"is_ok":true,
"Server": { /* 原則としてリソース名 */
"ID": xxxxxxxxxxxx, /* サーバID */
...
}
}
リソース解放(GET)
リクエストパラメータの共通仕様
取得キーについて
取得キーが指定(限定)できます。「リソースの検索」共通インタフェースのリクエストパラメー
タの取得キーを除外と取得キーの選択を参照してください。
リソース登録(POST)
レスポンスの共通仕様
「リソースの取得」インタフェースを持つAPIが返すレスポンスは、以下のようなオブジェクト
構造を持ちます。
{
"is_ok": 処理結果, /* boolean (true|false) */
}
{
"is_ok": true,
"Token": "GLSzcpLRFnqmq0AqxxxDUpdIXhTzyZ1s”
"Account": { /* 原則としてリソース名 */
"ID": xxxxxxxxxxxx, /* Account ID */
...
},
"CreatedAt": "2012-09-06T12:21:16+09:00",
"ExpiresAt": "2012-09-06T14:21:16+09:00"
}
原則として、API処理の実行結果はis_ok = true で判定ができます。
リソース登録(POST)
リクエストパラメータの共通仕様
返却件数の指定
基本的に、リクエストパラメータは、個々のAPIに依存します。
返却件数の排除
Limit 件数でページングされることを防ぎます。
GET /cloud/1.1/public/account/123456789012/token
{
"From": 0,
"Count": 0,
...
}
リソース設定(PUT)
レスポンスの共通仕様
「リソースの設定」インタフェースを持つAPIが返すレスポンスは、以下のようなオブジェクト構造を持ちま
す。
{
"Success": 処理結果, /* boolean (true|false) */
}
{
"Success": true,
}
原則として、API処理の実行結果はSuccess = true で、判定ができます。
リソース解放(DELETE)
レスポンスの共通仕様
「リソースの解放」インタフェースを持つAPIが返すレスポンスは、以下のようなオブジェクト
構造を持ちます。
{
"Success": 処理結果, /* boolean (true|false) */
"is_ok": API 共通処理結果 /* boolean (true|false) */
}
{
"Success": true,
"is_ok": true
}
原則として、API処理の実行結果はSuccess = true で、判定ができます。 認証やAPI の構文な
ど、技術的な例外が発生したときは、 is_ok = false となります。
今日のレシピ
• APIを使えるようにする
• 共通仕様(つまらなかったですよね)
• サーバの作成
1. サーバ作成
2. ディスクの作成
3. サーバとディスクの接続
4. ディスクの修正
5. 電源ON
6. サーバ一覧
• シンプル監視設定
• 請求の確認
– 料金一覧表の確認
– 過去の請求の確認
• オートスケーリング
– スクリプトの紹介
サーバ作成
サーバ作成の流れ
サーバ作成
サーバプラン
指定
ディスク作成
サーバと接続
ディスクプラン
を指定
パブリックアー
カイブを指定
サーバ起動 サーバ検索ディスク修正
サーバ作成の流れ→
必要な情報の収集
ServerID DiskID
ArchiveID
DiskPlanID
ServerPlanID
これからの説明では、
curl と jq を多用します。
jqの使い方次第で、コマンドラインでの可能性が
広がります。
サーバプランの確認
GET /product/server | jq . | more
レスポンス
{
"is_ok": true,
"ServerPlans": [
{
"Availability": "available",
"ServiceClass": "cloud/plan/1core-1gb",
"MemoryMB": 1024,
"CPU": 1,
"Description": "",
"Name": "プラン/1Core-1GB",
"ID": 1001,
"Index": 0
},
....
サーバの作成をするには、まずサーバプランを指定する必要があります。
こんな感じで取得できるのですが、たくさんプランが出てくるので見にくいです。
サーバプランの取得
GET /product/server?Sort=CPU | jq -c 
".ServerPlans[] | {Availability, ID, ServiceClass,ServiceClass,CPU,MemoryMB}"
{"MemoryMB":1024,"CPU":1,"ServiceClass":"cloud/plan/1core-1gb","ID":1001,"Availability":"available"}
{"MemoryMB":2048,"CPU":1,"ServiceClass":"cloud/plan/1core-2gb","ID":2001,"Availability":"available"}
{"MemoryMB":3072,"CPU":1,"ServiceClass":"cloud/plan/1core-3gb","ID":3001,"Availability":"available"}
{"MemoryMB":4096,"CPU":1,"ServiceClass":"cloud/plan/1core-4gb","ID":4001,"Availability":"available"}
{"MemoryMB":5120,"CPU":1,"ServiceClass":"cloud/plan/1core-5gb","ID":5001,"Availability":"available"}
{"MemoryMB":2048,"CPU":2,"ServiceClass":"cloud/plan/2core-2gb","ID":2002,"Availability":"available"}
{"MemoryMB":3072,"CPU":2,"ServiceClass":"cloud/plan/2core-3gb","ID":3002,"Availability":"available"}
…
GETのリクエストストリングで指定する場合、
JSON形式と、URL形式(a=a&B-b)の2つの方法が
選べます。URL形式の方が楽ちんです。
• SortやFlterでキーを指定する場合は、トップレベルのキー(ここでは`ServerPlans`)は不要です
• jq –c を指定すると出力がコンパクトにまとまります。
値を絞り込んで出力したい場合、以下の
ように、jq でキーを列挙することで指定
のキーのみを取り出すことが出来ます。
サーバ作成
POST /cloud/1.1/server
リクエスト
{
"Count": 0,
"Server": {
"WaitDiskMigration": true,
"Icon": null,
"Tags": [ "@virtio-net-pci", "apitest" ],
"Description": ”apitest",
"Name": "ServerAPI03",
"ConnectedSwitches": [
{
"virtio": true,
"BandWidthMbps": 100,
"Scope": "shared",
"_operation": "internet"
}
],
"ServerPlan": { "ID": 1001 }
}
}
ServerPlanを確認する必要があります
インターネット接続は
100Mbps 共有ベストエフォート
インターネット接続は
100Mbps 共有ベストエフォート
サーバ作成
curl --user "Access_Token":"Access_Token_Secret" 
-X POST -d 
'{"Server":{"ServerPlan":{"ID":1001},"ConnectedSwitches":[{"_operation":"internet","Scope":"sh
ared","BandWidthMbps":100,"virtio":true}],"Name":"ServerAPI03","Description":"apitest","Tags
":["@virtio-net-pci","apitest"],"Icon":null,"WaitDiskMigration":true},"Count":0}' 
https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/server | jq .
リクエスト
ようやく、サーバ作成が出来ます。
リクエストデータをcurlの –d オプションで指定します。
シングルクオーテーションで全体を囲みます。(JSONに
ダブルクオーテーションが多いので)
サーバ作成
{
"is_ok": true,
"Success": true,
"Server": {
"Interfaces": [
{
"Subnet": {
"DefaultRoute": "133.242.70.1",
"NetworkMaskLen": 24,
"NetworkAddress": "133.242.70.0",
"ID": null
},
},
"IPAddress": "133.242.70.90",
}
],
"ID": "112800580022",
"Name": "ServerAPI03",
"HostName": "localhost",
"Description": "test",
"Availability": "migrating",
"ServiceClass": "cloud/plan/1core-1gb",
}
}
レスポンス(抜粋)
ネットワーク情報
割り当てられたIPアドレス
サーバのリソースID(サーバID)
サーバの検索
/server?Filter=Servers.Tags:apitest | 
jq -c ".Servers[] | {ID, Name, HostName, IPAddress : .Interfaces[].IPAddress ,
Status : .Instance.Status } "
サーバが出来たかを確認しましょう。
{"Status":"down","IPAddress":"133.242.19.104","HostName":"localhost","Name":"ServerAPI01
","ID":"112800578058"}
{"Status":"down","IPAddress":"133.242.22.14","HostName":"localhost","Name":"ServerAPI01"
,"ID":"112800578062"}
{"Status":"up","IPAddress":"133.242.49.106","HostName":"localhost","Name":"plesk02","ID"
:"112800528996"}
リクエスト
レスポンス
アーカイブの一覧の取得
GET /archive?Filter="Scope":"shared"&Sort=Name' | jq -c ".Archives[] |
{ID,Name,Scope,SizeMB}"
アーカイブの一覧を取得します。
パブリックアーカイブがインストールの元となるアーカイブです。
{"SizeMB":20480,"Scope":"shared","Name":"CentOS 5.11 64bit","ID":"112800291714"}
{"SizeMB":102400,"Scope":"shared","Name":"CentOS 5.11 64bit","ID":"112800291715"}
{"SizeMB":20480,"Scope":"shared","Name":"CentOS 6.7 64bit","ID":"112800239057"}
{"SizeMB":20480,"Scope":"shared","Name":"CentOS 7.2 64bit","ID":"112800239060"}
{"SizeMB":20480,"Scope":"shared","Name":"CoreOS 367.1.0 (stable)","ID":"112600559834"}
{"SizeMB":20480,"Scope":"shared","Name":"Debian GNU/Linux 7.10.0 64bit","ID":"112800438502"}
{"SizeMB":20480,"Scope":"shared","Name":"Debian GNU/Linux 8.4.0 64bit","ID":"112800438543"}
......
リクエスト
レスポンス
パブリックアーカイブは、
Scopeが"shared" となっています
ディスクプランの取得
curl --user "Access_Token":"Access_Token_Secret" 
https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/product/disk 
| jq -c ".DiskPlans[] | {ID,Name, SizeMB : .Size[].SizeMB}"
{"SizeMB":20480,"Name":"SSDプラン","ID":4}
{"SizeMB":102400,"Name":"SSDプラン","ID":4}
{"SizeMB":256000,"Name":"SSDプラン","ID":4}
{"SizeMB":512000,"Name":"SSDプラン","ID":4}
{"SizeMB":40960,"Name":"標準プラン","ID":2}
{"SizeMB":61440,"Name":"標準プラン","ID":2}
{"SizeMB":81920,"Name":"標準プラン","ID":2}
{"SizeMB":102400,"Name":"標準プラン","ID":2}
{"SizeMB":256000,"Name":"標準プラン","ID":2}
{"SizeMB":512000,"Name":"標準プラン","ID":2}
{"SizeMB":768000,"Name":"標準プラン","ID":2}
{"SizeMB":1048576,"Name":"標準プラン","ID":2}
{"SizeMB":2097152,"Name":"標準プラン","ID":2}
{"SizeMB":4194304,"Name":"標準プラン","ID":2}
レスポンス
リクエスト
ディスクの作成とサーバとの接続
POST /cloud/1.1/disk
{
"Count": 0,
"Disk": {
"Server": {
"ID": "112800580022"
},
"Name": "ServerAPI03",
"Connection": "virtio",
"SizeMB": 20480,
"SourceArchive": {
"ID": "112800239060"
},
"Plan": { "ID": 4 }
}
}
リクエスト
接続するサーバと同じ
先ほど作成したサーバの
リソースID(サーバID)を指定。ディスク作成後
直ぐに接続する。
ディスクプランで取得したIDを指定
HDD:2 / SSD:4
ディスクプランで取得したディスクサイズ
を数値で指定
アーカイブ一覧で取得したパブリックアーカイ
ブ(OS)のIDを指定
ディスクの作成とサーバとの接続
curl --user "Access_Token":"Access_Token_Secret" 
-X POST –d 
'{"Disk":{"Plan":{"ID":4},"SourceArchive":{"ID":"112800239060"},"SizeMB":20480
,"Connection":"virtio","Name":"ServerAPI03","Server":{"ID":"112800580022"}},"C
ount":0}' 
https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/disk | jq .
{
"is_ok": true,
"Success": "Accepted",
"Disk": {
"SizeMB": 20480,
"Name": "ServerAPI03",
"ID": "112800580030"
}
}
レスポンス(抜粋)
リクエストコマンド
作成したディスクのID
ディスクの修正
PUT cloud/1.1/disk/112800579885/config
{
"Count": 0,
"HostName": "ServerAPI03",
"Password": "124YJNLu"
}
リクエスト
サーバのホスト名を書き込み
root パスワードを書き込み
作成したディスクのID
curl --user "Access_Token":"Access_Token_Secret" 
-X PUT -d '{"Password":"124YJNLu","HostName":"ServerAPI03","Count":0}' 
https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/disk/112800580030/co
nfig | jq .
リクエストコマンド
{ "is_ok": true, "Success": true }
レスポンス
サーバを起動する
PUT cloud/1.1/server/112800580022/power
リクエスト
作成したサーバのID
curl --user "Access_Token":"Access_Token_Secret" 
-X PUT -d '' 
https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/server/112800580022/
power | jq .
リクエストコマンド
{ "is_ok": true, "Success": true }
レスポンス
サーバの検索
/server?Filter=Servers.Tags:apitest | 
jq -c ".Servers[] | {ID, Name, HostName, IPAddress : .Interfaces[].IPAddress ,
Status : .Instance.Status } "
サーバが出来たかを確認しましょう。
{"Status":"down","IPAddress":"192.168.xx.104","HostName":"localhost","Name":"ServerAPI01
","ID":"112800578058"}
{"Status":"down","IPAddress":"192.168.x.14","HostName":"localhost","Name":"ServerAPI01",
"ID":"112800578062"}
{"Status":"up","IPAddress":" 192.168.xx.106","HostName":"localhost","Name":" ServerAPI03
","ID":"112800580022"}
リクエスト
レスポンス
シンプル監視登録
シンプル監視の登録
POST cloud/1.1/commonserviceitem
{
"Count": 0,
"CommonServiceItem": {
"Description": "ServerAPI03",
"Icon": {},
"Tags": [],
"Provider": {
"Class": "simplemon"
},
"Settings": {
"SimpleMonitor": {
"NotifySlack": {
"Enabled": "False"
},
リクエスト
"NotifyEmail": {
"Enabled": "True"
},
"Enabled": "True",
"HealthCheck": {
"Protocol": "ping"
},
"DelayLoop": 60
}
},
"Status": {
"Target": "133.242.70.90"
},
"Name": "133.242.70.90"
}
}
シンプル監視は アプライアンス関連APIの commonserviceitem を通して設定をおこないます。
シンプル監視の登録
curl --user "Access_Token":"Access_Token_Secret" 
-X PUT -d '' 
'{"CommonServiceItem":{"Name":"133.242.70.90","Status":{"Target":"133.242.70.9
0"},"Settings":{"SimpleMonitor":{"DelayLoop":60,"HealthCheck":{"Protocol":"pin
g"},"Enabled":"True","NotifyEmail":{"Enabled":"True"},"NotifySlack":{"Enabled"
:"False"}}},"Provider":{"Class":"simplemon"},"Tags":[],"Icon":{},"Description"
:"ServerAPI03"},"Count":0}' 
https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/commonserviceitem |
jq .
リクエストコマンド
{
"is_ok": true,
"Success": true,
"CommonServiceItem": {
"ID": "112800580626",
}
}
レスポンス(抜粋)
修正や削除はこのIDを使って指定します
料金関連
料金関連
• 料金一覧表取得
• 請求履歴取得
• 請求明細取得
料金一覧表の取得
– サーバやディスクはゾーンごとに料金が異なります。どのゾーンにリクエストをお
こなうかで、どのゾーンの料金が帰ってくるかが決まります
– このエンドポイントのみ認証が必要ありません。
• Authorizationヘッダは指定しないでください。
• 次のヘッダを指定してください。 X-Requested-With: XMLHttpRequest
• 廃止されたサービスや、一部のお客様向けの特殊なサービス等は表に含まれません。
石狩第一ゾーンの価格一覧表を取得
curl -H "X-Requested-With:XMLHttpRequest" 
https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/public/price.json
curl --user "Access Token":"Access Token Secret" 
https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/public/price.json
APIキーによる認証を行う場合のリクエストコマンド
APIキーによる認証を行わない場合のリクエストコマンド
GET /public/price
リクエスト
料金一覧表の取得
"65": {
"ServiceClassPath": "cloud/plan/2core-3gb",
"ServiceClassName": "plan/2core-3gb",
"ServiceClassID": 50179,
"Price": {
"Zone": "is1a",
"Monthly": 4050,
"Hourly": 19,
"Daily": 203,
"Base": 0
},
"IsPublic": true,
"DisplayName": "プラン/2Core-3GB"
}
レスポンス(抜粋)
サーバやディスクなどの料金は、時間、日次、月次それぞれで料金が決まっています。
Hourly x 時間数 : Daily (およそ10時間前後)
Daily x 日数 : Monthly (およそ20時間前後)
のどちらが安いかで、どちらの料金が採用になるかが決まります。Monthlyが上限となります
アカウントIDの確認
• APIを実行するには、アカウントのアカウントIDが必要
• testaccount  xxx000001(数字列)
• アカウントコード  アカウントのリソースID(アカウントID)
curl --user 'ACCESS_TOKEN':'ACCESS_TOKEN_SECRET' 
https://secure.sakura.ad.jp/cloud/zone/tk1a/api/cloud/1.1/auth-status | 
jq -c " .Account "
{"Code":"billTest","Name":"APIテスト用","Class":"account","ID":"000000526782"}
レスポンス
リクエストコマンド
※どのゾーンにリクエストしても構いません
アカウントID
過去の請求履歴を確認
curl --user "ACCESS_TOKEN":"ACCESS_TOKEN_SECRET" 
https://secure.sakura.ad.jp/cloud/zone/tk1a/api/system/1.0/bill/by-contract/112700526782 | jq .
リクエストコマンド
※どのゾーンにリクエストしても構いません
※ベースURLが請求関連APIとなります。 アカウントID
請求履歴などを取得するのは請求関連APIと読んで、APIのベースURLが異なります。
アカウントIDを指定して取得します。
過去の請求履歴を確認
{
"is_ok": true,
"ResponsedAt": "2016-06-01T13:33:13+09:00",
"Count": 12,
"Bills": [
{
"PaymentClassID": 200,
"PayLimit": "2016-06-30T00:00:00+09:00",
"Paid": false,
"MemberID": "xxx000001",
"Date": "2016-06-10T00:00:00+09:00",
"BillID": 13481639,
"Amount": 4330
},
.....(月が繰り返します)
}
レスポンス
請求書No。さらに詳細を見るときに使います。
請求書No。さらに詳細を見るときに使います。
請求書No。さらに詳細を見るときに使います。
請求年月
請求明細を取得(CSV)
printf "`curl --user 'ACCESS_TOKEN':'ACCESS_TOKEN_SECRET'
https://secure.sakura.ad.jp/cloud/zone/tk1a/api/system/1.0/billdetail/xxx000001/
000000000/csv | jq .Body`"
リクエストコマンド(請求関連API)
""連番","請求書番号","利用年月","支払いステータス","会員ID","アカウントコード","リソー
スID","商品ID","商品名","ゾーンID","ゾーン名","日数","時間","商品金額(税別)","税金","リ
ソース名"
"1","000000000","2015/09","入金済み","xxx000001","payTest","112700526782","50000","さく
らのクラウド",,,"30","0","0","0",
"2","000000000","2015/09","入金済み","xxx000001","payTest","112700654736","50118","ISOイ
メージアップロード/5GB","is1b","石狩第2ゾーン","30","0","100","8","名称未設定 ISOイメー
ジ 14ef10fedac"
"3","000000000","2015/09","入金済み
","xxx000001","payTest","112700675125","50295","GSLB",,,"28","16","500","40","テスト"
"
レスポンス 請求書ID
アカウントID
JSON形式の応答は、必要な情報を追加で山ほど取ってくる必要があるため、CSV形式を推奨します。
エスケープコードの処理のため
まとめ
• API直接実行するのも思ったよりも敷居は高くな
い
• しかし、複雑なことをやろうとするとプログラ
ミングが必要
– やはり、SDKを使った方が便利>Saklient
– Saklientが対応していないAPIは直接叩く必要もある
さくらのクラウドクライアントライブラリ saklient
http://sakura-internet.github.io/saklient.doc/
Apendix
• さくらのクラウドAPI
– http://developer.sakura.ad.jp/cloud/api/1.1/
– 価格一覧表をAPI経由で取得できるようになりました
– http://cloud-news.sakura.ad.jp/2016/04/01/cloud-pricelist-api/
• さくらのクラウドAPI請求関連API
– http://developer.sakura.ad.jp/cloud/api/1.1/bill/
• 請求関連APIの使い方
– http://cloud-news.sakura.ad.jp/billapi/
• 【TIPS】さくらのクラウドでAuto Scaling
– http://cloud-news.sakura.ad.jp/2016/03/18/auto-scaling/
85
ご清聴ありがとうございました
ご清聴ありがとうございました
さくらインターネット
エバンジェリスト 寺尾 英作
講演依頼等は、e-terao@sakura.ad.jp まで
86
86
eisaku.terao @eterao
直近講演テーマ
・今さら聞けない!? クラウドが中小企業にもたらす真の価値
・さくらのクラウド ハンズオン
・東南アジアを中心とした、海外ITビジネス事情(MSPJ)
・幅広いニーズに応える、さくらインターネットのサービス
・さくらのクラウドの典型的な構成例

More Related Content

What's hot

MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システムMySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システムKouhei Sutou
 
本気で使うStack storm
本気で使うStack storm本気で使うStack storm
本気で使うStack stormtyamane
 
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。hiyohiyo
 
[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テストTakahiro Moteki
 
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。 複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。 Insight Technology, Inc.
 
Amazon ECS AWS Fargate あるとき~ ないとき~ (トレノケ雲の会 mod2)
Amazon ECS AWS Fargate あるとき~ ないとき~ (トレノケ雲の会 mod2)Amazon ECS AWS Fargate あるとき~ ないとき~ (トレノケ雲の会 mod2)
Amazon ECS AWS Fargate あるとき~ ないとき~ (トレノケ雲の会 mod2)Trainocate Japan, Ltd.
 
大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌LINE Corporation
 
決済サービスのSpring Bootのバージョンを2系に上げた話
決済サービスのSpring Bootのバージョンを2系に上げた話決済サービスのSpring Bootのバージョンを2系に上げた話
決済サービスのSpring Bootのバージョンを2系に上げた話Ryosuke Uchitate
 
基礎から学ぶ? EC2マルチキャスト
基礎から学ぶ? EC2マルチキャスト基礎から学ぶ? EC2マルチキャスト
基礎から学ぶ? EC2マルチキャストNoritaka Sekiyama
 
Dockerを支える技術
Dockerを支える技術Dockerを支える技術
Dockerを支える技術Etsuji Nakai
 
AWS Lambdaのテストで役立つ各種ツール
AWS Lambdaのテストで役立つ各種ツールAWS Lambdaのテストで役立つ各種ツール
AWS Lambdaのテストで役立つ各種ツールMasaki Suzuki
 
EC2のストレージどう使う? -Instance Storageを理解して高速IOを上手に活用!-
EC2のストレージどう使う? -Instance Storageを理解して高速IOを上手に活用!-EC2のストレージどう使う? -Instance Storageを理解して高速IOを上手に活用!-
EC2のストレージどう使う? -Instance Storageを理解して高速IOを上手に活用!-Yuta Imai
 
ネットワーク運用自動化の実際〜現場で使われているツールを調査してみた〜
ネットワーク運用自動化の実際〜現場で使われているツールを調査してみた〜ネットワーク運用自動化の実際〜現場で使われているツールを調査してみた〜
ネットワーク運用自動化の実際〜現場で使われているツールを調査してみた〜Taiji Tsuchiya
 
Azure Cosmos DB のキホンと使いドコロ
Azure Cosmos DB のキホンと使いドコロAzure Cosmos DB のキホンと使いドコロ
Azure Cosmos DB のキホンと使いドコロKazuyuki Miyake
 
ロードバランスへの長い道
ロードバランスへの長い道ロードバランスへの長い道
ロードバランスへの長い道Jun Kato
 
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月VirtualTech Japan Inc.
 
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方Hiroshi Tokumaru
 

What's hot (20)

MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システムMySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
 
OpenStack入門 2016/06/27
OpenStack入門 2016/06/27OpenStack入門 2016/06/27
OpenStack入門 2016/06/27
 
本気で使うStack storm
本気で使うStack storm本気で使うStack storm
本気で使うStack storm
 
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。
 
[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト
 
Spring Cloud Data Flow の紹介 #streamctjp
Spring Cloud Data Flow の紹介  #streamctjpSpring Cloud Data Flow の紹介  #streamctjp
Spring Cloud Data Flow の紹介 #streamctjp
 
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。 複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
 
Amazon ECS AWS Fargate あるとき~ ないとき~ (トレノケ雲の会 mod2)
Amazon ECS AWS Fargate あるとき~ ないとき~ (トレノケ雲の会 mod2)Amazon ECS AWS Fargate あるとき~ ないとき~ (トレノケ雲の会 mod2)
Amazon ECS AWS Fargate あるとき~ ないとき~ (トレノケ雲の会 mod2)
 
大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌
 
決済サービスのSpring Bootのバージョンを2系に上げた話
決済サービスのSpring Bootのバージョンを2系に上げた話決済サービスのSpring Bootのバージョンを2系に上げた話
決済サービスのSpring Bootのバージョンを2系に上げた話
 
基礎から学ぶ? EC2マルチキャスト
基礎から学ぶ? EC2マルチキャスト基礎から学ぶ? EC2マルチキャスト
基礎から学ぶ? EC2マルチキャスト
 
Dockerを支える技術
Dockerを支える技術Dockerを支える技術
Dockerを支える技術
 
AWS Lambdaのテストで役立つ各種ツール
AWS Lambdaのテストで役立つ各種ツールAWS Lambdaのテストで役立つ各種ツール
AWS Lambdaのテストで役立つ各種ツール
 
EC2のストレージどう使う? -Instance Storageを理解して高速IOを上手に活用!-
EC2のストレージどう使う? -Instance Storageを理解して高速IOを上手に活用!-EC2のストレージどう使う? -Instance Storageを理解して高速IOを上手に活用!-
EC2のストレージどう使う? -Instance Storageを理解して高速IOを上手に活用!-
 
Vue.js で XSS
Vue.js で XSSVue.js で XSS
Vue.js で XSS
 
ネットワーク運用自動化の実際〜現場で使われているツールを調査してみた〜
ネットワーク運用自動化の実際〜現場で使われているツールを調査してみた〜ネットワーク運用自動化の実際〜現場で使われているツールを調査してみた〜
ネットワーク運用自動化の実際〜現場で使われているツールを調査してみた〜
 
Azure Cosmos DB のキホンと使いドコロ
Azure Cosmos DB のキホンと使いドコロAzure Cosmos DB のキホンと使いドコロ
Azure Cosmos DB のキホンと使いドコロ
 
ロードバランスへの長い道
ロードバランスへの長い道ロードバランスへの長い道
ロードバランスへの長い道
 
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
 
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
 

Viewers also liked

さくらのクラウドをAPIで操作する(LT) @ さくらクラブ in 岐阜
さくらのクラウドをAPIで操作する(LT) @ さくらクラブ in 岐阜さくらのクラウドをAPIで操作する(LT) @ さくらクラブ in 岐阜
さくらのクラウドをAPIで操作する(LT) @ さくらクラブ in 岐阜Eisaku Terao
 
私はこれでエバンジェリストをやめました
私はこれでエバンジェリストをやめました私はこれでエバンジェリストをやめました
私はこれでエバンジェリストをやめましたYasuhiro Horiuchi
 
レインボー桜島への行き方
レインボー桜島への行き方レインボー桜島への行き方
レインボー桜島への行き方Matsuoka Hiromitsu
 
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)さくらインターネット株式会社
 
altJS勉強会「Haxeすごいからみんな使え!」
altJS勉強会「Haxeすごいからみんな使え!」altJS勉強会「Haxeすごいからみんな使え!」
altJS勉強会「Haxeすごいからみんな使え!」政樹 尾野
 
Reactio 障害&トラブル対応で本当に必要なモノとは?
Reactio 障害&トラブル対応で本当に必要なモノとは?Reactio 障害&トラブル対応で本当に必要なモノとは?
Reactio 障害&トラブル対応で本当に必要なモノとは?Reactio
 

Viewers also liked (6)

さくらのクラウドをAPIで操作する(LT) @ さくらクラブ in 岐阜
さくらのクラウドをAPIで操作する(LT) @ さくらクラブ in 岐阜さくらのクラウドをAPIで操作する(LT) @ さくらクラブ in 岐阜
さくらのクラウドをAPIで操作する(LT) @ さくらクラブ in 岐阜
 
私はこれでエバンジェリストをやめました
私はこれでエバンジェリストをやめました私はこれでエバンジェリストをやめました
私はこれでエバンジェリストをやめました
 
レインボー桜島への行き方
レインボー桜島への行き方レインボー桜島への行き方
レインボー桜島への行き方
 
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)
 
altJS勉強会「Haxeすごいからみんな使え!」
altJS勉強会「Haxeすごいからみんな使え!」altJS勉強会「Haxeすごいからみんな使え!」
altJS勉強会「Haxeすごいからみんな使え!」
 
Reactio 障害&トラブル対応で本当に必要なモノとは?
Reactio 障害&トラブル対応で本当に必要なモノとは?Reactio 障害&トラブル対応で本当に必要なモノとは?
Reactio 障害&トラブル対応で本当に必要なモノとは?
 

Similar to インフラエンジニアなら『さくらのクラウド』をAPIでいじろう【入門編】

OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)NTT DATA Technology & Innovation
 
Java8 Stream APIとApache SparkとAsakusa Frameworkの類似点・相違点
Java8 Stream APIとApache SparkとAsakusa Frameworkの類似点・相違点Java8 Stream APIとApache SparkとAsakusa Frameworkの類似点・相違点
Java8 Stream APIとApache SparkとAsakusa Frameworkの類似点・相違点hishidama
 
シラサギハンズオン 大阪
シラサギハンズオン 大阪シラサギハンズオン 大阪
シラサギハンズオン 大阪Yu Ito
 
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化シスコシステムズ合同会社
 
俺の俺による俺のための App Service Environment
俺の俺による俺のための App Service Environment俺の俺による俺のための App Service Environment
俺の俺による俺のための App Service EnvironmentSunao Tomita
 
Azure Data Studio
Azure Data StudioAzure Data Studio
Azure Data StudioMicrosoft
 
Develop Web Application with Node.js + Express
Develop Web Application with Node.js + ExpressDevelop Web Application with Node.js + Express
Develop Web Application with Node.js + ExpressAkinari Tsugo
 
AWS SAMで始めるサーバーレスアプリケーション開発
AWS SAMで始めるサーバーレスアプリケーション開発AWS SAMで始めるサーバーレスアプリケーション開発
AWS SAMで始めるサーバーレスアプリケーション開発真吾 吉田
 
SORACOM Technology Camp 2018 ベーシックトラック3 | 今日から始めるセンサーデータの可視化
SORACOM Technology Camp 2018 ベーシックトラック3 | 今日から始めるセンサーデータの可視化SORACOM Technology Camp 2018 ベーシックトラック3 | 今日から始めるセンサーデータの可視化
SORACOM Technology Camp 2018 ベーシックトラック3 | 今日から始めるセンサーデータの可視化SORACOM,INC
 
JAWSDAYS2016 Technical Deep DIVE
JAWSDAYS2016 Technical Deep DIVE JAWSDAYS2016 Technical Deep DIVE
JAWSDAYS2016 Technical Deep DIVE 陽平 山口
 
Smart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless DesignSmart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless DesignRyuji TAKEHARA
 
Spring Framework / Boot / Data 徹底活用 〜Spring Data Redis 編〜
Spring Framework / Boot / Data 徹底活用  〜Spring Data Redis 編〜Spring Framework / Boot / Data 徹底活用  〜Spring Data Redis 編〜
Spring Framework / Boot / Data 徹底活用 〜Spring Data Redis 編〜Naohiro Yoshida
 
SR-IOV Networking in OpenStack - OpenStack最新情報セミナー 2016年3月
SR-IOV Networking in OpenStack - OpenStack最新情報セミナー 2016年3月SR-IOV Networking in OpenStack - OpenStack最新情報セミナー 2016年3月
SR-IOV Networking in OpenStack - OpenStack最新情報セミナー 2016年3月VirtualTech Japan Inc.
 
SORCOM UG #2 | SORACOM アップデート
SORCOM UG #2 | SORACOM アップデートSORCOM UG #2 | SORACOM アップデート
SORCOM UG #2 | SORACOM アップデートSORACOM,INC
 
[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き
[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き
[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付きInsight Technology, Inc.
 
AlaxalA's presentation at Ansible Night in Osaka on 28th Nov. 2018
AlaxalA's presentation at Ansible Night in Osaka on 28th Nov. 2018AlaxalA's presentation at Ansible Night in Osaka on 28th Nov. 2018
AlaxalA's presentation at Ansible Night in Osaka on 28th Nov. 2018ssuser864c6a
 
Programming AWS with Perl at YAPC::Asia 2013
Programming AWS with Perl at YAPC::Asia 2013Programming AWS with Perl at YAPC::Asia 2013
Programming AWS with Perl at YAPC::Asia 2013Yasuhiro Horiuchi
 
Azureのざっくり利用料金を毎日Slackに通知する
Azureのざっくり利用料金を毎日Slackに通知するAzureのざっくり利用料金を毎日Slackに通知する
Azureのざっくり利用料金を毎日Slackに通知するShingo Kawahara
 
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006Cloudera Japan
 

Similar to インフラエンジニアなら『さくらのクラウド』をAPIでいじろう【入門編】 (20)

OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
 
Java8 Stream APIとApache SparkとAsakusa Frameworkの類似点・相違点
Java8 Stream APIとApache SparkとAsakusa Frameworkの類似点・相違点Java8 Stream APIとApache SparkとAsakusa Frameworkの類似点・相違点
Java8 Stream APIとApache SparkとAsakusa Frameworkの類似点・相違点
 
シラサギハンズオン 大阪
シラサギハンズオン 大阪シラサギハンズオン 大阪
シラサギハンズオン 大阪
 
Windows ✖︎ Docker
Windows ✖︎ DockerWindows ✖︎ Docker
Windows ✖︎ Docker
 
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
 
俺の俺による俺のための App Service Environment
俺の俺による俺のための App Service Environment俺の俺による俺のための App Service Environment
俺の俺による俺のための App Service Environment
 
Azure Data Studio
Azure Data StudioAzure Data Studio
Azure Data Studio
 
Develop Web Application with Node.js + Express
Develop Web Application with Node.js + ExpressDevelop Web Application with Node.js + Express
Develop Web Application with Node.js + Express
 
AWS SAMで始めるサーバーレスアプリケーション開発
AWS SAMで始めるサーバーレスアプリケーション開発AWS SAMで始めるサーバーレスアプリケーション開発
AWS SAMで始めるサーバーレスアプリケーション開発
 
SORACOM Technology Camp 2018 ベーシックトラック3 | 今日から始めるセンサーデータの可視化
SORACOM Technology Camp 2018 ベーシックトラック3 | 今日から始めるセンサーデータの可視化SORACOM Technology Camp 2018 ベーシックトラック3 | 今日から始めるセンサーデータの可視化
SORACOM Technology Camp 2018 ベーシックトラック3 | 今日から始めるセンサーデータの可視化
 
JAWSDAYS2016 Technical Deep DIVE
JAWSDAYS2016 Technical Deep DIVE JAWSDAYS2016 Technical Deep DIVE
JAWSDAYS2016 Technical Deep DIVE
 
Smart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless DesignSmart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless Design
 
Spring Framework / Boot / Data 徹底活用 〜Spring Data Redis 編〜
Spring Framework / Boot / Data 徹底活用  〜Spring Data Redis 編〜Spring Framework / Boot / Data 徹底活用  〜Spring Data Redis 編〜
Spring Framework / Boot / Data 徹底活用 〜Spring Data Redis 編〜
 
SR-IOV Networking in OpenStack - OpenStack最新情報セミナー 2016年3月
SR-IOV Networking in OpenStack - OpenStack最新情報セミナー 2016年3月SR-IOV Networking in OpenStack - OpenStack最新情報セミナー 2016年3月
SR-IOV Networking in OpenStack - OpenStack最新情報セミナー 2016年3月
 
SORCOM UG #2 | SORACOM アップデート
SORCOM UG #2 | SORACOM アップデートSORCOM UG #2 | SORACOM アップデート
SORCOM UG #2 | SORACOM アップデート
 
[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き
[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き
[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き
 
AlaxalA's presentation at Ansible Night in Osaka on 28th Nov. 2018
AlaxalA's presentation at Ansible Night in Osaka on 28th Nov. 2018AlaxalA's presentation at Ansible Night in Osaka on 28th Nov. 2018
AlaxalA's presentation at Ansible Night in Osaka on 28th Nov. 2018
 
Programming AWS with Perl at YAPC::Asia 2013
Programming AWS with Perl at YAPC::Asia 2013Programming AWS with Perl at YAPC::Asia 2013
Programming AWS with Perl at YAPC::Asia 2013
 
Azureのざっくり利用料金を毎日Slackに通知する
Azureのざっくり利用料金を毎日Slackに通知するAzureのざっくり利用料金を毎日Slackに通知する
Azureのざっくり利用料金を毎日Slackに通知する
 
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
 

More from Eisaku Terao

なんか新しいデータベースがやってきた LedgerDB
なんか新しいデータベースがやってきた LedgerDBなんか新しいデータベースがやってきた LedgerDB
なんか新しいデータベースがやってきた LedgerDBEisaku Terao
 
PAW-Night17 中国のスーパーアプリ事情
PAW-Night17 中国のスーパーアプリ事情PAW-Night17 中国のスーパーアプリ事情
PAW-Night17 中国のスーパーアプリ事情Eisaku Terao
 
中国のスーパーアプリ事情 (2020/10/21)
中国のスーパーアプリ事情 (2020/10/21)中国のスーパーアプリ事情 (2020/10/21)
中国のスーパーアプリ事情 (2020/10/21)Eisaku Terao
 
Webcamしかないツールでどう配信する?〜配信環境の試行錯誤〜
Webcamしかないツールでどう配信する?〜配信環境の試行錯誤〜Webcamしかないツールでどう配信する?〜配信環境の試行錯誤〜
Webcamしかないツールでどう配信する?〜配信環境の試行錯誤〜Eisaku Terao
 
Alibaba Cloud Icons Quiz
Alibaba Cloud Icons QuizAlibaba Cloud Icons Quiz
Alibaba Cloud Icons QuizEisaku Terao
 
sakura.io と Alibaba Cloud が繋がらない! そのとき 救世主 enebular が現れた
sakura.io と Alibaba Cloud が繋がらない! そのとき 救世主 enebular が現れたsakura.io と Alibaba Cloud が繋がらない! そのとき 救世主 enebular が現れた
sakura.io と Alibaba Cloud が繋がらない! そのとき 救世主 enebular が現れたEisaku Terao
 
Maker Faire 深圳レポート -無人コンビニの比較-
Maker Faire 深圳レポート -無人コンビニの比較-Maker Faire 深圳レポート -無人コンビニの比較-
Maker Faire 深圳レポート -無人コンビニの比較-Eisaku Terao
 
sakura.ioで送られてくるデータをNode-REDで処理する話
sakura.ioで送られてくるデータをNode-REDで処理する話sakura.ioで送られてくるデータをNode-REDで処理する話
sakura.ioで送られてくるデータをNode-REDで処理する話Eisaku Terao
 
ライブアイドルのすすめ(20160427)
ライブアイドルのすすめ(20160427)ライブアイドルのすすめ(20160427)
ライブアイドルのすすめ(20160427)Eisaku Terao
 
20160427ドルヲタのためのプレゼン技術研究会#1 〜相手を動かすプレゼン〜
20160427ドルヲタのためのプレゼン技術研究会#1 〜相手を動かすプレゼン〜20160427ドルヲタのためのプレゼン技術研究会#1 〜相手を動かすプレゼン〜
20160427ドルヲタのためのプレゼン技術研究会#1 〜相手を動かすプレゼン〜Eisaku Terao
 
2016年テラオの抱負@プレゼン技術研究会
2016年テラオの抱負@プレゼン技術研究会2016年テラオの抱負@プレゼン技術研究会
2016年テラオの抱負@プレゼン技術研究会Eisaku Terao
 
クラウドにアイドルを求めるのは間違っているだろうか
クラウドにアイドルを求めるのは間違っているだろうかクラウドにアイドルを求めるのは間違っているだろうか
クラウドにアイドルを求めるのは間違っているだろうかEisaku Terao
 

More from Eisaku Terao (12)

なんか新しいデータベースがやってきた LedgerDB
なんか新しいデータベースがやってきた LedgerDBなんか新しいデータベースがやってきた LedgerDB
なんか新しいデータベースがやってきた LedgerDB
 
PAW-Night17 中国のスーパーアプリ事情
PAW-Night17 中国のスーパーアプリ事情PAW-Night17 中国のスーパーアプリ事情
PAW-Night17 中国のスーパーアプリ事情
 
中国のスーパーアプリ事情 (2020/10/21)
中国のスーパーアプリ事情 (2020/10/21)中国のスーパーアプリ事情 (2020/10/21)
中国のスーパーアプリ事情 (2020/10/21)
 
Webcamしかないツールでどう配信する?〜配信環境の試行錯誤〜
Webcamしかないツールでどう配信する?〜配信環境の試行錯誤〜Webcamしかないツールでどう配信する?〜配信環境の試行錯誤〜
Webcamしかないツールでどう配信する?〜配信環境の試行錯誤〜
 
Alibaba Cloud Icons Quiz
Alibaba Cloud Icons QuizAlibaba Cloud Icons Quiz
Alibaba Cloud Icons Quiz
 
sakura.io と Alibaba Cloud が繋がらない! そのとき 救世主 enebular が現れた
sakura.io と Alibaba Cloud が繋がらない! そのとき 救世主 enebular が現れたsakura.io と Alibaba Cloud が繋がらない! そのとき 救世主 enebular が現れた
sakura.io と Alibaba Cloud が繋がらない! そのとき 救世主 enebular が現れた
 
Maker Faire 深圳レポート -無人コンビニの比較-
Maker Faire 深圳レポート -無人コンビニの比較-Maker Faire 深圳レポート -無人コンビニの比較-
Maker Faire 深圳レポート -無人コンビニの比較-
 
sakura.ioで送られてくるデータをNode-REDで処理する話
sakura.ioで送られてくるデータをNode-REDで処理する話sakura.ioで送られてくるデータをNode-REDで処理する話
sakura.ioで送られてくるデータをNode-REDで処理する話
 
ライブアイドルのすすめ(20160427)
ライブアイドルのすすめ(20160427)ライブアイドルのすすめ(20160427)
ライブアイドルのすすめ(20160427)
 
20160427ドルヲタのためのプレゼン技術研究会#1 〜相手を動かすプレゼン〜
20160427ドルヲタのためのプレゼン技術研究会#1 〜相手を動かすプレゼン〜20160427ドルヲタのためのプレゼン技術研究会#1 〜相手を動かすプレゼン〜
20160427ドルヲタのためのプレゼン技術研究会#1 〜相手を動かすプレゼン〜
 
2016年テラオの抱負@プレゼン技術研究会
2016年テラオの抱負@プレゼン技術研究会2016年テラオの抱負@プレゼン技術研究会
2016年テラオの抱負@プレゼン技術研究会
 
クラウドにアイドルを求めるのは間違っているだろうか
クラウドにアイドルを求めるのは間違っているだろうかクラウドにアイドルを求めるのは間違っているだろうか
クラウドにアイドルを求めるのは間違っているだろうか
 

インフラエンジニアなら『さくらのクラウド』をAPIでいじろう【入門編】

Editor's Notes

  1. コロケーションからホスティングまで、データセンター事業を幅広く展開している数少ないインフラ提供事業者です。 さくらのレンタルサーバ  2004年7月のリリースから11年 が経過し、ご利用件数40万件突破 さくらのVPS 2010年9月のリリースから、5年ご利用件数7万件突破
  2. その他に提供形態によるSaaS,PaaS,IaaSといった形態 また資産を持たずサービスとして利用できるメリットもあります。 アメリカ合衆国の連邦政府機関の一つで、科学技術に関連する標準についての研究などを行う機関。 http://www.idcf.jp/cloud/column/rentalserver_cloud.html