0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Vultr APIでリージョンの一覧を取得する

Posted at

前回の記事でAPIキーの発行ができましたので、今回はVultr APIを使ってリージョンの一覧を取得してみます。


「Vultr API」のドキュメントで「Regions」の「List Regions」を参照すると、「/v2/regions」でリージョンの一覧が取得できるようです。

image.png


発行済のAPIキーを環境変数「VULTR_API_KEY」に格納します。

$ export VULTR_API_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

ドキュメント内の「Copy」ボタンをクリックしてターミナルに貼り付けて、 jq コマンドで整形するようにして実行します。
出力結果の最後の「total」からわかるように、全部で32リージョン存在するようです。

$ curl "https://api.vultr.com/v2/regions" \
  -s \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}" | jq .
{
  "regions": [
    {
      "id": "ams",
      "city": "Amsterdam",
      "country": "NL",
      "continent": "Europe",
      "options": [
        "ddos_protection",
        "block_storage_storage_opt",
        "block_storage_high_perf",
        "load_balancers",
        "kubernetes"
      ]
    },
    ・
    ・
    省略
    ・
    ・
    {
      "id": "yto",
      "city": "Toronto",
      "country": "CA",
      "continent": "North America",
      "options": [
        "ddos_protection",
        "block_storage_storage_opt",
        "load_balancers",
        "kubernetes"
      ]
    }
  ],
  "meta": {
    "total": 32,
    "links": {
      "next": "",
      "prev": ""
    }
  }
}

Vultrでは日本リージョンが提供されているので、「country」が「JP」のデータを抽出してみると、「Osaka」と「Tokyo」にリージョンがあることがわかります。

$ curl "https://api.vultr.com/v2/regions" \
  -s \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}" | jq '.regions[] | select(.country == "JP")'
{
  "id": "itm",
  "city": "Osaka",
  "country": "JP",
  "continent": "Asia",
  "options": [
    "ddos_protection",
    "block_storage_storage_opt",
    "load_balancers",
    "kubernetes"
  ]
}
{
  "id": "nrt",
  "city": "Tokyo",
  "country": "JP",
  "continent": "Asia",
  "options": [
    "ddos_protection",
    "block_storage_high_perf",
    "block_storage_storage_opt",
    "load_balancers",
    "kubernetes"
  ]
}

「Vultr API」のドキュメントで「Regions」の「List available plans in region」を参照すると、「/v2/regions/{region-id}/availability」でリージョン毎に利用可能なインスタンスのプランが確認できるようです。

image.png


先ほど取得した「Tokyo」の「id」である「nrt」を使って実行してみると、「Tokyo」リージョンで利用可能なプランの一覧が表示されました。

$ curl "https://api.vultr.com/v2/regions/nrt/availability" \
  -s \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}" | jq .
{
  "available_plans": [
    "vbm-8c-132gb",
    "vbm-6c-32gb",
    "vbm-24c-256gb-amd",
    "vbm-8c-132gb-v2",
    "vc2-1c-1gb",
    "vc2-1c-2gb",
    "vc2-2c-2gb",
    "vc2-2c-4gb",
    "vc2-4c-8gb",
    "vc2-6c-16gb",
    "vc2-8c-32gb",
    "vc2-16c-64gb",
    "vc2-24c-96gb",
    "vhf-1c-1gb",
    "vhf-1c-2gb",
    "vhf-2c-2gb",
    "vhf-2c-4gb",
    "vhf-3c-8gb",
    "vhf-4c-16gb",
    "vhf-6c-24gb",
    "vhf-8c-32gb",
    "vhf-12c-48gb",
    "vhf-16c-58gb",
    "vhp-1c-1gb-amd",
    "vhp-1c-2gb-amd",
    "vhp-2c-2gb-amd",
    "vhp-2c-4gb-amd",
    "vhp-4c-8gb-amd",
    "vhp-4c-12gb-amd",
    "vhp-8c-16gb-amd",
    "vhp-12c-24gb-amd",
    "vhp-1c-1gb-intel",
    "vhp-1c-2gb-intel",
    "vhp-2c-2gb-intel",
    "vhp-2c-4gb-intel",
    "vhp-4c-8gb-intel",
    "vhp-4c-12gb-intel",
    "vhp-8c-16gb-intel",
    "vhp-12c-24gb-intel",
    "voc-c-1c-2gb-25s-amd",
    "voc-g-1c-4gb-30s-amd",
    "voc-m-1c-8gb-50s-amd",
    "voc-c-2c-4gb-50s-amd",
    "voc-g-2c-8gb-50s-amd",
    "voc-c-2c-4gb-75s-amd",
    "voc-c-4c-8gb-75s-amd",
    "voc-g-4c-16gb-80s-amd",
    "voc-m-2c-16gb-100s-amd",
    "voc-s-1c-8gb-150s-amd",
    "voc-c-4c-8gb-150s-amd",
    "voc-c-8c-16gb-150s-amd",
    "voc-g-8c-32gb-160s-amd",
    "voc-m-2c-16gb-200s-amd",
    "voc-m-4c-32gb-200s-amd",
    "voc-c-8c-16gb-300s-amd",
    "voc-c-16c-32gb-300s-amd",
    "voc-s-2c-16gb-320s-amd",
    "voc-g-16c-64gb-320s-amd",
    "voc-m-2c-16gb-400s-amd",
    "voc-m-4c-32gb-400s-amd",
    "voc-m-8c-64gb-400s-amd",
    "voc-s-2c-16gb-480s-amd",
    "voc-g-24c-96gb-480s-amd",
    "voc-c-16c-32gb-500s-amd",
    "voc-c-32c-64gb-500s-amd",
    "voc-s-4c-32gb-640s-amd",
    "voc-g-32c-128gb-640s-amd",
    "voc-g-40c-160gb-768s-amd",
    "voc-m-4c-32gb-800s-amd",
    "voc-m-8c-64gb-800s-amd",
    "voc-m-16c-128gb-800s-amd",
    "voc-s-4c-32gb-960s-amd",
    "voc-g-64c-192gb-960s-amd",
    "voc-c-32c-64gb-1000s-amd",
    "voc-m-24c-192gb-1200s-amd",
    "voc-s-8c-64gb-1280s-amd",
    "voc-g-96c-256gb-1280s-amd",
    "voc-m-8c-64gb-1600s-amd",
    "voc-m-16c-128gb-1600s-amd",
    "voc-m-32c-256gb-1600s-amd",
    "voc-s-8c-64gb-1920s-amd",
    "voc-m-24c-192gb-2400s-amd",
    "voc-s-16c-128gb-2560s-amd",
    "voc-m-16c-128gb-3200s-amd",
    "voc-m-32c-256gb-3200s-amd",
    "voc-s-16c-128gb-3840s-amd",
    "voc-s-24c-192gb-3840s-amd",
    "voc-m-24c-192gb-4800s-amd",
    "voc-s-24c-192gb-5760s-amd",
    "voc-s-32c-256gb-5760s-amd",
    "vcg-a16-2c-8g-2vram",
    "vcg-a100-1c-6g-4vram",
    "vcg-a16-2c-16g-4vram",
    "vcg-a16-3c-32g-8vram",
    "vcg-a40-2c-10g-4vram",
    "vcg-a16-6c-64g-16vram",
    "vcg-a16-12c-128g-32vram",
    "vcg-a16-24c-256g-64vram",
    "vcg-a16-48c-496g-128vram",
    "vcg-a16-96c-960g-256vram"
  ]
}

「Vultr API」のドキュメントにプランのタイプが表示されており、今後利用したいと考えているのは標準タイプの「vc2」なので、「available_plans」が「vc2-」で始まるもののみを抽出してみると、以下の結果が得られました。

image.png

$ curl "https://api.vultr.com/v2/regions/nrt/availability" \
  -s \
  -H "Authorization: Bearer ${VULTR_API_KEY}" | jq '.available_plans[] | select(startswith("vc2-"))'
"vc2-1c-1gb"
"vc2-1c-2gb"
"vc2-2c-2gb"
"vc2-2c-4gb"
"vc2-4c-8gb"
"vc2-6c-16gb"
"vc2-8c-32gb"
"vc2-16c-64gb"
"vc2-24c-96gb"
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?