APIで仮想サーバーを作成する
APIを使用して仮想サーバーを作成する方法をご案内します。
以下ではcurlコマンドを用いたAPIの操作手順となりますので、任意のサーバーにて実行ください。
なお、本リファレンスに掲載しておりますフレーバーIDやイメージID等の一覧につきましては、実際のデータと更新に差が出る場合がございますので、ご利用の際はAPIにて最新版の一覧をご取得ください。
トークンの発行
[ 1 ] |
API認証を行い、トークンの取得ならびに発行されたトークンIDを確認します。
※ 対象のAPIリファレンスは こちら |
認証のエンドポイント |
コントロールパネル内の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リファレンスは こちら |
ボリュームのエンドポイント |
コントロールパネル内のAPIメニューから「Volume Service」をご確認ください。 |
curl -i -X GET \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Auth-Token: トークンID" \
ボリュームのエンドポイント/types
|
上記リクエストが正常に処理されるとボリュームタイプの一覧情報が返ってきます。ボリュームタイプの一覧は以下の通りです。ボリュームタイプ名は以降の手順でAPIの操作に必要となりますので、任意のタイプ名についてメモをとってください。 |
ボリュームタイプ名 |
IOPS |
備考 |
sd4-iops-500 |
500 |
ボリュームサイズが50GBの時のみ指定可能 |
sd4-iops-1k |
1,000 |
ボリュームサイズが100GB以上の時に指定可能 |
sd4-iops-5k |
5,000 |
ボリュームサイズが100GB以上の時に指定可能 |
sd4-iops-10k |
10,000 |
ボリュームサイズが100GB以上の時に指定可能 |
[ 2 ] |
OSイメージの一覧を取得し、イメージIDを確認します。
※ 対象のAPIリファレンスは こちら |
イメージのエンドポイント |
コントロールパネル内の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 7.2 |
38255449-f5e7-443a-a98c-9b96557dd5fa |
CentOS 7.3 |
886dc1cb-0a11-4fc5-9236-50da1965aa30 |
CentOS 7.4 |
c84c560d-a658-4ac7-8028-74473b58c403 |
CentOS 7.5 |
c276b43e-42f5-4d6d-9352-c92ca88a26d8 |
CentOS 7.6 |
4c4dce8d-0588-48ec-a143-5e842bb322f5 |
CentOS 8.0 |
2f36c659-0fa9-4d42-bda3-60a74b9a56da |
CentOS Stream 8 |
874b168f-2888-4dea-b518-2ff8250553ee |
AlmaLinux 8.3 |
4c88e7e5-b441-4c3b-a1bd-bb7f09dad942 |
Oracle Linux 8.3 |
e9c0a5f1-d14b-4e76-9751-1fcc9496582e |
Rocky Linux 8.4 |
26c242ad-443d-4bde-8705-ca16166a5507 |
Ubuntu 18.04 |
d96822eb-d96c-4cbc-9652-8cbf3bb6ea0b |
Ubuntu 20.04 |
0641d684-83a6-4a45-9483-ef23dac6f124 |
Debian 9 |
f283b3ad-0f64-4dcf-aad4-8f08d3ca44e3 |
・Windows
OS名 |
イメージID |
Windows Server 2012 |
53d92e0b-57a2-4fe5-80f6-afc633022741 |
Windows Server 2016 |
36db7ae2-bf86-4109-9a15-d95aaba63e7d |
Windows Server 2019 |
c5ecf8d9-7cfa-4286-b132-a27c4c744851 |
Windows Server 2012+SQL Server 2012 |
6cd1278e-1256-4963-b317-cc67a64e0578 |
Windows Server 2012+SQL Server 2014 |
5c6bde40-57d9-433d-9a89-73cce67f191b |
Windows Server 2016+SQL Server 2016 |
af0797e3-ed51-4208-9c1e-04b8b76a7cda |
Windows Server 2019+SQL Server 2019 |
7b29eee2-cdfa-480c-abd9-f6d6094823f9 |
[ 3 ] |
ブードストレージを作成します。
※ 対象のAPIリファレンスは こちら |
パラメータ |
指定する値 |
備考 |
name |
任意のボリューム名 |
ブートストレージに任意の名前を指定します。 |
size |
5010030050010002000 |
ストレージの容量を指定します。 |
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アドレスを購入済みの場合は、本項目の[ 5 ]からご確認ください。
[ 1 ] |
左メニューより [ネットワーク] を選択の上、「ネットワークリスト」の中から [標準グローバルネットワーク] をクリックします。 |
[ 2 ] |
[+ IPアドレス] をクリックします。 |
[ 3 ] |
追加するグローバルIPアドレスの個数を選択の上、 [追加] をクリックします。 |
[ 4 ] |
問題がなければ、 [はい] をクリックします。 |
[ 5 ] |
以下のように標準グローバルネットワーク セグメントリストに追加されます。後述するAPIの操作手順にて使用しますので、「UUID」情報をメモしておきます。 |
仮想サーバーにアタッチさせるグローバルIPアドレスのポートを作成します。
本リファレンスでは、SSHのみ許可する既存のセキュリティグループの「SSH(22)」を設定します。
[ 1 ] |
サブネットの一覧を取得し、本リファレンスで購入したグローバルIPアドレスのネットワークIDを確認します。
※ 対象のAPIリファレンスは こちら |
ネットワークのエンドポイント |
コントロールパネル内の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アドレスのポートを作成します。
※ 対象のAPIリファレンスは こちら |
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 ] |
作成したポートに任意のセキュリティグループを設定します。セキュリティグループを作成していない場合は、本項目は実施せず、仮想サーバーを作成後、コントロールパネルから既存のセキュリティグループを設定してください。 |
curl -X PUT \
-H "Accept: application/json" \
-H "X-Auth-Token: トークンID" \
-d '{"port": {"security_groups": ["任意のセキュリティグループID"]}}' \
ネットワークのエンドポイント/v2.0/ports/ポートID
[ 1 ] |
サーバープランの一覧を取得し、任意のサーバープランのフレーバーIDを確認します。
※ 対象のAPIリファレンスは こちら |
仮想サーバーのエンドポイント |
コントロールパネル内の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 |
ST0101 |
1 vCPU |
1 GB |
afb9e401-1fa7-4f94-9f8b-aa5251178a2c |
ST0102 |
1 vCPU |
2 GB |
2b6d102a-02a8-4602-87a8-1fe030e3ea37 |
ST0202 |
2 vCPU |
2 GB |
be2fab19-5262-4ea1-b60c-ab31a6b7f26d |
ST0204 |
2 vCPU |
4 GB |
42e9c51d-4a88-4d28-acc3-ccf417fd41d6 |
ST0404 |
4 vCPU |
4 GB |
92e9adda-e38b-43d4-8f0c-5244900cbff9 |
ST0406 |
4 vCPU |
6 GB |
89204406-9c2d-4d1c-a643-16d8ccdf1653 |
ST0408 |
4 vCPU |
8 GB |
43f79170-7850-4d78-ab99-3fb81272c577 |
ST0808 |
8 vCPU |
8 GB |
17a3ad5d-fd24-4006-8bf9-1755185ea57d |
ST0812 |
8 vCPU |
12 GB |
e574bf5e-d026-4115-be37-c81af68016e4 |
ST0816 |
8 vCPU |
16 GB |
4f4b9b47-26c3-45b5-8c9f-c7ac69e0d06e |
ST1616 |
16 vCPU |
16 GB |
36a07dba-d8f4-443f-b63f-f1f7f302c9d6 |
ST1632 |
16 vCPU |
32 GB |
9846e854-d927-470c-bed2-4ce8117206e2 |
ST3232 |
32 vCPU |
32 GB |
eea3e705-2142-4b00-b9ea-ab26d6a32289 |
ST3260 |
32 vCPU |
60 GB |
86b9f18a-e4a6-4096-9ff3-d2fbbc578e6a |
・High CPUプラン
プラン名 |
vCPU |
メモリ |
フレーバーID |
HC0401 |
4 vCPU |
1 GB |
aef66825-e17d-4ce7-8527-b736738e7731 |
HC0802 |
8 vCPU |
2 GB |
8af4be4a-867e-4b19-ad05-936dc20292df |
HC1602 |
16 vCPU |
2 GB |
5e62060a-7a5b-4d81-9bc6-99966c041b1a |
HC1604 |
16 vCPU |
4 GB |
82fd48bf-3739-4c7a-8fe0-81e136ac2b84 |
HC3204 |
32 vCPU |
4 GB |
3d61d7f3-8b9c-4876-94e8-6373cee8f9a4 |
HC3208 |
32 vCPU |
8 GB |
a9257edc-2c19-4cbf-bbf0-ddcc2150f77f |
・High MEMプラン
プラン名 |
vCPU |
メモリ |
フレーバーID |
HM0104 |
1 vCPU |
4 GB |
b2d22a49-6611-4ea8-80bc-7c5cf0a7db90 |
HM0108 |
1 vCPU |
8 GB |
f05aa80f-f75e-4ea4-bfdf-999e7323ff4c |
HM0208 |
2 vCPU |
8 GB |
be5d83cf-9ac7-49c1-87ef-b09d378730db |
HM0216 |
2 vCPU |
16 GB |
b5b4e613-10ac-4d21-a025-e4d897bf9cd3 |
HM0416 |
4 vCPU |
16 GB |
d102f295-fb8c-48e6-a4b1-53dd4a66f288 |
HM0432 |
4 vCPU |
32 GB |
98a0d69b-0972-41eb-bccb-2950f68d924b |
HM0832 |
8 vCPU |
32 GB |
25d09028-85e9-4d51-8a2a-e58a31959048 |
・専有プラン
プラン名 |
vCPU |
メモリ |
フレーバーID |
VD40120 |
40 vCPU |
120 GB |
999f6379-c35b-4876-87f3-e23345c4dc0f |
[ 2 ] |
仮想サーバーを作成します。実行例では以下内容でサーバーを作成します。
※ 対象のAPIリファレンスは こちら |
パラメータ |
指定する値 |
備考 |
name(server) |
ホスト名 |
仮想サーバーのホスト名になります。任意の名前を指定します。 |
flavorRef |
フレーバーID |
作成したいサーバープランのフレーバーIDを指定します。 |
adminPass |
rootの初期パスワード |
Linux系のOSの場合は、rootの初期パスワードになります。任意のパスワードを指定します。 |
port |
ポートID |
本リファレンスで作成したポートのポートIDを指定します。 |
volume_id |
ボリュームID |
本リファレンスで作成したブートストレージのボリュームIDを指定します。 |
instance_name_tag |
ネームタグ |
仮想サーバーに任意の名前を指定します。コントロールパネルのネームタグ欄に表示される名前になります。 |
curl -X POST \
-H "Accept: application/json" \
-H "X-Auth-Token: トークンID" \
-d '{
"server": {
"name": "ホスト名",
"flavorRef": "フレーバーID",
"adminPass": "rootの初期パスワード",
"networks": [
{
"port": "ポートID"
}
],
"block_device_mapping": [
{
"volume_id": "ボリュームID"
}
],
"metadata": {
"instance_name_tag": "ネームタグ"
}
}
}' \
仮想サーバーのエンドポイント/servers
本リファレンスはZ.com Cloudにてサーバーをご利用いただく場合の一例であり、お客様の運用やポリシーによってその限りではございません。
お客様のご利用用途に応じて必要な設定や操作をおこなってください。