ユーザーガイド/リファレンスガイド

APIで仮想サーバーを作成する

APIを使用して仮想サーバーを作成する方法をご案内します。
以下ではcurlコマンドを用いたAPIの操作手順となりますので、任意のサーバーにて実行ください。

 

なお、本リファレンスに掲載しておりますフレーバーIDやイメージID等の一覧につきましては、実際のデータと更新に差が出る場合がございますので、ご利用の際はAPIにて最新版の一覧をご取得ください。

 

 

トークンの発行

[ 1 ] API認証を行い、トークンの取得ならびに発行されたトークンIDを確認します。

認証のエンドポイント コントロールパネル内のAPIメニューから「Identity Service」をご確認ください。
APIユーザー名 コントロールパネル内のAPIメニューからAPIユーザーを作成ください。
パスワード コントロールパネルのAPIメニューからAPIユーザーを作成する際に設定するパスワード。
テナント名 コントロールパネル内のAPIメニューから「テナント名」をご確認ください。
curl -i -X POST \ -H “Accept: application/json” \
-H “Content-Type: application/json” \
-d ‘{“auth”:{“passwordCredentials”:{“username”: “APIユーザー名“, “password”: “パスワード“},”tenantName”:”テナント名“}}’ \
認証のエンドポイント/tokens

コンソール画面上には以下のようにリクエストの結果が返ってきます。「access」の「id」の値がAPI操作を行う際に必要となるトークンIDです。以降の手順では、トークンIDと表示されているものは全てこのIDを指すものとします。トークンIDは発行後、24時間で失効となりますので作業が日をまたぐ場合は都度発行する必要があります。

{“access”:{“token”:{“issued_at”:”2016-11-27T08:01:26.504595″,”expires”:”2016-11-28T08:01:26Z”,
“id”:”9e54605ee98043b2a89d28f80bc1ce3f

 

 

ブートストレージの作成
[ 1 ] ボリュームタイプの一覧を取得し、ボリュームタイプ名を確認します。

ボリュームのエンドポイント コントロールパネル内のAPIメニューから「Volume Service」をご確認ください。
curl -i -X GET \
-H “Accept: application/json” \
-H “Content-Type: application/json” \
-H “X-Auth-Token: トークンID” \
ボリュームのエンドポイント/types

 

上記リクエストが正常に処理されるとボリュームタイプの一覧情報が返ってきます。ボリュームタイプの一覧は以下の通りです。ボリュームタイプ名は以降の手順でAPIの操作に必要となりますので、任意のタイプ名についてメモをとってください。

ボリュームタイプ名 IOPS 備考
sd1-iops-500 500 ボリュームサイズが50GBの時のみ指定可能
sd1-iops-1k 1,000 ボリュームサイズが100GB以上の時に指定可能
sd1-iops-5k 5,000 ボリュームサイズが100GB以上の時に指定可能
sd1-iops-10k 10, 000 ボリュームサイズが100GB以上の時に指定可能

 

 

[ 2 ] OSイメージの一覧を取得し、イメージIDを確認します。

イメージのエンドポイント コントロールパネル内のAPIメニューから「Image Service」をご確認ください。
curl -i -X GET \
-H “Accept: application/json” \
-H “Content-Type: application/json” \
-H “X-Auth-Token: トークンID” \
イメージのエンドポイント/v2/images

 

 

上記リクエストが正常に処理されると作成されたイメージの一覧情報が返ってきます。イメージの一覧は以下の通りです。イメージIDは以降の手順でAPIの操作に必要となりますので、任意のイメージIDについてメモをとってください。
・Linux

OS名 ボリュームサイズ イメージID
CentOS 6.8 50GB 4bf532e4-02e3-4b0d-b524-90152e264772
100GB 8e965538-736b-404b-98ae-8255178873d5
300GB 2d4eaeb4-8a35-425b-8726-3b5d08efafe6
500GB 667d8b3e-fae6-4763-a7db-67c7ac67736f
1TB 390a7488-2d55-41c7-8620-06dd3a231ec7
2TB 984ba64a-6183-4e39-9b0b-146605f77f95
CentOS 7.2 367eabf1-1074-4235-b52a-4f6c7bd8a677
CentOS 7.3 5d63f9a1-a029-4be5-9e66-76ff6b3b95a3
Ubuntu 14.04 01202b31-7943-450e-a839-44ecc9282e53
Ubuntu 16.04 d47f8b62-5a06-42f9-9af1-55d955e9321f
Debian 7 50GB 66d3db93-a3ab-40ac-bac7-86f83ca776c7
100GB 10b86d8f-eab0-44d7-9668-f9aec5f4db25
300GB ac847dc3-675b-4ccc-bf34-07cb0c54cb59
500GB 9d44d612-6507-437c-8913-1f2b8a406118
1TB 13a5ffe4-6449-4c2b-8f46-c1b1806ac3a2
2TB 3be7cbb8-a8ef-41a0-9b19-5f49b4fa2d34
Debian 8 25f84f6d-ea3a-492b-9daf-d436882fe496

 

・Windows

OS名 ボリュームサイズ イメージID
Windows Server 2008 f53b6b72-d1b5-41d7-902f-5fecaf383205
Windows Server 2012 7da475e0-786f-44a2-8d97-5bff682f3dbb
Windows Server 2008

SQL Server 2008
604259f0-8e2c-4956-b42e-34c0714ab240
Windows Server 2012

SQL Server 2012
c9479725-5e33-41b2-8f8c-6dedee9bc354
Windows Server 2012

SQL Server 2014
00adebfa-f7b5-47aa-9b5d-f1a4d3361cd8

 

 

[ 3 ] ブードストレージを作成します。

パラメータ 指定する値 備考
name 任意のボリューム名 ブートストレージに任意の名前を指定します。
size 50
100
300
500
1000
2000
ストレージの容量を指定します。
curl -i -X POST \
-H “Accept: application/json” \
-H “Content-Type: application/json” \
-H “X-Auth-Token: トークンID” \
-d ‘{“volume”:{“name”:”任意のボリューム名“,”size”:ボリュームサイズ,”volume_type”:”ボリュームタイプ名“,”imageRef”:”イメージID“}}’ \
ボリュームのエンドポイント/volumes

上記リクエストが正常に処理されると作成されたボリュームの情報が返ってきます。ボリュームIDは以降の手順でAPIの操作に必要となりますので、メモをとってください。

{
“volume”: {
“status”: “creating”,
“user_id”: “fe9256e97cbc4b2c8c68743e85311b84”,
“attachments”: [],
“links”: [
{
“href”: “ボリュームのエンドポイント/volumes/ボリュームID“,
“rel”: “self”
},

 

 

グローバルIPアドレスの購入
本リファレンスでは、仮想サーバーに共用グローバルネットワークのグローバルIPアドレスをアタッチさせます。
以下手順では、共用グローバルネットワークのグローバルIPアドレスの購入方法をご案内します。
なお、グローバルIPアドレスを購入済みの場合は、本項目の[ 5 ]からご確認ください。

[ 1 ] 左メニューより [ネットワーク] を選択の上、「ネットワークリスト」の中から [標準グローバルネットワーク] をクリックします。

 

 

[ 2 ] [+ IPアドレス] をクリックします。

 

 

[ 3 ] 追加するグローバルIPアドレスの個数を選択の上、 [追加] をクリックします。

 

 

[ 4 ] 問題がなければ、 [はい] をクリックします。

 

 

[ 5 ] 以下のように標準グローバルネットワーク セグメントリストに追加されます。後述するAPIの操作手順にて使用しますので、「UUID」情報をメモしておきます。

 

 

 

ポート作成ならびにセキュリティグループの設定
仮想サーバーにアタッチさせるグローバルIPアドレスのポートを作成します。
本リファレンスでは、SSHのみ許可する既存のセキュリティグループの「SSH(22)」を設定します。

[ 1 ] サブネットの一覧を取得し、本リファレンスで購入したグローバルIPアドレスのネットワークIDを確認します。

ネットワークのエンドポイント   コントロールパネル内のAPIメニューから「Network Service」をご確認ください。

 

curl -i -X GET \
-H “Accept: application/json” \
-H “Content-Type: application/json” \
-H “X-Auth-Token: トークンID” \                
ネットワークのエンドポイント/v2.0/subnets

上記リクエストが正常に処理されるとサブネットの一覧情報が返ってきます。ネットワークIDは以降の手順でAPIの操作に必要となりますので、サブネット一覧からグローバルIPアドレスなどをもとに対象のネットワークIDをご確認の上、メモをとってください。

{
“subnets”: [
{
“allocation_pools”: [
{
“end”: “グローバルIPアドレス“,
“start”: “グローバルIPアドレス
}
],
“cidr”: “サブネットマスク”,
“dns_nameservers”: [],
“enable_dhcp”: false,
“gateway_ip”: null,
“host_routes”: [],
“id”: “サブネットID“,
“ip_version”: 4,
“ipv6_address_mode”: null,
“ipv6_ra_mode”: null,
“name”: “サブネットの名前”,
“network_id”: “ネットワークID“,
“tenant_id”: “テナントID”
}

 

 

[ 2 ] 本リファレンスで購入したグローバルIPアドレスのポートを作成します。

curl -i -X POST \
-H “Accept: application/json” \
-H “Content-Type: application/json” \
-H “X-Auth-Token: トークンID” \
-d ‘{“port”:{“network_id”:”ネットワークID“,”fixed_ips”:[{“ip_address”:”グローバルIPアドレス“,”subnet_id”:”グローバルIPアドレスのUUID“}]}}’ \
https://networking.jpt1.cloud.z.com/v2.0/ports

上記リクエストが正常に処理されると作成されたポートの情報が返ってきます。ポートIDは以降の手順でAPIの操作に必要となりますので、メモをとってください。

“ports”: [
{
“admin_state_up”: true,
“allowed_address_pairs”: [],
“binding:vnic_type”: “normal”,
“device_id”: “デバイスID”,
“device_owner”: “compute:None”,
“extra_dhcp_opts”: [],
“fixed_ips”: [
{
“ip_address”: “グローバルIPアドレス”,
“subnet_id”: “グローバルIPアドレスのUUID”
}
],
“id”: “ポートID“,
“mac_address”: “MACアドレス”,
“name”: “ポートの名前”,
“network_id”: “ネットワークID”,
“security_groups”: [
“セキュリティグループID”
],
“status”: “ACTIVE”,
“tenant_id”: “テナントID”
},

 

 

[ 3 ] 作成したポートに既存のセキュリティグループの「SSH(22)」を設定します。

curl -X PUT \
-H “Accept: application/json” \
-H “X-Auth-Token: トークンID” \
-d ‘{“port”: {“security_groups”: [“73ce5bb0-f58f-4101-9550-4e10ccd1019c”]}}’ \
ネットワークのエンドポイント/v2.0/ports/ポートID

 

 

 

仮想サーバーの作成
[ 1 ] サーバープランの一覧を取得し、任意のサーバープランのフレーバーIDを確認します。

仮想サーバーのエンドポイント コントロールパネル内のAPIメニューから「Compute Service」をご確認ください。

 

curl -i -X GET \
-H “Accept: application/json” \
-H “Content-Type: application/json” \
-H “X-Auth-Token: トークンID” \
仮想サーバーのエンドポイント/flavors

上記リクエストが正常に処理されるとサーバープランの一覧情報が返ってきます。サーバープランの一覧は以下の通りです。サーバープランのフレーバーIDは以降の手順でAPIの操作に必要となりますので、任意のサーバープランのフレーバーIDについてメモをとってください。

・Standardプラン

プラン名 vCPU メモリ フレーバーID
Standard 1Core 1GB 1 vCPU 1 GB  f92f5a3f-3f45-45a8-9d3c-c7e08fa4f5bb
Standard 1Core 2GB
1 vCPU 2 GB  9e56474d-9e8d-477e-8e92-6ae856ada5ed
Standard 2Core 2GB
2 vCPU 2 GB  e598901d-2b43-4c76-9543-8218c9e1e7ec
Standard 2Core 4GB
2 vCPU 4 GB  5af1b9af-ff71-440f-8113-9f5c27dc35f6
Standard 4Core 4GB
4 vCPU 4 GB  222ad1bb-2b29-4db2-9734-de9cf28609aa
Standard 4Core 8GB
4 vCPU 8 GB  2e84b0e7-dca6-4a46-a40a-019035ac4a6a
Standard 8Core 8GB
8 vCPU 8 GB  7c517cdc-b74b-4b3f-9fb9-3656f392ac28
Standard 8Core 16GB
8 vCPU 16 GB  541c5940-e346-4acd-8a4d-8c6ae72b9503
Standard 16Core 16GB
16 vCPU 16 GB  e525156d-0380-4904-8c02-945e5492c3d5
Standard 16Core 32GB
16 vCPU 32 GB  6e2d9c73-576e-4a71-9203-4c910f1177a7
Standard 32Core 32GB
32 vCPU 32 GB  6f92343e-094f-43a1-9e31-0c5cc7a565b5
Standard 32Core 60GB
32 vCPU 60 GB  321b81e6-ec4a-4479-9bce-62223b41eb14

 

・専有プラン

プラン名 vCPU メモリ フレーバーID
VD40120 40 vCPU 120 GB  999f6379-c35b-4876-87f3-e23345c4dc0f

 

 

[ 2 ] 仮想サーバーを作成します。実行例では以下内容でサーバーを作成します。

パラメータ 指定する値 備考
name(server) ホスト名 仮想サーバーのホスト名になります。任意の名前を指定します。
flavorRef フレーバーID 作成したいサーバープランのフレーバーIDを指定します。本リファレンスでは、Standardプランの「ST0101」を指定します。
adminPass rootの初期パスワード Linux系のOSの場合は、rootの初期パスワードになります。任意のパスワードを指定します。
uuid グローバルIPアドレスのUUID 本リファレンスで購入した共用グローバルネットワークのグローバルIPアドレスのネットワークIDを指定します。
volume_id ボリュームID 本リファレンスで作成したブートストレージのボリュームIDを指定します。
instance_name_tag ネームタグ 仮想サーバーに任意の名前を指定します。コントロールパネルのネームタグ欄に表示される名前になります。

 

curl -i -X POST \
-H “Accept: application/json” \
-H “X-Auth-Token: トークンID” \
-d ‘{
“server”: {
“name”: “ホスト名“,
“flavorRef”: “afb9e401-1fa7-4f94-9f8b-aa5251178a2c”,
“adminPass”: “rootの初期パスワード“,”networks”: [
{
“port”: “グローバルIPアドレスのUUID
}
],
“block_device_mapping”: [
{
“volume_id”: “ボリュームID
}
],
“metadata”: {
“instance_name_tag”: “ネームタグ
}
}
}’ \
仮想サーバーのエンドポイント/servers

 

本リファレンスは S-port cloud EVA にてサーバーをご利用いただく場合の一例であり、お客様の運用やポリシーによってその限りではございません。
お客様のご利用用途に応じて必要な設定や操作をおこなってください。