- 目的(試すだけ / API を立てる / 32 GB に載らない)から、借りる GPU の枚数と契約の種類を決めるまでの分岐
- 本書全体の作業順と、どの段でどの課金メーターが回り始めるか
- 場面から引ける
vastaiコマンド早見表(コピペで動く形) - 2026-08-24 時点の実測価格と、見積りに使う 2 本の式
- 借りる前 / 動かしている間 / 撤収の 3 つのチェックリストと、用語辞典
この章は読み物ではなく、作業中に開いて引くためのページです。表と図が主役なので、頭から通読する必要はありません。詰まったら該当する節だけを見て、詳しい理由が知りたくなったら各節が示す章に戻ってください。
目的から構成を決める
最初の分岐は「何をしたいか」の 1 問だけです。GPU の枚数と契約の種類はここで決まり、あとの手順は 4 つの枝でほとんど共通になります。
3 番目の枝(32 GB に載らない)で他の GPU に移るときは、値段の桁が変わります。同じ日に取得した他機種の相場を並べておきます。
| GPU | VRAM | 最安 USD/時 | 中央値 USD/時 |
|---|---|---|---|
| RTX 3090 | 24576 MB | 0.069 | 0.137 |
| RTX 4090 | 24564 MB | 0.135 | 0.336 |
| RTX 5090 | 32607 MB | 0.3215 | 0.4037 |
| L40S | 46068 MB | 0.536 | 0.801 |
| A100 SXM4 | 40960 / 81920 MB | 0.601 | 0.801 |
| RTX PRO 6000 WS | 97887 MB | 0.761 | 1.136 |
| H100 SXM | 81559 MB | 1.336 | 1.936 |
2026-08-24 時点の実測です。出品数が 64 件を超える機種(3090・4090・5090)は安い順に 64 件しか取得できていないため、中央値は実際の分布より安い側に寄っています。最安値は信頼できます。理由と読み方は第 1 章と第 5 章にあります。
作業順とコストの発生点
本書の全体はこの 1 枚に収まります。課金メーターが回り始めるのは Rent を押した瞬間です。そこまでの 4 段(アカウント作成とメール検証・入金・鍵登録・検索)では、メーターは 1 秒も回りません。入金は残高に置くだけで、借りなければ減りません。ただしメールアドレスの検証を済ませていないとインスタンスは借りられません(未検証だと新規ユーザーの支出上限がほぼゼロのままになります)。
各段の詳細に戻るときの索引です。
- アカウント作成とメール検証、入金 → 第 4 章
- SSH 公開鍵の登録(借りる前に済ませる) → 第 8 章
- offer を読む・種別を選ぶ・テンプレートとディスクを決める → 第 5 章・第 6 章・第 7 章
- Rent して起動を待つ → 第 8 章
- SSH で入る / ブラウザから使う → 第 9 章・第 10 章
- モデルを落とす → 第 11 章
- Ollama / vLLM / llama.cpp で動かす → 第 12 章・第 13 章・第 14 章
- 手元の Mac / PC から使う → 第 15 章
- 止める・消す・請求を確認する → 第 16 章
- 症状から原因を引く → 第 17 章
コマンド早見表
<...> で囲んだ部分は自分の値に置き換えます。CLI(= コマンドラインから vast.ai を操作する道具)の入れ方は公式に 2 通りあり、Mac・Linux・WSL(= Windows の中で Linux を動かす仕組み)はインストーラ、Windows はそのままなら pip(= Python にライブラリを入れるコマンド)です。入れた直後は新しいターミナルを開いてください(PATH = OS がコマンドを探す場所の一覧の更新をシェルに読み直させるため)。
| やること | コマンド | 覚えておく点 |
|---|---|---|
| CLI を入れる(Mac / Linux / WSL) | curl -fsSL https://vast.ai/install.sh | bash | 入れたら新しいターミナルを開く |
| CLI を入れる(Windows) | pip install vastai | Python 3 が必要 |
| API キーを保存 | vastai set api-key <YOUR_API_KEY> | ~/.config/vastai/vast_api_key に入る。環境変数 VAST_API_KEY があればそちらが優先 |
| 認証できているか確認 | vastai show user | credit(残高)が返れば成功 |
| SSH 公開鍵を登録 | vastai create ssh-key ~/.ssh/id_ed25519.pub | インスタンスを作る前に。鍵はコンテナ作成時に適用される |
| 登録済みの鍵を見る | vastai show ssh-keys | 登録は鍵ごとに 1 回でよい |
| 後から鍵を足す | vastai attach ssh <INSTANCE_ID> "$(cat ~/.ssh/id_ed25519.pub)" | Docker インスタンスのみ。VM は後付けできない |
| 5090 を探す | vastai search offers 'gpu_name=RTX_5090 num_gpus=1 rentable=true' -o 'dph' | CLI は RTX_5090(アンダースコア)。> < を使う条件はクォートで囲む。-o 'dph' は時間単価の安い順 |
| 未検証マシンも含めて探す | vastai search offers 'gpu_name=RTX_5090 verified=any' -n | -n は既定クエリ(external=false rentable=true verified=true)を外す。この既定が効いている間は verified のマシンだけが対象になる(2026-08-24 時点の 1×5090 は 64 件中 43 件が非 verified だったので、外すと候補が大きく増える) |
| 借りる | vastai create instance <OFFER_ID> --image <IMAGE> --disk 40 --ssh --direct | <OFFER_ID> は検索結果の id、<IMAGE> は第 7 章で選んだテンプレートの Docker イメージ(5090 では CUDA 12.8 対応のものを保つ)。返る new_contract がインスタンス ID。--disk は必ず明示する |
| 入札して借りる | 上に --bid_price 0.30 を足す | 数字は USD/時。offer の min_bid(現在の最低入札額)以上にしないと動き出さない。Interruptible になり、後から on-demand には変えられない |
| 探すところから任せる | vastai launch instance -g RTX_5090 -n 1 -i <IMAGE> -d 40 | 検索結果の先頭 1 件で作る。-n に指定できるのは 1・2・4・8・12・14 |
この表でお金が動き出すのは、下 3 行(借りる・入札して借りる・探すところから任せる)だけです。Enter を押した瞬間に確保したディスクのストレージ課金が始まり、状態が running になった時点で GPU 課金(2026-08-24 時点の 1×RTX 5090 なら 0.32〜0.40 USD/時)が加わります。それ以外の行(検索・鍵登録・確認)は何度実行しても無料です。
借りたあとに使うコマンドです。--raw を付けると機械可読な JSON で返り、--explain を付けると裏で叩いている API の説明が出ます。
| やること | コマンド | 覚えておく点 |
|---|---|---|
| 持っているものを全部並べる | vastai show instances | -q で ID だけ。撤収前に必ず 1 回 |
| 1 台の状態を見る | vastai show instance <ID> | actual_status を見る。10〜30 秒おきに確認する |
| ログを見る | vastai logs <ID> --tail 100 | ログ本体ではなく S3(= Amazon のクラウドストレージ)上のファイル URL が返る。開くまで数秒かかる |
| 接続先を得る | vastai ssh-url <ID> | ファイル転送用は vastai scp-url <ID> |
| 中身を覗く | vastai execute <ID> 'du -d2 -h' | 使えるのは ls / rm / du の 3 つだけ。他は SSH で |
| 送る | vastai copy local:./data/ <ID>:/workspace/data/ | 宛先に /root や / を使わない(以後の copy が壊れる) |
| 取り出す | vastai copy <ID>:/workspace/out/ local:./out/ | destroy の前に必ず |
| 止める | vastai stop instance <ID> | GPU 課金だけ止まる。ディスク課金は続く |
| 再開する | vastai start instance <ID> | 30 秒以上 Scheduling なら GPU は他の人に取られている |
| 消す | vastai destroy instance <ID> | 不可逆。3 本のメーターが止まる唯一の操作 |
| まとめて消す | vastai destroy instances <ID> <ID> | 消し忘れの一掃に使う |
| 前払いして割引を受ける | vastai prepay instance <ID> <AMOUNT> | 公式例では 50 USD で 0.546 か月分・割引 3.5% |
| 使った額の内訳を見る | vastai show invoices-v1 --charges | gpu / disk / bwd / bwu に分かれて出る |
| インスタンスの中から自分を消す | vastai destroy instance $CONTAINER_ID | コンテナには自分自身の start / stop / destroy だけができる CONTAINER_API_KEY が入っている。認識されないときは末尾に --api-key $CONTAINER_API_KEY を付ける |
状態早見表
コンソールの表示と API が返す actual_status は語彙が違います。このうち 3 つ(exited / unknown / offline)は終端状態で、待っても running には戻りません。この判定を入れずに待ち続けると、ディスク課金だけが積み上がります。
stopped と同じディスク課金を発生させ続けます。| コンソールの表示 | API の actual_status | 意味と課金 |
|---|---|---|
| Creating | null | 作成が始まった直後。ストレージ課金はこの時点から |
| Loading | loading | Docker イメージをダウンロード中。GPU 課金なし・ストレージ課金あり。キャッシュ済みなら 30 秒程度、回線が遅いと数時間かかることもある |
| Connecting | — | Docker は動いているが接続が検証できていない。ポート設定が壊れている疑い。公式の対処は「マシンを report して別のマシンを試す」 |
| Open / Connect | running | 稼働中。GPU + ストレージ + 帯域のすべてが課金される |
| Inactive | stopped | 停止。GPU 課金なし、ストレージ課金は続く |
| Scheduling | — | 再開待ち。30 秒以上続くなら GPU は他の人に取られている |
| Offline | offline | ホストが切断。GPU もストレージも課金されない |
| — | exited / unknown | 終端状態。running には戻らない |
| — | frozen | メモリを保ったまま一時停止。GPU 課金あり |
loading 中の課金について、公式ドキュメントには「Loading 中は課金されない」という書き方をしているページもあります。ただし CLI と SDK の入門ページはどちらも「ストレージ課金は作成時から、GPU 課金は running になってから」と書いており、こちらが具体的です。本書はこの読み方を採り、「Loading 中はストレージも無料」とは考えません。
コスト早見表と見積り式
数字はすべて 2026-08-24 に公開 API から取得した 1×RTX 5090(on-demand・64 件)の実測値です。
| 項目 | 実測値(2026-08-24) | 単位 |
|---|---|---|
| GPU(On-demand) | 最安 0.3215 / 中央値 0.4037 / 最高 0.6022 | USD/時 |
| GPU(Interruptible) | 中央値 約 0.34 / 最安 0.106 | USD/時 |
ストレージ storage_cost | 最小 0.133 / 中央値 0.200 / 最大 0.867 | USD/GB/月 |
下り帯域 inet_down_cost | 中央値 0.0026 | USD/GB |
上り帯域 inet_up_cost | 中央値 0.0039 | USD/GB |
下り速度 inet_down | 最小 48 / 中央値 752 | Mbps |
見積りに使う式は 2 本だけです。公式が式として掲げているものではなく、各フィールドの単位から組み立てたものなので、当てはめる値は必ず自分が借りる offer の実数を使ってください。storage_cost は「USD/GB/月」なので、時間あたりに直すには 1 か月 = 720 時間(30 日換算)で割ります。inet_down_cost は「USD/GB」なので、掛けるのはバイト数ではなく GB 数です。
月額ストレージ費用 = 確保した GB × storage_cost
ある作業の総額 = dph_total × running だった時間 + 確保した GB × storage_cost ÷ 720 × 作成から destroy までの時間 + 落とした GB 数 × inet_down_cost
2 本目の式で GPU 分だけ「running だった時間」なのは、stopped の間は GPU 課金が止まるのにストレージ課金は続くからです。手元へ送り返すデータが大きいときは、末尾に アップロードした GB 数 × inet_up_cost(2026-08-24 時点の中央値 0.0039 USD/GB)も足してください。
中央値で計算例を出すと、ディスク 40 GB のインスタンスを 2 時間使ったときの総額は約 0.83 USD(1 USD = 150 円として約 125 円)です。同じ 40 GB を消し忘れて 1 か月置くと 40 × 0.200 = 8.00 USD、これは GPU 約 20 時間分に相当します。止め忘れよりも消し忘れのほうが高くつきます。ストレージ単価はホスト差が大きく、最も高い storage_cost 0.867 のホストなら同じ 40 GB が月 34.7 USD になります(いずれも 2026-08-24 時点の実測値による計算例)。
相場は日単位で動くので、大きな出費の前には自分で取り直してください。次のコマンドは REST API(= CLI を通さずプログラムから直接叩く HTTP の窓口)を叩くもので、API キーなしでも公開 offer が返ってきました(2026-08-24 実測。公式仕様上は全エンドポイントで認証が必要とされているので、返らなくなったら自分のキーを -H "Authorization: Bearer <YOUR_API_KEY>" で添えてください)。
curl -s -X POST "https://console.vast.ai/api/v0/bundles" \
-H "Content-Type: application/json" \
-d '{"limit":64,"type":"ondemand","rentable":{"eq":true},
"gpu_name":{"eq":"RTX 5090"},"num_gpus":{"eq":1},
"order":[["dph_total","asc"]]}'
REST 側では "RTX 5090" とスペース区切りで書きます。CLI の書式である RTX_5090 を渡すと 0 件になります(2026-08-24 実測)。また limit に大きい値を渡しても返るのは最大 64 件でした。
3 つのチェックリスト
順番に潰せば、本書で扱った事故のほとんどは起きません。
- メールアドレスの検証を済ませた(未検証だと借りられない)
- 残高を入れた。カードを登録した(残高 0 でカード未登録だとデータごと消される)
- SSH 公開鍵をアカウントに登録した(作成後では手遅れになる場合がある)
- テンプレートのイメージを差し替えていない(RTX 5090 の世代 = Blackwell では、vast.ai 公式が CUDA 12.8 / PyTorch 2.7 以上のイメージを保つよう求めている)
--diskの値を明示的に決めた(作成後は変更できない。公式の既定値は資料により 8 / 10 / 16 GB と食い違う)- offer の
storage_costとinet_down_cost、最大レンタル期間(duration。CLI では日単位)を見た
- 起動待ちのループに終端状態(
exited/unknown/offline)の判定を入れた - 大事なファイルは
/workspace以下に置き、こまめに手元へ退避している - Interruptible なら、他の人により高い額で入札されて止まる前提でチェックポイントを取っている
- 低残高メール通知を、自動課金の発動残高の約 75% に設定した
- 契約の残り時間(
time_remaining)を見た。満了するとインスタンスは停止し、再起動できず、48 時間後には削除され得る - 作業を中断するときは
stopではなくdestroyでよいか考えた(stopではディスク課金が続き、GPU も他の人に取られ得る)
- ① 成果物を
vastai copy <ID>:/workspace/out/ local:./out/で回収した - ②
vastai show instancesで残っているものを全部並べた - ③
vastai destroy instance <ID>で消した(stopでは止まらない) - ④ volume を作っていたら別途削除した(destroy を生き延びて課金され続ける。アタッチ中は消せないので、先にインスタンスを destroy してから Storage ページの ⋮ → Delete volume)
- ⑤ Billing の Charges タブで
gpu/disk/bwd/bwuの内訳を確認した
用語辞典
本書で最も混同されるのは machine・offer・rental contract・instance の 4 語です。この 4 つの関係が分かれば、「値段が途中で変わらない理由」も「期限が来ると止まる理由」も同じ 1 つの仕組みで説明できます。
| 用語 | 意味 |
|---|---|
| host / renter | GPU を貸す側 / 借りる側。本書の読者は renter |
| machine | vast.ai に登録された 1 台の物理マシン。複数の offer を出せる |
| offer | host が貸し出す意思のある特定の構成。検索結果の 1 行 |
| rental contract | offer を借りた瞬間にできる契約。価格・期限・スペックが固定される |
| instance | 契約に基づいて動く実体。ほぼすべてが Docker コンテナ |
| template | 再利用できる起動設定。技術的には docker run のラッパー |
| On-demand | 固定価格・高優先度・中断されない契約 |
| Interruptible | 入札制・低優先度。より高い入札に負けると停止される |
| Reserved | on-demand から前払いへ転換した状態。最初から選ぶことはできない |
| verified | 自動テストと需給アルゴリズムが「貸し出しに耐える」と判定した印。品質保証書ではない |
| deverified | いったん verified になった後で基準を満たさなくなった状態 |
| reliability score | マシンの過去の稼働率の指標。全マシンが 60% から始まる |
| DLPerf | vast.ai 独自の深層学習性能スコア。機種をまたいで比べるときに使う |
dph_base / dph_total | GPU 単体の時間単価 / GPU + ディスクの合計時間単価。どちらも帯域費は含まない |
min_bid | その offer を Interruptible で借りるときの現在の最低入札額(USD/時) |
duration | 最大レンタル期間。CLI の検索フィールドは日、REST の絞り込みは秒 |
storage_cost | ストレージ単価(USD/GB/月)。実際に使った量ではなく確保した容量に対して課金される |
direct_port_count | ホストのルータで開いているポート数。direct SSH には 1 以上が必要 |
| direct / proxy | ホストへ直接つなぐ方式 / vast.ai の中継サーバー経由でつなぐ方式 |
runtype | 起動の型。ssh_direct は 22 番、jupyter_direct は 8080 番と 22 番を開く |
onstart | 起動時に自動実行されるコマンド。書かないと SSH だけが立ち上がる |
gpu_frac | マシン全体の GPU のうち借りている割合。CPU と RAM も同じ比率で配分される |
| volume | インスタンスとは別建ての保存領域。destroy を生き延び、独立して課金される |
| Instance Portal | 推奨テンプレートで Open を押すと出る画面。認証を挟んで中のサービスへ入れる |
| Secure Cloud | 審査済みデータセンターだけに絞る検索フィルタ。青いラベルが目印 |
| VRAM | GPU 側のメモリ。モデルはここに載る。RTX 5090 の offer は 2026-08-24 時点で全件 gpu_ram = 32607 MB |
| CUDA | NVIDIA の GPU を計算に使うための基盤。RTX 5090 の世代(Blackwell)向けに、vast.ai 公式は CUDA 12.8 / PyTorch 2.7 以上のイメージを求めている |
| SSH | 遠くのコンピューターに安全にログインする仕組み |
つまずきポイント
GPU の名前の書き方が入口によって違います。CLI は RTX_5090(アンダースコア)、REST API は "RTX 5090"(スペース)です。REST にアンダースコアを渡すと、エラーではなく静かに 0 件が返ります(2026-08-24 実測)。「在庫が無い」と誤解しやすいので、0 件のときはまず綴りを疑ってください。
単位が入口ごとに違うものがあります。gpu_ram は CLI が GB・REST が MB、duration は CLI が日・REST が秒、storage_cost は USD/GB/月です。本書の表で単位を毎回書いているのはこのためです。値だけを写して計算すると、GB と MB で約 1000 倍、日と秒で 86400 倍、月と時で 720 倍ずれます。
表示価格はディスクを 5 GiB(CLI の既定)または 8 GB(REST の既定)確保した場合の値で、さらに帯域費が入っていません。40 GB 取れば差額が出ますし、20 GB のモデルを落とせば下り帯域が別に乗ります(2026-08-24 時点の中央値 0.0026 USD/GB なら 20 × 0.0026 ≒ 0.05 USD で誤差の範囲ですが、inet_down_cost が高いホストでは効いてきます)。予算を組むときは、この章の 2 本目の式に自分の値を入れてください。
掲載した数字は 2026-08-24 の 1 スナップショットです。vast.ai は世界中のホストが自分で値付けする市場なので、相場は日単位で動きます。出費が大きくなる前に、この章の curl で当日の分布を取り直してください。
理解度チェック
Q1. 「まず 1 時間だけ試したい」とき、どの構成を選びますか?
1×RTX 5090 の On-demand です。2026-08-24 時点で 0.3215〜0.4037 USD/時(1 USD = 150 円として約 48〜61 円)。ディスクは 40 GB 程度を明示指定し、終わったら destroy します。Interruptible は、他の人により高い額で入札されると止まります。しかもこの日の 1×5090 は on-demand の中央値 0.4037 に対し入札側の中央値が 0.34 前後で、差は 1〜2 割しかありませんでした(公式ガイドは「50〜80% 安い」と書いていますが、この日のスナップショットには当てはまっていません)。短時間の試用では割に合いません。
Q2. vastai show instance の actual_status が exited になりました。待てば running になりますか?
なりません。exited / unknown / offline は終端状態で、そこから running に戻ることは決してありません。待っている間もディスク課金は続くので、destroy して別の offer で取り直します。
Q3. ディスク 40 GB のインスタンスを 2 時間使いました。総額の目安は?
2026-08-24 の中央値(GPU 0.4037 USD/時、storage_cost 0.200 USD/GB/月)で計算すると 0.4037 × 2 + 40 × 0.200 ÷ 720 × 2 ≒ 0.83 USD(計算例)。1 USD = 150 円として約 125 円です。ここにモデルを落とした分の下り帯域(中央値 0.0026 USD/GB)が加わります。
Q4. SSH 公開鍵を登録する前にインスタンスを作ってしまいました。どうしますか?
Docker インスタンスなら vastai attach ssh <INSTANCE_ID> "$(cat ~/.ssh/id_ed25519.pub)" で後から足せます(コンソールのインスタンスカードの SSH キーボタンでも可)。ただし VM インスタンスでは後付けできません。作り直しになるので、鍵の登録は必ず借りる前に済ませます。
Q5. 撤収時、vastai destroy instance を実行しました。他に確認することは?
まず destroy の前にデータを回収したかです(destroy は不可逆で、破棄したインスタンスは閲覧すらできません)。次に volume の有無。volume はインスタンスとは別建てで、destroy を生き延びて課金され続けます。最後に vastai show instances で消し忘れがないかと、Billing の Charges タブで内訳を確認します。
まとめ
- 目的が決まれば構成は決まる。迷ったら 1×RTX 5090 の On-demand(2026-08-24 時点で 0.3215〜0.4037 USD/時)。2 枚・別機種・入札は、1 枚の On-demand で困った理由がある人だけが選ぶ
- お金が動き始めるのは Rent を押した瞬間。ストレージ課金は作成時から destroy まで途切れず、GPU 課金は
runningの間だけ回る - コマンドは
<...>を自分の値に置き換えればそのまま動く。撤収は 回収 → 一覧 → destroy → volume 削除 → 明細確認の順 - 入口ごとに書式と単位が違う。
gpu_nameは CLI がアンダースコア・REST がスペース、gpu_ramは CLI が GB・REST が MB、storage_costは USD/GB/月 exited/unknown/offlineは終端状態。待っても戻らないので destroy して取り直す
ここまでで、借りる・つなぐ・動かす・止めるの全工程が一巡しました。実際の作業では詰まるたびにこのページへ戻り、必要な章だけを読み直してください。数字が古くなったと感じたら、まず curl で当日の相場を取り直すところから始めるのが確実です。
参考リンク
- vast.ai CLI — Hello World(インストールから片付けまでの全手順)
- vast.ai CLI — search offers(クエリ構文・絞り込みフィールド一覧)
- vast.ai CLI — create instance(オプション全表)
- vast.ai CLI — create ssh-key(借りる前に登録する理由)
- vast.ai CLI — copy(ロケーション書式と宛先の警告)
- vast.ai CLI — destroy instance(不可逆・全データ削除)
- vast.ai CLI — show instances(状態フィールドと課金の対応)
- vast.ai API — Search Offers(REST の演算子とフィールド)
- vast.ai API — Create Instance(Key Quirks と単位の食い違い)
- vast.ai — Concepts(machine / offer / contract / instance の定義)
- vast.ai — Billing(課金 3 要素・残高 0 のときの挙動)
- vast.ai — Manage Instances(コンソールの状態表示)