Compute > Instance > API v2ガイド

APIを使用するにはAPIエンドポイントとトークンなどが必要です。 API使用準備を参照してAPIを使用するのに必要な情報を準備します。

インスタンスAPIはcomputeタイプエンドポイントを利用します。正確なエンドポイントはトークン発行レスポンスのserviceCatalogを参照します。

タイプ リージョン エンドポイント
compute 韓国(パンギョ)リージョン
韓国(坪村)リージョン
日本リージョン
https://kr1-api-instance.infrastructure.cloud.toast.com
https://kr2-api-instance.infrastructure.cloud.toast.com
https://jp1-api-instance.infrastructure.cloud.toast.com

APIレスポンスにガイドに明示されていないフィールドが表示される場合があります。それらのフィールドは、NHN Cloud内部用途で使用され、事前に告知せずに変更する場合があるため使用しないでください。

インスタンスタイプ

タイプリスト表示

GET /v2/{tenantId}/flavors
X-Auth-Token: {tokenId}

リクエスト

このAPIはリクエスト本文を要求しません。

名前 種類 形式 必須 説明
tenantId URL String O テナントID
tokenId Header String O トークンID
minDisk Query Integer - 最小ブロックストレージサイズ(GB)
指定したサイズよりブロックストレージサイズが大きいタイプのみ返す
minRam Query Integer - 最小RAMサイズ(MB)
指定したサイズよりRAMサイズが大きいタイプのみ返す

レスポンス

名前 種類 形式 説明
flavors Body Object インスタンスタイプリストオブジェクト
flavors.id Body UUID インスタンスタイプID
flavors.links Body Object インスタンスタイプパスオブジェクト
flavors.name Body String インスタンスタイプ名

{
  "flavors": [
    {
      "id": "013bea75-8541-4c6f-9abe-a03fee3d74fe",
      "links": [
        {
          "href": "https://kr1-api-instance.infrastructure.cloud.toast.com/v2/6cdebe3eb0094910bc41f1d42ebe4cb7/flavors/013bea75-8541-4c6f-9abe-a03fee3d74fe",
          "rel": "self"
        },
        {
          "href": "https://kr1-api-instance.infrastructure.cloud.toast.com/6cdebe3eb0094910bc41f1d42ebe4cb7/flavors/013bea75-8541-4c6f-9abe-a03fee3d74fe",
          "rel": "bookmark"
        }
      ],
      "name": "x1.c32m256"
    },
    {
      "id": "0f19a344-bc66-4228-8cb1-fb9ca82c54f5",
      "links": [
        {
          "href": "https://kr1-api-instance.infrastructure.cloud.toast.com/v2/6cdebe3eb0094910bc41f1d42ebe4cb7/flavors/0f19a344-bc66-4228-8cb1-fb9ca82c54f5",
          "rel": "self"
        },
        {
          "href": "https://kr1-api-instance.infrastructure.cloud.toast.com/6cdebe3eb0094910bc41f1d42ebe4cb7/flavors/0f19a344-bc66-4228-8cb1-fb9ca82c54f5",
          "rel": "bookmark"
        }
      ],
      "name": "x1.c32m128"
    }
  ]
}


タイプリスト詳細表示

GET /v2/{tenantId}/flavors/detail
X-Auth-Token: {tokenId}

リクエスト

このAPIはリクエスト本文を要求しません。

名前 種類 形式 必須 説明
tenantId URL String O テナントID
tokenId Header String O トークンID
minDisk Query Integer - 最小ブロックストレージサイズ(GB)
指定したサイズよりブロックストレージサイズが大きいタイプのみ返す
minRam Query Integer - 最小RAMサイズ(MB)
指定したサイズよりRAMサイズが大きいタイプのみ返す

レスポンス

名前 種類 形式 説明
flavors Body Object インスタンスタイプリストオブジェクト
flavors.id Body UUID インスタンスタイプID
flavors.links Body Object インスタンスタイプパスオブジェクト
flavors.name Body String インスタンスタイプ名
flavors.ram Body Integer メモリサイズ(MB)
flavors.OS-FLV-DISABLED:disabled Body Boolean 有効/無効
flavors.vcpus Body Integer vCPUの数
flavors.extra_specs Body Object 追加仕様オブジェクト
flavors.swap Body Integer スワップ領域サイズ(GB)
flavors.os-flavor-access:is_public Body Boolean 共有有無
flavors.rxtx_factor Body Float ネットワーク送信/受信パケット比率
flavors.OS-FLV-EXT-DATA:ephemeral Body Integer 臨時ボリュームサイズ(GB)
flavors.disk Body Integer 基本ディスクサイズ(GB)

{
  "flavors": [
    {
      "name": "x1.c32m256",
      "links": [
        {
          "href": "https://kr1-api-instance.infrastructure.cloud.toast.com/v2/6cdebe3eb0094910bc41f1d42ebe4cb7/flavors/97604802-a090-43fa-a5ce-c7cfd737fbba",
          "rel": "self"
        },
        {
          "href": "https://kr1-api-instance.infrastructure.cloud.toast.com/6cdebe3eb0094910bc41f1d42ebe4cb7/flavors/97604802-a090-43fa-a5ce-c7cfd737fbba",
          "rel": "bookmark"
        }
      ],
      "ram": 262144,
      "OS-FLV-DISABLED:disabled": false,
      "vcpus": 32,
      "extra_specs": {
        "flavor_type": "performance"
      },
      "swap": "",
      "os-flavor-access:is_public": true,
      "rxtx_factor": 1.0,
      "OS-FLV-EXT-DATA:ephemeral": 0,
      "disk": 0,
      "id": "97604802-a090-43fa-a5ce-c7cfd737fbba"
    },
    {
      "name": "x1.c32m128",
      "links": [
        {
          "href": "https://kr1-api-instance.infrastructure.cloud.toast.com/v2/6cdebe3eb0094910bc41f1d42ebe4cb7/flavors/31fa632d-aeec-4f12-8a57-ce9d146228e5",
          "rel": "self"
        },
        {
          "href": "https://kr1-api-instance.infrastructure.cloud.toast.com/6cdebe3eb0094910bc41f1d42ebe4cb7/flavors/31fa632d-aeec-4f12-8a57-ce9d146228e5",
          "rel": "bookmark"
        }
      ],
      "ram": 131072,
      "OS-FLV-DISABLED:disabled": false,
      "vcpus": 32,
      "extra_specs": {
        "flavor_type": "performance"
      },
      "swap": "",
      "os-flavor-access:is_public": true,
      "rxtx_factor": 1.0,
      "OS-FLV-EXT-DATA:ephemeral": 0,
      "disk": 0,
      "id": "31fa632d-aeec-4f12-8a57-ce9d146228e5"
    }
  ]
}


アベイラビリティゾーン

可用性リスト表示

GET /v2/{tenantId}/os-availability-zone
X-Auth-Token: {tokenId}

リクエスト

このAPIはリクエスト本文を要求しません。

名前 種類 形式 必須 説明
tenantId URL String O テナントID
tokenId Header String O トークンID

レスポンス

名前 種類 形式 説明
availabilityZoneInfo.hosts Body - アベイラビリティゾーンに属しているホスト情報オブジェクト
常にnullと表示
availabilityZoneInfo.zoneName Body String アベイラビリティゾーン名
availabilityZoneInfo.zoneState Body Object アベイラビリティゾーン状態情報オブジェクト
availabilityZoneInfo.available Body Object アベイラビリティゾーンの状態

{
    "availabilityZoneInfo": [
      {
        "zoneState": {
          "available": true
        },
        "zoneName": "kr-pub-a"
      },
      {
        "zoneState": {
          "available": true
        },
        "zoneName": "kr-pub-b"
      }
    ]
}


キーペア

キーペアリスト表示

GET /v2/{tenantId}/os-keypairs
X-Auth-Token: {tokenId}

リクエスト

このAPIはリクエスト本文を要求しません。

名前 種類 形式 必須 説明
tenantId URL String O テナントID
tokenId Header String O トークンID

レスポンス

名前 種類 形式 説明
keypairs Body Array キーペアオブジェクトリスト
keypairs.keypair Body Object キーペアオブジェクト
keypairs.keypair.name Body String キーペア名
keypairs.keypair.public_key Body String 公開鍵
keypairs.keypair.fingerprint Body String キーペア指紋

{
  "keypairs": [
    {
      "keypair": {
        "public_key": "ssh-rsa ... Generated-by-Nova",
        "name": "keypair",
        "fingerprint": "SHA256:..."
      }
    }
  ]
}


キーペア表示

GET /v2/{tenantId}/os-keypairs/{keypairName}
X-Auth-Token: {tokenId}

リクエスト

このAPIはリクエスト本文を要求しません。

名前 種類 形式 必須 説明
tenantId URL String O テナントID
keypairName URL String O キーペア名
tokenId Header String O トークンID

レスポンス

名前 種類 形式 説明
keypair Body Object キーペアオブジェクトリスト
keypair.public_key Body String 公開鍵
keypair.user_id Body String キーペアのオーナーID
keypair.name Body String キーペア名
keypair.deleted Body Boolean キーペアが削除されているかどうか
keypair.created_at Body Datetime キーペア作成日時
YYYY-MM-DDThh:mm:ss.SSSSSS
keypair.updated_at Body Datetime キーペア修正日時
YYYY-MM-DDThh:mm:ss.SSSSSS
keypair.deleted_at Body Datetime キーペア削除日時
YYYY-MM-DDThh:mm:ss.SSSSSS
keypair.fingerprint Body String キーペア指紋
keypair.id Body Integer キーペアID

{
  "keypair": {
    "public_key": "ssh-rsa ... Generated-by-Nova",
    "user_id": "826a1213b3f746829515486965690dfe",
    "name": "keypair",
    "deleted": false,
    "created_at": "2020-02-07T03:46:48.000000",
    "updated_at": null,
    "fingerprint": "SHA256:...",
    "deleted_at": null,
    "id": 51
  }
}


キーペアの作成/登録

POST /v2/{tenantId}/os-keypairs
X-Auth-Token: {tokenId}

リクエスト

名前 種類 形式 必須 説明
tenantId URL String O テナントID
tokenId Header String O トークンID
keypair Body Object O キーペアオブジェクト
keypair.name Body String O 作成または登録するキーペア名
keypair.public_key Body String - 登録する公開鍵。このフィールドが省略されている場合、新しいキーペアを作成します。

{
    "keypair": {
        "name": "keypair-d20a3d59-9433-4b79-8726-20b431d89c78",
        "public_key": "ssh-rsa ... Generated-by-Nova"
    }
}

レスポンス

名前 種類 形式 説明
keypair Body Object キーペアオブジェクト
keypair.public_key Body String 公開鍵
keypair.private_key Body String 秘密鍵。新しいキーペアを作成した場合に秘密鍵を返します。
keypair.user_id Body String キーペアのオーナーID
keypair.name Body String キーペア名
keypair.fingerprint Body String キーペア指紋

{
    "keypair": {
        "fingerprint": "SHA256:+EZoD ... /DKiGnY4zf5tYrcix0",
        "name": "keypair",
        "public_key": "ssh-rsa ... Generated-by-Nova",
        "user_id": "436f727b7c9142f896ddd56be591dd7f"
    }
}


キーペアを削除する

DELETE /v2/{tenantId}/os-keypairs/{keypairName}
X-Auth-Token: {tokenId}

リクエスト

このAPIはリクエスト本文を要求しません。

名前 種類 形式 必須 説明
tenantId URL String O テナントID
keypairName URL String O キーペア名
tokenId Header String O トークンID

レスポンス

このAPIはレスポンス本文を返しません。

インスタンス

インスタンス状態

インスタンスはさまざまな状態を持ち、状態によって行える動作が決められています。インスタンス状態リストは次のとおりです。

状態名 説明
ACTIVE インスタンスがアクティブな状態の場合
BUILDING インスタンスが作成中の場合
STOPPED インスタンスが停止している場合
DELETED インスタンスが削除されている場合
REBOOT インスタンスを再起動した場合
HARD_REBOOT インスタンスを強制的に再起動した場合。物理サーバーの電源を落とし、再び入れるのと同じ動作。
RESIZED インスタンスタイプを変更したり、インスタンスを他のホストへ移した場合。
インスタンスが停止して、再び起動した状態。
REVERT_RESIZE インスタンスタイプを変更したり、インスタンスを他のホストへ移す過程で失敗した時、元の状態に戻すために復旧する場合
VERIFY_RESIZE インスタンスが、タイプ変更またはインスタンスを他のホストへ移す過程を終えてユーザーの承認を待っている場合。
NHN Cloudではこの場合、自動的にACTIVE状態に変わる。
ERROR 直前にインスタンスに行った動作が失敗した場合
PAUSED インスタンスが一時停止した場合。一時停止したインスタンスはハイパーバイザのメモリに保存される。
REBUILD インスタンスを作成時、イメージから新たに作り出す状態
RESCUED インスタンスを復旧モードで実行中
SUSPENDED インスタンスが管理者により最大節電モードになっている場合
UNKNOWN インスタンスの状態が不明な場合。インスタンスがこの状態になった場合、管理者に問い合わせます。

インスタンスリスト表示

GET /v2/{tenantId}/servers
X-Auth-Token: {tokenId}

リクエスト

このAPIはリクエスト本文を要求しません。

名前 種類 形式 必須 説明
tenantId URL String O テナントID
tokenId Header String O トークンID
reservation_id Query String - インスタンス作成予約ID。
予約IDを指定すると、同時に作成されたインスタンスリストのみ返す。
changes-since Query Datetime - 指定された日時以降に変更されたインスタンスリストを返す。YYYY-MM-DDThh:mm:ssの形式。
image Query UUID - イメージID
指定されたイメージを使用したインスタンスリストを返す
flavor Query UUID - インスタンスタイプID
指定されたタイプを使用しているインスタンスリストを返す
name Query String - インスタンス名
指定された名前のインスタンスリストを返す。正規表現を使用可能。
status Query Enum - インスタンスの状態
指定された状態のインスタンスリストを返す
limit Query Integer - インスタンスリスト数
指定された数のインスタンスリストを返す
marker Query UUID - リストの最初のインスタンスUUID
ソート基準に従ってmarkerに指定されたインスタンスからlimit数分のインスタンスリストを返す

レスポンス

名前 種類 形式 説明
servers Body Object インスタンスリストオブジェクト
id Body UUID インスタンスUUID
links body Object インスタンスパスオブジェクト
name body String インスタンス名

{
  "servers": [
    {
      "id": "aaf2778b-ea03-4ccc-8b1b-92f4b686c3ec",
      "links": [
        {
          "href": "https://kr1-api-instance.infrastructure.cloud.toast.com/v2/6cdebe3eb0094910bc41f1d42ebe4cb7/servers/aaf2778b-ea03-4ccc-8b1b-92f4b686c3ec",
          "rel": "self"
        },
        {
          "href": "https://kr1-api-instance.infrastructure.cloud.toast.com/6cdebe3eb0094910bc41f1d42ebe4cb7/servers/aaf2778b-ea03-4ccc-8b1b-92f4b686c3ec",
          "rel": "bookmark"
        }
      ],
      "name": "Web-Server"
    }
  ]
}


インスタンスリスト詳細表示

インスタンスリスト表示と同じように現在テナントに作成されているインスタンスリストを返します。ただし、各インスタンスの詳細な情報が一緒に照会されます。

GET /v2/{tenantId}/servers/detail
X-Auth-Token: {tokenId}

リクエスト

インスタンスリスト表示と同じリクエスト形式です。

レスポンス

名前 種類 形式 説明
servers body Object インスタンスリストオブジェクト
status body Enum インスタンスの状態
servers.id Body UUID インスタンスID
servers.name Body String インスタンス名。最大255文字。
servers.updated Body Datetime インスタンスの最終修正日時。YYYY-MM-DDThh:mm:ssZ形式。
servers.hostId Body String インスタンスが起動中のホストID
servers.addresses Body Object インスタンスIPリストオブジェクト。
インスタンスに接続されたポート数分のリストが作成される。
servers.addresses."Network名" Body Object インスタンスに接続されている各Networkのポート情報
servers.addresses."Network名".OS-EXT-IPS-MAC:mac_addr Body String インスタンスに接続されたポートのMACアドレス
servers.addresses."Network名".version Body Integer インスタンスに接続されたポートのIPバージョン
NHN CloudはIPv4のみサポート
servers.addresses."Network名".addr Body String インスタンスに接続されたポートのIPアドレス
servers.addresses."Network名".OS-EXT-IPS:type Body Enum ポートのIPアドレスタイプ
fixedまたはfloatingのいずれか1つ。
servers.links Body Object インスタンスパスオブジェクト
servers.key_name Body String インスタンスキーペア名
servers.image Body Object インスタンスイメージオブジェクト
servers.image.id Body UUID インスタンスイメージID
servers.image.links Body Object インスタンスイメージパスオブジェクト
servers.OS-EXT-STS:task_state Body String インスタンス作業状態
インスタンスに動作を加えた時、動作進行状態を伝える。
servers.OS-EXT-STS:vm_state Body String インスタンスの現在の状態
servers.OS-SRV-USG:launched_at Body Datetime インスタンスの最終起動日時
YYYY-MM-DDThh:mm:ss.ssssss形式
servers.OS-SRV-USG:terminated_at Body Datetime インスタンスの削除日時
YYYY-MM-DDThh:mm:ssZ形式
servers.flavor Body Object インスタンスタイプ情報オブジェクト
servers.flavor.id Body UUID インスタンスタイプID
servers.flavor.links Body Object インスタンスタイプパスオブジェクト
servers.security_groups Body Object インスタンスに割り当てられたセキュリティグループリストオブジェクト
servers.security_groups.name Body String インスタンスに割り当てられたセキュリティグループ名
servers.user_id Body String インスタンスを作成したユーザーID
servers.created Body Datetime インスタンス作成日時。YYYY-MM-DDThh:mm:ssZ形式
servers.tenant_id Body String インスタンスが属しているテナントID
servers.OS-DCF:diskConfig Body Enum インスタンスディスクパーティション方式。MANUALまたはAUTOのいずれか1つ。
AUTO:自動的に全ディスクを1つのパーティションに設定
MANUAL:イメージに指定された通りにパーティションを設定。イメージで設定されたサイズよりブロックストレージのサイズが大きい場合、使用しないまま残す。NHN CloudはMANUALを使用
servers.os-extended-volumes:volumes_attached Body Object インスタンスに接続された追加ボリュームリストオブジェクト
servers.os-extended-volumes:volumes_attached.id Body UUID インスタンスに接続された追加ボリュームID
servers.OS-EXT-STS:power_state Body Integer インスタンスの電源の状態
- 1: On
- 4: Off
servers.metadata Body Object インスタンスメタデータオブジェクト
インスタンスメタデータをキーと値のペアで保管

{
  "servers": [
    {
      "status": "ACTIVE",
      "updated": "2020-02-25T01:22:24Z",
      "hostId": "078d06f898889699f8731d030812e43d2c417edb2cf641dda598c7bd",
      "addresses": {
        "vpc2": [
          {
            "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:54:a7:64",
            "version": 4,
            "addr": "172.16.0.40",
            "OS-EXT-IPS:type": "fixed"
          }
        ]
      },
      "links": [
        {
          "href": "https://kr1-api-instance.infrastructure.cloud.toast.com/v2/6cdebe3eb0094910bc41f1d42ebe4cb7/servers/aaf2778b-ea03-4ccc-8b1b-92f4b686c3ec",
          "rel": "self"
        },
        {
          "href": "https://kr1-api-instance.infrastructure.cloud.toast.com/6cdebe3eb0094910bc41f1d42ebe4cb7/servers/aaf2778b-ea03-4ccc-8b1b-92f4b686c3ec",
          "rel": "bookmark"
        }
      ],
      "key_name": "access-key",
      "image": {
        "id": "8b9f8d47-b89b-45af-b1d6-3f7ce7e06a11",
        "links": [
          {
            "href": "https://kr1-api-instance.infrastructure.cloud.toast.com/6cdebe3eb0094910bc41f1d42ebe4cb7/images/8b9f8d47-b89b-45af-b1d6-3f7ce7e06a11",
            "rel": "bookmark"
          }
        ]
      },
      "OS-EXT-STS:task_state": null,
      "OS-EXT-STS:vm_state": "active",
      "OS-SRV-USG:launched_at": "2020-02-25T01:22:23.000000",
      "flavor": {
        "id": "35a73b57-58a7-434d-aa08-5249aaa95b3e",
        "links": [
          {
            "href": "https://kr1-api-instance.infrastructure.cloud.toast.com/6cdebe3eb0094910bc41f1d42ebe4cb7/flavors/35a73b57-58a7-434d-aa08-5249aaa95b3e",
            "rel": "bookmark"
          }
        ]
      },
      "id": "aaf2778b-ea03-4ccc-8b1b-92f4b686c3ec",
      "security_groups": [
        {
          "name": "default"
        }
      ],
      "OS-SRV-USG:terminated_at": null,
      "OS-EXT-AZ:availability_zone": "kr-pub-b",
      "user_id": "b6ab578c20c94306ac1f41ffc4415b29",
      "name": "Web-Server",
      "created": "2020-02-25T01:15:46Z",
      "tenant_id": "6cdebe3eb0094910bc41f1d42ebe4cb7",
      "OS-DCF:diskConfig": "MANUAL",
      "os-extended-volumes:volumes_attached": [
        {
          "id": "90712f4f-2faa-4e4f-8eb1-9313a8595570"
        }
      ],
      "accessIPv4": "",
      "accessIPv6": "",
      "progress": 0,
      "OS-EXT-STS:power_state": 1,
      "config_drive": "",
      "metadata": {
        "os_distro": "Windows",
        "description": "Windows 2012 R2 STD (2020.02.18)",
        "os_version": "2012 R2 STD",
        "project_domain": "NORMAL",
        "hypervisor_type": "qemu",
        "monitoring_agent": "sysmon",
        "image_name": "Windows 2012 R2 STD (2020.02.18) EN",
        "volume_size": "50",
        "os_architecture": "amd64",
        "login_username": "Administrator",
        "os_type": "Windows",
        "tc_env": "sysmon"
      }
    }
  ]
}


インスタンス表示

GET /v2/{tenantId}/servers/{serverId}
X-Auth-Token: {tokenId}

リクエスト

このAPIはリクエスト本文を要求しません。

名前 種類 形式 必須 説明
tenantId URL String O テナントID
serverId URL UUID O インスタンスID
tokenId Header String O トークンID

レスポンス

名前 種類 形式 説明
server body Object インスタンスオブジェクト
status body Enum インスタンスの状態
server.id Body UUID インスタンスID
server.name Body String インスタンス名。最大255文字。
server.updated Body Datetime インスタンスの最終修正日時。YYYY-MM-DDThh:mm:ssZ形式。
server.hostId Body String インスタンスが起動中のホストID
server.addresses Body Object インスタンスIPリストオブジェクト。
インスタンスに接続されたポート数分のリストが作成される。
server.addresses."Network名" Body Object インスタンスに接続された各Networkのポート情報
server.addresses."Network名".OS-EXT-IPS-MAC:mac_addr Body String インスタンスに接続されたポートのMACアドレス
server.addresses."Network名".version Body Integer インスタンスに接続されたポートのIPバージョン
NHN CloudはIPv4のみサポート
server.addresses."Network名".addr Body String インスタンスに接続されたポートのIPアドレス
server.addresses."Network名".OS-EXT-IPS:type Body Enum ポートのIPアドレスタイプ
fixedまたはfloatingのいずれか1つ。
server.links Body Object インスタンスパスオブジェクト
server.key_name Body String インスタンスキーペア名
server.image Body Object インスタンスイメージオブジェクト
server.image.id Body UUID インスタンスイメージID
server.image.links Body Object インスタンスイメージパスオブジェクト
server.OS-EXT-STS:task_state Body String インスタンス作業状態
インスタンスに動作を加えた時、動作進行状態を伝える。
server.OS-EXT-STS:vm_state Body String インスタンスの現在状態
server.OS-SRV-USG:launched_at Body Datetime インスタンスの最終起動日時
YYYY-MM-DDThh:mm:ss.ssssss形式
server.OS-SRV-USG:terminated_at Body Datetime インスタンスの削除日時
YYYY-MM-DDThh:mm:ssZ形式
server.flavor Body Object インスタンスタイプ情報オブジェクト
server.flavor.id Body UUID インスタンスタイプID
server.flavor.links Body Object インスタンスタイプパスオブジェクト
server.security_groups Body Object インスタンスに割り当てられたセキュリティグループリストオブジェクト
server.security_groups.name Body String インスタンスに割り当てられたセキュリティグループ名
server.user_id Body String インスタンスを作成したユーザーID
server.created Body Datetime インスタンスの作成日時。YYYY-MM-DDThh:mm:ssZ形式
server.tenant_id Body String インスタンスが属しているテナントID
server.OS-DCF:diskConfig Body Enum インスタンスディスクパーティション方式。 MANUALまたはAUTOのいずれか。
AUTO:自動的にディスク全体を1つのパーティションに設定
MANUAL:イメージに指定されたとおりにパーティションを設定。イメージで設定されたサイズよりブロックストレージのサイズが大きい場合、使用せずに残す。NHN CloudはMANUALを使用
server.os-extended-volumes:volumes_attached Body Object インスタンスに接続された追加ボリュームリストオブジェクト
server.os-extended-volumes:volumes_attached.id Body UUID インスタンスに接続された追加ボリュームID
server.OS-EXT-STS:power_state Body Integer インスタンスの電源の状態
- 1: On
- 4: Off
server.metadata Body Object インスタンスメタデータオブジェクト
インスタンスメタデータをキーと値のペアで保管

{
  "server": {
    "status": "ACTIVE",
    "updated": "2020-02-25T01:22:24Z",
    "hostId": "078d06f898889699f8731d030812e43d2c417edb2cf641dda598c7bd",
    "addresses": {
      "vpc2": [
        {
          "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:54:a7:64",
          "version": 4,
          "addr": "172.16.0.40",
          "OS-EXT-IPS:type": "fixed"
        }
      ]
    },
    "links": [
      {
        "href": "https://kr1-api-instance.infrastructure.cloud.toast.com/v2/6cdebe3eb0094910bc41f1d42ebe4cb7/servers/aaf2778b-ea03-4ccc-8b1b-92f4b686c3ec",
        "rel": "self"
      },
      {
        "href": "https://kr1-api-instance.infrastructure.cloud.toast.com/6cdebe3eb0094910bc41f1d42ebe4cb7/servers/aaf2778b-ea03-4ccc-8b1b-92f4b686c3ec",
        "rel": "bookmark"
      }
    ],
    "key_name": "access-key",
    "image": {
      "id": "8b9f8d47-b89b-45af-b1d6-3f7ce7e06a11",
      "links": [
        {
          "href": "https://kr1-api-instance.infrastructure.cloud.toast.com/6cdebe3eb0094910bc41f1d42ebe4cb7/images/8b9f8d47-b89b-45af-b1d6-3f7ce7e06a11",
          "rel": "bookmark"
        }
      ]
    },
    "OS-EXT-STS:task_state": null,
    "OS-EXT-STS:vm_state": "active",
    "OS-SRV-USG:launched_at": "2020-02-25T01:22:23.000000",
    "flavor": {
      "id": "35a73b57-58a7-434d-aa08-5249aaa95b3e",
      "links": [
        {
          "href": "https://kr1-api-instance.infrastructure.cloud.toast.com/6cdebe3eb0094910bc41f1d42ebe4cb7/flavors/35a73b57-58a7-434d-aa08-5249aaa95b3e",
          "rel": "bookmark"
        }
      ]
    },
    "id": "aaf2778b-ea03-4ccc-8b1b-92f4b686c3ec",
    "security_groups": [
      {
        "name": "default"
      }
    ],
    "OS-SRV-USG:terminated_at": null,
    "OS-EXT-AZ:availability_zone": "kr-pub-b",
    "user_id": "b6ab578c20c94306ac1f41ffc4415b29",
    "name": "Web-Server",
    "created": "2020-02-25T01:15:46Z",
    "tenant_id": "6cdebe3eb0094910bc41f1d42ebe4cb7",
    "OS-DCF:diskConfig": "MANUAL",
    "os-extended-volumes:volumes_attached": [
      {
        "id": "90712f4f-2faa-4e4f-8eb1-9313a8595570"
      }
    ],
    "accessIPv4": "",
    "accessIPv6": "",
    "progress": 0,
    "OS-EXT-STS:power_state": 1,
    "config_drive": "",
    "metadata": {
      "os_distro": "Windows",
      "description": "Windows 2012 R2 STD (2020.02.18)",
      "os_version": "2012 R2 STD",
      "project_domain": "NORMAL",
      "hypervisor_type": "qemu",
      "monitoring_agent": "sysmon",
      "image_name": "Windows 2012 R2 STD (2020.02.18) EN",
      "volume_size": "50",
      "os_architecture": "amd64",
      "login_username": "Administrator",
      "os_type": "Windows",
      "tc_env": "sysmon"
    }
  }
}


インスタンスを作成する

インスタンスを作成します。

インスタンス作成APIを呼び出し、インスタンス照会でインスタンスの状態を確認します。

  • インスタンスの状態がACTIVEになるとインスタンスが正常に作成完了します。
  • インスタンスの状態がBUILDINGから長時間変わらなかったり、ERRORの場合は、インスタンス作成引数を確認し、再度作成してください。

  • RAMが2GB以上のインスタンスタイプを使用します。

  • Windowsインスタンスは2GB以上のRAMが必要です。RAM 2GB以上のインスタンスタイプを使用します。

  • 50GB以上の基本ディスクが必要です。
  • U2タイプはWindowsイメージを使用できません。

基本ディスクサイズはLinuxは10GB、Windowsは50GBから指定できます。

POST /v2/{tenantId}/servers
X-Auth-Token: {tokenId}

リクエスト

名前 種類 形式 必須 説明
tenantId URL String O テナントID
tokenId Header String O トークンID
server.security_groups body Object - セキュリティグループリストオブジェクト
省略する場合defaultグループが追加される
server.security_groups.name body String - インスタンスに追加するセキュリティグループ名
server.user_data body String - インスタンス起動後に実行するスクリプトおよび設定
base64エンコーディングされた文字列で65535バイトまで許可
server.availability_zone body String - インスタンスを作成するアベイラビリティゾーン
指定しない場合、任意で選択される
server.imageRef Body String O インスタンスを作成する時に使用するイメージID
server.flavorRef Body String O インスタンスを作成する時に使用するインスタンスタイプID
server.networks Body Object O インスタンスを作成する時に使用するネットワーク情報オブジェクト
指定した数のNICが追加される。ネットワークID、サブネットID、ポートID、固定IPの中から1つ指定
server.networks.uuid Body UUID - インスタンスを作成する時に使用するネットワークID
server.networks.subnet Body UUID - インスタンスを作成する時に使用するネットワークのサブネットID
server.networks.port Body UUID - インスタンスを作成する時に使用するポートID
server.networks.fixed_ip Body String - インスタンスを作成する時に使用する固定IP
server.name Body String O インスタンスの名前
英字基準255文字まで許可、ただし、Windowsイメージの場合は15文字以下にする必要がある。
server.metadata Body Object - インスタンスに追加するメタデータオブジェクト
255文字以下のキーと値のペア
server.block_device_mapping_v2 Body Object - インスタンスのブロックストレージ情報オブジェクト
ローカルディスクを使用するU2以外のインスタンスタイプを使用する場合は必ず指定する必要がある。
server.block_device_mapping_v2.uuid Body String - ブロックストレージの原本ID
ルートボリュームの場合、必ず起動可能な原本でなければならず、イメージの作成ができないWAF、MS-SQL, MySQLイメージが原本のvolumeやsnapshotは使用できません。
imageを除く原本は作成するインスタンスのアベイラビリティゾーンが同じである必要がある
server.block_device_mapping_v2.source_type Body Enum - 作成するブロックストレージ原本のタイプ
image:イメージを利用してブロックストレージ作成
volume:既に作成されたボリュームを使用、 destination_typeは必ずvolumeを指定
snapshot:スナップショットを利用してブロックストレージ作成、 destination_typeは必ずvolumeを指定
server.block_device_mapping_v2.source_type Body Enum - インスタンスのボリューム原型タイプ。NHN Cloudはimageのみサポート。
server.block_device_mapping_v2.destination_type Body Enum - インスタンスボリュームの位置。インスタンスタイプに応じて別々に設定必要。
- local:U2インスタンスタイプを利用する場合。
- volume:U2以外のインスタンスタイプを利用する場合。
server.block_device_mapping_v2.delete_on_termination Body Boolean - インスタンスを削除する時のボリューム処理。デフォルト値はfalse
trueなら削除、falseなら維持
server.block_device_mapping_v2.boot_index Body Integer - 指定したボリュームの起動順序
-0はルートボリューム
- それ以外は追加ボリューム
サイズが大きいほど起動順序が下がる。
server.key_name Body String O インスタンスの接続に使用するキーペア
server.min_count Body Integer - 現在のリクエストで作成するインスタンス数の最小値。
デフォルト値は1。
server.max_count Body Integer - 現在のリクエストで作成するインスタンス数の最大値。
デフォルト値はmin_count、最大値は10。
server.return_reservation_id Body Boolean - インスタンス作成リクエスト予約ID。
Trueに指定すると、インスタンス作成情報の代わりに予約IDを返す。
デフォルト値はFalse

{
  "server": {
    "name": "DB-Master",
    "imageRef": "9956f822-29c9-4f81-9410-0c392d9c8c24",
    "flavorRef": "a4b6a0f7-aeff-4d78-a8d5-7de9f007012d",
    "networks": [{
      "subnet": "b83863ff-0355-4c73-8c10-0bdf66a69aab"
    }],
    "availability_zone": "kr-pub-a",
    "key_name": "access-key",
    "max_count": 1,
    "min_count": 1,
    "block_device_mapping_v2": [{
      "uuid": "9956f822-29c9-4f81-9410-0c392d9c8c24",
      "boot_index": 0,
      "volume_size": 1000,
      "device_name": "vda",
      "source_type": "image",
      "destination_type": "volume",
      "delete_on_termination": 1
    }],
    "security_groups": [{
      "name": "default"
    }]
  }
}

レスポンス

名前 種類 形式 説明
server.security_groups.name Body String 作成したインスタンスのセキュリティグループ名
server.OS-DCF:diskConfig Body Enum インスタンスディスクパーティション方式。 MANUALまたはAUTOのいずれか。NHN CloudではMANUALに設定されている。
AUTO:自動的にディスク全体を1つのパーティションに設定
MANUAL:イメージに指定されたとおりにパーティションを設定。イメージで設定されたサイズよりブロックストレージのサイズが大きい場合、使用せずに残す。
server.id Body UUID 作成したインスタンスのID

{
  "server": {
    "security_groups": [
      {
        "name": "default"
      }
    ],
    "OS-DCF:diskConfig": "MANUAL",
    "id": "3a005d5b-63cf-4493-bfc6-49db990b5b50",
    "links": [
      {
        "href": "https://kr1-api-instance.infrastructure.cloud.toast.com/v2/6cdebe3eb0094910bc41f1d42ebe4cb7/servers/3a005d5b-63cf-4493-bfc6-49db990b5b50",
        "rel": "self"
      },
      {
        "href": "https://kr1-api-instance.infrastructure.cloud.toast.com/6cdebe3eb0094910bc41f1d42ebe4cb7/servers/3a005d5b-63cf-4493-bfc6-49db990b5b50",
        "rel": "bookmark"
      }
    ]
  }
}


インスタンスを修正する

作成されたインスタンスを修正します。変更できるプロパティは一部の項目に制限されます。

PUT /v2/{tenantId}/servers/{serverId}
X-Auth-Token: {tokenId}

リクエスト

名前 種類 形式 必須 説明
tenantId URL String O テナントID
serverId URL UUID O 変更するインスタンスID
tokenId Header String O トークンID
server Body Object O インスタンス変更リクエストオブジェクト
server.name Body String - インスタンスの新しい名前

{
    "server": {
        "name": "new-server-test"
    }
}

レスポンス

インスタンスの表示と同じです。


インスタンスを削除する

作成されたインスタンスを削除します。

DELETE /v2/{tenantId}/servers/{serverId}
X-Auth-Token: {tokenId}

リクエスト

このAPIはリクエスト本文を要求しません。

名前 種類 形式 必須 説明
tenantId URL String O テナントID
serverId URL UUID O 削除するインスタンスID
tokenId Header String O トークンID

レスポンス

このAPIはレスポンス本文を返しません。


ボリューム接続管理

インスタンスに接続されたボリュームリスト表示

GET /v2/{tenantId}/servers/{serverId}/os-volume_attachments
X-Auth-Token: {tokenId}

リクエスト

このAPIはリクエスト本文を要求しません。

名前 種類 形式 必須 説明
tenantId URL String O テナントID
serverId URL UUID O 変更するインスタンスID
tokenId Header String O トークンID
limit Query Integer - 照会するリストの数
offset Query Integer - 返されるリストの開始点
全てのリストの中からoffset番目のボリュームから返す

レスポンス

名前 種類 形式 説明
volumeAttachments Body Array 接続情報オブジェクトリスト
volumeAttachments.device Body String インスタンスのボリューム名
例) /dev/vdb
volumeAttachments.id Body UUID 接続情報ID
volumeAttachments.serverId Body UUID インスタンスID
volumeAttachments.volumeId Body UUID ボリュームID

{
    "volumeAttachments": [
        {
            "device": "/dev/vda",
            "id": "227cc671-f30b-4488-96fd-7d0bf13648d8",
            "serverId": "4b293d31-ebd5-4a7f-be03-874b90021e54",
            "volumeId": "227cc671-f30b-4488-96fd-7d0bf13648d8"
        },
        {
            "device": "/dev/vdb",
            "id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113",
            "serverId": "4b293d31-ebd5-4a7f-be03-874b90021e54",
            "volumeId": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113"
        }
    ]
}


インスタンスに接続されたボリューム表示

GET /v2/{tenantId}/servers/{serverId}/os-volume_attachments/{volumeId}
X-Auth-Token: {tokenId}

リクエスト

このAPIはリクエスト本文を要求しません。

名前 種類 形式 必須 説明
tenantId URL String O テナントID
serverId URL UUID O インスタンスID
volumeId URL UUID O 照会するボリュームID
tokenId Header String O トークンID

レスポンス

名前 種類 形式 説明
volumeAttachment Body Object 接続情報オブジェクト
volumeAttachment.device Body String インスタンスのボリューム名
例) /dev/vdb
volumeAttachment.id Body UUID 接続情報ID
volumeAttachment.serverId Body UUID インスタンスID
volumeAttachment.volumeId Body UUID ボリュームID

{
    "volumeAttachment": {
        "device": "/dev/sdb",
        "id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113",
        "serverId": "1ad6852e-6605-4510-b639-d0bff864b49a",
        "volumeId": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113"
    }
}


インスタンスに追加ボリュームを接続する

POST /v2/{tenantId}/servers/{serverId}/os-volume_attachments
X-Auth-Token: {tokenId}

リクエスト

名前 種類 形式 必須 説明
tenantId URL String O テナントID
serverId URL UUID O 変更するインスタンスID
tokenId Header String O トークンID
volumeAttachment Body Object O ボリューム接続リクエストオブジェクト
volumeAttachment.volumeId Body UUID O 接続するボリュームID

{
  "volumeAttachment": {
      "volumeId": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113"
  }
}

レスポンス

名前 種類 形式 説明
volumeAttachment Body Object 接続情報オブジェクト
volumeAttachment.device Body String インスタンスのボリューム名
例) /dev/vdb
volumeAttachment.id Body UUID 接続情報ID
volumeAttachment.serverId Body UUID インスタンスID
volumeAttachment.volumeId Body UUID ボリュームID

{
    "volumeAttachment": {
        "device": "/dev/vdc",
        "id": "227cc671-f30b-4488-96fd-7d0bf13648d8",
        "serverId": "4b293d31-ebd5-4a7f-be03-874b90021e54",
        "volumeId": "227cc671-f30b-4488-96fd-7d0bf13648d8"
    }
}


インスタンスボリュームの接続を切る

DELETE /v2/{tenantId}/servers/{serverId}/os-volume_attachments/{volumeId}
X-Auth-Token: {tokenId}

リクエスト

このAPIはリクエスト本文を要求しません。

名前 種類 形式 必須 説明
tenantId URL String O テナントID
serverId URL UUID O インスタンスID
volumeId URL UUID O 接続を切るボリュームID
tokenId Header String O トークンID

レスポンス

このAPIはレスポンス本文を返しません。


インスタンス追加機能

NHN Cloudは、次のようなインスタンス制御および付加機能を提供します。

  • インスタンス起動、停止、再起動
  • インスタンスタイプ変更
  • インスタンスイメージ作成
  • セキュリティグループの追加および削除

インスタンスの起動

停止したインスタンスを再び起動し、状態をACTIVEに変更します。このAPIを呼び出すにはインスタンスの状態がSHUTOFFになっている必要があります。

POST /v2/{tenantId}/servers/{serverId}/action
X-Auth-Token: {tokenId}

リクエスト

名前 種類 形式 必須 説明
tenantId URL String O テナントID
serverId URL UUID O 変更するインスタンスID
tokenId Header String O トークンID
os-start Body none O インスタンス起動リクエスト

{
  "os-start" : null
}


レスポンス

このAPIはレスポンス本文を返しません。

インスタンス停止

インスタンスを停止し、状態をSHUTOFFに変更します。このAPIを呼び出すにはインスタンスの状態がACTIVEまたはERRORになっている必要があります。

POST /v2/{tenantId}/servers/{serverId}/action
X-Auth-Token: {tokenId}

リクエスト

名前 種類 形式 必須 説明
tenantId URL String O テナントID
serverId URL UUID O 変更するインスタンスID
tokenId Header String O トークンID
os-stop Body none O インスタンス停止リクエスト

{
  "os-stop" : null
}

レスポンス

このAPIはレスポンス本文を返しません。


インスタンス再起動

インスタンスを再起動します。再起動の方法はSOFTHARDがあります。

  • SOFT方式:「優雅な接続停止(Graceful shutdown)」でインスタンスを停止し、再起動します。インスタンスがACTIVE状態になっている必要があります。
  • HARD方式:強制停止してインスタンスを再起動します。物理サーバーの電源を落とし、再び入れるのと同じ動作です。インスタンスが次の状態の時のみ強制停止できます。
    • ACTIVE
    • ERROR
    • HARD_REBOOT
    • PAUSED
    • REBOOT
    • SHUTOFF
    • SUSPENDED
POST /v2/{tenantId}/servers/{serverId}/action
X-Auth-Token: {tokenId}

リクエスト

名前 種類 形式 必須 説明
tenantId URL String O テナントID
serverId URL UUID O 変更するインスタンスID
tokenId Header String O トークンID
reboot Body Object O インスタンス再起動リクエストオブジェクト
reboot.type Body Enum O 再起動方法。SOFTまたはHARD

{
  "reboot" : {
    "type": "SOFT"
  }
}

レスポンス

このAPIはレスポンス本文を返しません。


インスタンスタイプ変更

インスタンスタイプを変更します。インスタンスがACTIVEまたはSHUTOFF状態の時のみインスタンスタイプを変更できます。インスタンスの状態がACTIVEの場合はインスタンスタイプ変更過程でインスタンスは停止し、再起動します。

使用するイメージやインスタンスタイプによって、変更できるタイプが制限される場合があります。詳細はコンソールユーザーガイドを参照してください。

POST /v2/{tenantId}/servers/{serverId}/action
X-Auth-Token: {tokenId}

リクエスト

名前 種類 形式 必須 説明
tenantId URL String O テナントID
serverId URL UUID O 変更するインスタンスID
tokenId Header String O トークンID
resize Body Object O インスタンスタイプ変更リクエスト
resize.flavorRef Body UUID O 変更するインスタンスタイプID
resize.OS-DCF:diskConfig Body Enum - タイプ変更後、基本ディスクパーティション方式。 MANUALまたはAUTOのいずれか。NHN CloudではMANUALに設定されている。
AUTO:自動的にディスク全体を1つのパーティションに設定
MANUAL:イメージに指定されたとおりにパーティションを設定。イメージで設定されたサイズよりブロックストレージのサイズが大きい場合、使用せずに残す。

{
  "resize" : {
    "flavorRef": "b5f1c148-732c-417d-9d1b-1dffca105dbe"
  }
}

レスポンス

このAPIはレスポンス本文を返しません。


インスタンスイメージ作成

インスタンスからイメージを作成します。U2タイプのインスタンスのみ、このAPIでイメージを作成できます。U2タイプ以外のインスタンスイメージを作成するにはブロックストレージAPIを参照します。

インスタンスの状態がACTIVESHUTOFFSUSPENDEDPAUSEDの時のみイメージを作成できます。イメージの作成は、データの整合性を保障するためにインスタンスを停止した状態で進行することを推奨します。

イメージの作成に成功すると、イメージの状態がactiveに変わります。イメージの作成が完了したことを確認するにはイメージ照会APIで持続的に状態を確認します。

POST /v2/{tenantId}/servers/{serverId}/action
X-Auth-Token: {tokenId}

リクエスト

名前 種類 形式 必須 説明
tenantId URL String O テナントID
serverId URL UUID O 変更するインスタンスID
tokenId Header String O トークンID
createImage Body Object O イメージ作成リクエスト
createImage.name Body String O 作成するイメージの名前
createImage.metadata Body Object - 作成するイメージのメタデータ
Key-Value形式で記述

{
  "createImage" : {
      "name" : "foo-image",
      "metadata": {
          "meta_var": "meta_val"
      }
  }
}

レスポンス

このAPIはレスポンス本文を返しません。作成されたイメージはレスポンスヘッダのLocationで確認します。

名前 種類 形式 説明
Location Header String 作成したイメージURL

セキュリティグループ追加

インスタンスにセキュリティグループを追加します。追加したセキュリティグループはインスタンスのすべてのポートに適用されます。

POST /v2/{tenantId}/servers/{serverId}/action
X-Auth-Token: {tokenId}

リクエスト

名前 種類 形式 必須 説明
tenantId URL String O テナントID
serverId URL UUID O 変更するインスタンスID
tokenId Header String O トークンID
addSecurityGroup Body Object O セキュリティグループ追加リクエストオブジェクト
addSecurityGroup.name Body String O 追加するセキュリティグループ名

{
    "addSecurityGroup": {
        "name": "test"
    }
}

レスポンス

このAPIはレスポンス本文を返しません。


セキュリティグループ削除

インスタンスからセキュリティグループを削除します。インスタンスのすべてのポートから指定したセキュリティグループが削除されます。

POST /v2/{tenantId}/servers/{serverId}/action
X-Auth-Token: {tokenId}

リクエスト

名前 種類 形式 必須 説明
tenantId URL String O テナントID
serverId URL UUID O 変更するインスタンスID
tokenId Header String O トークンID
removeSecurityGroup Body Object O セキュリティグループ削除リクエストオブジェクト
removeSecurityGroup.name Body String O 削除するセキュリティグループ名

{
    "removeSecurityGroup": {
        "name": "test"
    }
}

レスポンス

このAPIはレスポンス本文を返しません。

TOP