概要

APIを使用してVPSを作成する方法の一例をご案内します。

・作成するVPSの概要

VPSプラン メモリ1GBプラン
OS CentOS Stream 9
SSH認証方式 パスワード認証
セキュリティグループ IPv4v6-SSH


事前準備

APIを使用するには、事前にAPIユーザーの作成が必要になります。未作成の場合は、以下ドキュメントをご参考に作成ください。

 APIユーザーを作成する

また、各種APIを操作する上で「テナント情報」や「エンドポイント」を使用します。以下ドキュメントをご参考にご確認ください。

 API情報を確認する


APIによるVPSの作成方法

[1] APIを利用するためにトークンを発行します。
  レスポンス結果から「トークン情報」をメモします。

  ※対象のAPIドキュメントは、こちら

Request

curl -i -X POST \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"auth": {"identity": {"methods": ["password"],"password": {"user": {"id": "APIユーザーID","password": "パスワード"}}},"scope": {"project": {"id": "テナントID"}}}}' \
https://identity.c3j1.conoha.io/v3/auth/tokens

Response

HTTP/1.1 201 Created
server: nginx
date: Wed, 15 Nov 2023 10:06:01 GMT
content-type: application/json
content-length: 2709
x-subject-token: トークン情報
vary: X-Auth-Token
x-openstack-request-id: req-f71225d0-44fd-425c-9ea5-f788d1fa0a43
cache-control: no-store
x-frame-options: DENY
x-content-type-options: nosniff


[2] ブートストレージを作成するため、ボリュームタイプ名を確認します。
  レスポンス結果から「c3j1-ds02-boot」をメモします。

  ※対象のAPIドキュメントは、こちら

・ボリュームタイプの種類

ボリュームタイプ名 説明
c3j1-ds02-boot メモリ512MBプラン以外のブートストレージ用を作成する際に使うボリュームタイプです。
c3j1-as01-boot メモリ512MBプランのブートストレージ用を作成する際に使うボリュームタイプです。
c3j1-ds02-add 追加ストレージ用を作成する際に使うボリュームタイプです。


Request

curl -X GET \
-H "Accept: application/json" \
-H "X-Auth-Token: トークン" \
https://block-storage.c3j1.conoha.io/v3/テナントID/types

Response

		{
			"id": "ボリュームタイプID",
			"name": "c3j1-ds02-boot",
			"is_public": true,
			"description": "for vps boot volume",
			"os-volume-type-access:is_public": true
		}


[3] 使用するOSとして「CentOS Stream 9」のイメージIDを確認します。
  レスポンス結果から「イメージID」をメモします。

  ※対象のAPIドキュメントは、こちら

Request

curl -X GET \
-H "Accept: application/json" \
-H "X-Auth-Token: トークン" \
https://image-service.c3j1.conoha.io/v2/images?name=vmi-centos-stream9-amd64

Response

{
	"images": [
		{
			"status": "active",
			"name": "vmi-centos-stream9-amd64",
			"tags": [
				"display_order=100",
				"dst_version=stream9",
				"service_type=vps",
				"dst_name=CentOS"
			],
			"container_format": "ovf",
			"created_at": "2023-10-25T09:08:42Z",
			"disk_format": "qcow2",
			"updated_at": "2023-10-25T09:11:19Z",
			"visibility": "public",
			"self": "/v2/images/テナントID",
			"min_disk": 30,
			"protected": false,
			"id": "イメージID",
			"file": "/v2/images/テナントID/file",


[4] VPSのブートストレージを作成します。
  レスポンス結果から「ボリュームID」をメモします。

  ※対象のAPIドキュメントは、こちら

Request

curl -X POST \
-H "Accept: application/json" \
-H "X-Auth-Token: トークン" \
-d '{"volume": {"size": 100,"description": null,"name": "boot-volume-nametag","volume_type": "c3j1-ds02-boot","imageRef": "イメージID"}}' \
https://block-storage.c3j1.conoha.io/v3/テナントID/volumes

Response

{
	"volume": {
		"id": "ボリュームID",
		"status": "creating",
		"size": 100,
		"availability_zone": "nova",
		"created_at": "2023-11-23T03:49:24.132047",
		"updated_at": null,
		"name": "boot-volume-nametag",
		"description": null,
		"volume_type": "c3j1-ds02-boot",
		"snapshot_id": null,
		"source_volid": null,
		"metadata": {
			"via_api": "ext-api"


[5] 使用するセキュリティグループを確認します。
  レスポンス結果から「IPv4v6-SSH」をメモします。

  ※対象のAPIドキュメントは、こちら

・標準提供の主なセキュリティグループの種類

セキュリティグループ名 説明
default 指定しない場合にデフォルトで設定されるセキュリティグループです。
ご契約環境以外からの接続を拒否します。
IPv4v6-SSH SSH接続用のセキュリティグループです。22番ポートでの接続が可能です。
IPv4v6-RDP リモートデスクトップ接続用のセキュリティグループです。Windows Serverにて使用します。
IPv4v6-Web HTTPやHTTPS接続用のセキュリティグループです。80番や443番ポートでの接続が可能です。
IPv4v6-Mail メール送受信用のセキュリティグループです。587番や110番ポートなど、メール送受信に必要なポートへの接続が可能です。
IPv4v6-FTP FTPやFTPS接続用のセキュリティグループです。20番や21番ポートなど、FTPやFTPS接続に必要なポートへの接続が可能です。


Request

curl -X GET \
-H "Accept: application/json" \
-H "X-Auth-Token: トークン" \
https://networking.c3j1.conoha.io/v2.0/security-groups?fields=name

Response

		{
			"name": "IPv4v6-SSH"
		},


[6] VPSを作成するため、メモリ1GBプランのフレーバーIDを確認します。
  レスポンス結果から「g2l-t-c2m1」の「フレーバーID」をメモします。

  ※対象のAPIドキュメントは、こちら

・主なVPSプランの種類

プラン名 フレーバー名
メモリ1GBプラン g2l-t-c2m1
メモリ2GBプラン g2l-t-c3m2
メモリ4GBプラン g2l-t-c4m4
メモリ8GBプラン g2l-t-c6m8
メモリ16GBプラン g2l-t-c8m16
メモリ32GBプラン g2l-t-c12m32
メモリ64GBプラン g2l-t-c24m64


Request

curl -X GET \
-H "Accept: application/json" \
-H "X-Auth-Token: トークン" \
https://compute.c3j1.conoha.io/v2.1/flavors

Response

		{
			"id": "フレーバーID",
			"name": "g2l-t-c2m1",
			"links": [
				{


[7] VPSを作成します。

  ※対象のAPIドキュメントは、こちら

Request

curl -X POST \
-H "Accept: application/json" \
-H "X-Auth-Token: トークン" \
-d '{"server": {"flavorRef": "フレーバーID","adminPass": "管理者パスワード","block_device_mapping_v2": [{"uuid": "ボリュームID"}],"metadata": {"instance_name_tag": "test-vps"},"security_groups": [{"name": "IPv4v6-SSH"}]}}' \
https://compute.c3j1.conoha.io/v2.1/servers

Response

{
	"server": {
		"id": "サーバーID",
		"links": [
			{
				"rel": "self",
				"href": "https://compute.c3j1.conoha.io/v2.1/servers/ec8fbc40-658f-453d-b817-e66a6cf530f2"
			},
			{
				"rel": "bookmark",
				"href": "https://compute.c3j1.conoha.io/servers/ec8fbc40-658f-453d-b817-e66a6cf530f2"
			}
		],
		"OS-DCF:diskConfig": "MANUAL",
		"security_groups": [],
		"adminPass": "管理者パスワード"
	}
}

本ドキュメントはConoHa VPSのバージョン3.0のAPIをご利用いただく際の一例となり、お客様の運用やポリシーによってその限りではございません。お客様のご利用状況に応じて必要な設定や操作をおこなってください。

また、ConoHaにて提供しておりますAPIにつきましては、クラウド基盤として採用しておりますOpenStackの機能にて実装しておりますので、詳細な情報や使い方はOpenStackのドキュメントにてご確認ください。