APIでVPSを作成する
概要
APIを使用してVPSを作成する方法の一例をご案内します。
・作成するVPSの概要
VPSプラン | メモリ1GBプラン |
---|---|
OS | CentOS Stream 9 |
SSH認証方式 | パスワード認証 |
セキュリティグループ | IPv4v6-SSH |
事前準備
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のドキュメントにてご確認ください。