- vast.ai は AWS のようなクラウド会社ではなく「GPU の持ち主と借り手をつなぐ市場」であり、そこから価格のばらつき・在庫の揺れ・信頼の前提がすべて派生すること
- machine・offer・rental contract(レンタル契約)・instance・template という 5 語の使い分け
- インスタンスの一生(Loading → 稼働 → stop → destroy)と、どの状態でお金が減るか
- verified の印と青いデータセンターラベルが、何を保証していて何を保証していないか
- 隣の借り手からは守られるが、GPU の持ち主からは守られないという前提
vast.ai は「市場」であって、クラウド会社ではない
公式ドキュメントは vast.ai を marketplace(市場) と自己定義しています。「GPU を貸したい hosts(1 台のゲーミング PC を持つ個人から、ティア 4 データセンターまで)と、ワークロードを走らせるために GPU が必要な renters を結ぶ marketplace」。つまり vast.ai 自身は GPU を 1 台も持っていません。実際に電気を食っている機械は、世界中のどこかにいる誰かの所有物です。
これが AWS・Google Cloud・Azure との決定的な違いです。公式 FAQ は「我々は marketplace に過ぎない(we are only a marketplace)。ハードウェアを管理・提供していない。何も出ていないなら我々にできることはほとんどない」と書いています。安さも同じ構造から来ていて、公式の言い方は「GPU クラウドのコストを 約 3 倍〜5 倍 下げる」「コンシューマ GPU は同等のエンタープライズハードより大幅にコスト効率が良い」です。
借りられるものにも制約があります。提供されるのは Linux の Docker インスタンスのみで、大半が Ubuntu ベース。Windows は非サポートです。Docker(= アプリと必要な部品一式をひとまとめに固めて動かす仕組み。その実行単位 1 つ 1 つを「コンテナ」と呼びます)が本書を通じての前提になります。接続手段は SSH(= 遠くのコンピューターに安全にログインする仕組み)、Jupyter(= ブラウザで動く対話型のプログラム実行環境)、自動化用のコマンド、Instance Portal(= 起動中のサービスへの入口をまとめた Web 画面)の 4 つで、リモートデスクトップは提供されません。「Windows のデスクトップが画面に出てくる」ことを期待していると最初につまずきます。
相場感を 1 つだけ先に出しておきます。2026-08-24 時点で、GPU 1 枚の RTX 5090(on-demand、すぐ借りられるもの)の価格は最安 0.3215 USD/時、中央値 0.4037 USD/時 でした。1 USD = 150 円として中央値は約 61 円/時です。同じ GPU なのに、取得した 64 件の中だけでも 0.3215 から 0.6022 USD/時 まで幅があるのは、価格を決めているのが vast.ai ではなく 各 host だからです。マシンの所在地も US・CA・CN・JP・AU・FI・FR など世界中に散らばっていました。
offer → rental contract → instance の 3 段で考える
初心者が混乱するのは「サーバーを借りる」の一語で全部を済ませようとするからです。公式は次の 5 語を区別しています。この区別があると「なぜ途中で値段が変わらないのか」「なぜ期限が来ると止まるのか」が同じ理屈で説明できます。
| 語 | 公式の定義 | 混同しやすい点 |
|---|---|---|
| machine | Vast に登録された 1 台の物理ホストシステム | 1 台の machine が、GPU 枚数やディスクの切り分けを変えた 複数の offer を同時に出せる |
| offer | host が貸し出す意思のある特定の構成。検索結果の 1 行がそれ | まだ誰のものでもない「貼り紙」。他の人に先に取られることがある |
| rental contract | あなたと host の間の、1 instance についての契約。最大期間と instance type(優先度と価格)を持つ | 借りた瞬間に条件が固定される。あとから変えられない |
| instance | offer を受け入れたときに得られる稼働中の隔離環境。「ほとんど常に Docker コンテナ」 | お金が動くのはここ。秒単位で課金される |
| template | 再利用可能な起動設定。「最も単純には docker run のラッパー」 | instance は template から 起動する。template 自体は無料 |
肝は 「借りた瞬間に条件がロックされる」 ことです。公式(host 向けドキュメント)はこう書いています。クライアントが instance を借りると、その時点の offer の条件すべて(価格、レンタル期限、ハードウェアスペック)が rental contract に写し取られる。そして 一度できた契約の条件は変更できません。host が値上げしても、offer を取り下げても、既存の契約はもとの価格・もとの期限のまま続きます。
公式の例では、4 枚刺しの A100 マシンで先に 2 枚が 2.00 USD/GPU/時・期限 3/31 で借りられ、host が値上げして再出品した後に残り 2 枚が 2.50 USD・期限 6/30 で借りられます。同じ 1 台の上に、価格も期限も違う 2 本の契約が同時に存在するわけです。「同じ機種なのに人によって値段が違う」のはバグではなく設計どおりです。
GPU の切り分け(スライシング)も host が決めるので、8 枚刺しのマシンから 1 枚だけ借りることが起こります。2026-08-24 時点の実測でも、マシン全体の 12.5%(= 8 分の 1)だけを占める RTX 5090 の offer が観測されました。このとき CPU と RAM も同じ比率で割り当てられます(公式の例では 4 GPU マシンで 1 GPU なら CPU ベースラインの 25%)。余りがあればバーストできますが保証はベースラインだけで、RAM は割り当てを超えると OOM killer(= メモリ不足時に Linux がプロセスを強制終了する仕組み)によって強制終了されるリスクがあります。
なお offer の一覧は API キーなしでも見られます(2026-08-24 実測)。市場の中身が公開データだと確かめたいときは、次のリクエストがそのまま動きます。
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"]]}'
"RTX 5090" はスペース区切りの表示名です。コマンドライン版(CLI)の書式である RTX_5090(アンダースコア)を REST API(= プログラムから直接叩く Web の窓口)に渡すと 0 件になります(2026-08-24 実測)。CLI から覗くときは逆にアンダースコア形式で、検証状態を問わず並べたいときは verified=any を付けます。CLI は別途インストールが必要なので、実際に打つのは第 8 章です。
vastai search offers 'gpu_name=RTX_5090 num_gpus=1 verified=any'
インスタンスの一生と、お金が発生する場所
ここが本書で一番事故が起きるところです。まず課金は 3 本立て だと覚えてください。公式ドキュメントはこの 3 つを別々に説明しています。
| 課金対象 | 単位 | 課金される条件 |
|---|---|---|
| GPU レンタル料 | USD/時 | インスタンスが active / connected 状態にある毎秒 |
| ストレージ | USD/GB/月(offer カードの表示単位) | 確保したディスクのサイズに応じて、インスタンスが存在しオンラインである毎秒(= 停止中も課金される) |
| 帯域(通信量) | USD/GB | インスタンスに送受信される 1 バイトごと、状態を問わず |
offer カードの Price 欄が示しているのは GPU のレンタル価格 + 割り当てたストレージの時間あたりコストで、帯域の費用はここに入っていません。公式 FAQ も「期待より速くクレジットが減る理由はアップロード・ダウンロードのコストかもしれない。これは USD/時 の内訳にも 1 日あたりの内訳にも表示されない」と明言しています。桁感だけ先に出すと、2026-08-24 時点の実測でストレージ料金の中央値は 0.200 USD/GB/月。計算例: 40 GB を 1 か月確保し続けると 40 × 0.200 = 月 8 USD で、GPU 20 時間分に相当します。GPU を 1 時間使うより、止めたまま忘れたディスクのほうが高くつくのがこの市場の性質です(見積り式と実測値は第 16 章)。
stop は「GPU を返す」操作で、「支払いを止める」操作ではありません。支払いを完全に止める操作は destroy だけで、それは同時にデータを消す操作でもあります。補足を 3 つ。Loading(イメージのダウンロード中)は課金されず、キャッシュ済みなら 30 秒程度、遅い回線や大きいイメージでは数時間かかることもあります。stop すると GPU は解放されて 他のユーザーに貸し出される可能性があり、ストレージ課金は続きます。destroy したデータは永久削除で、破棄したインスタンスは後から閲覧すらできません。
もう 1 つの仕掛けが 契約期限(rental end date) です。どの offer にも最大レンタル期間があり、借りた時点の期限がそのまま契約の期限になります。期限は借りた瞬間に固定され、host にも変更できません。到達すると契約は失効してインスタンスは停止し、失効から 48 時間後には削除される可能性があり、失効したインスタンスは再起動できません。公式の警告はそのまま覚えてよい強さです。「lifetime が切れたら instance は失われるものと常に想定し、重要なデータは事前にコピーアウトせよ」。
画面に出る英語のステータス(Loading / Connecting / Open / Inactive / Scheduling)の対訳と、それぞれで取るべき行動は第 17 章にまとめます。
template は「起動設定の合成」でしかない
3 語目の template は、公式の言葉では「Vast がインスタンスを起動する仕組み」で、「最も単純な技術的表現では docker run のラッパー」です。あなたが Rent ボタンを押す前に決めている設定の束が template で、中身は次の 5 つです。とくに ① の Docker イメージ(= OS からライブラリまで、コンテナの中身一式を固めたファイル)が、その instance で何が使えるかをほぼ決めます。
スロットごとに、初心者が知らないと詰まる点だけ挙げます。
- launch mode は 3 種類(Entrypoint / SSH / Jupyter)。SSH と Jupyter のモードは、イメージにセットアップスクリプトを注入するため、そのイメージの元の entrypoint(= コンテナ起動時に走るコマンド)を置き換えます。自前イメージが原因不明のロードエラーになるときは、公式も「より単純な Entrypoint モードを試せ」と案内しています。
- 環境変数(= プログラムに外から渡しておく設定値)は
-eで渡しますが、SSH / Jupyter モードでは、渡した変数が SSH セッションの中から既定では見えません(/etc/environmentへの書き出しが必要。vast.ai 公開イメージは自動でやります)。 - 公開ポートの外部番号はランダムです。インスタンスは多くの場合そのマシン固有の IP を持たず、共有パブリック IP の ランダムな外部ポート に内部ポートがマップされます(1 インスタンス 64 ポート上限。確認方法は第 10 章)。固定 IP が要るなら、検索で静的 IP のマシンに絞る手段が用意されています。
- ディスクは作成時に予約され、静的で、作成後は変更できません。UI のスライダーの既定は 10 GB、API の既定は 8 GB。足りなくなったら作り直すしかありません(第 7 章)。
推奨 template は vast.ai のベースイメージ(vastai/base-image と vastai/pytorch)の上に作られており、大きいイメージなのに多くのホストにキャッシュ済みなので起動が速いほか、Web サービスの自動 TLS 暗号化・認証トークン保護・Instance Portal 統合が付いてきます。
そして本書の主役である RTX 5090(Blackwell 世代)には固有の注意があります。ここで出てくる CUDA(= NVIDIA の GPU に計算をさせるための土台ソフト。バージョンが古いと新しい GPU を認識できません)が鍵です。公式は「Blackwell GPU は過去世代の一部にあったような後方互換性を持たないので、template と Docker イメージが CUDA 12.8 と PyTorch 2.7 以上を使うよう設定されていることが重要」と書き、さらに「Docker イメージを変更してはいけない。非互換イメージに切り替えると 5 系互換性を失う可能性がある」と警告しています。既定の [Automatic] タグは最新のサポート済みイメージを取ってくるので、初めのうちは触らないのが正解です(詳細は第 7 章)。
誰を信じているのか — verified と、host からは守られないこと
verified は「自動テストと需給アルゴリズムの印」
検索結果には verified という印が付いたマシンがあります。これは「vast.ai の中の人が目視で検査した」という意味ではありません。公式(host 向けドキュメント)はこう書いています。「Verification は 完全に自動化され、独自アルゴリズムによって駆動される。各 machine の運用健全性と性能を継続的に評価し、リアルタイムの需給に基づいて評価を動的に調整する。このプロセスには 人手の介入がない」。
状態は Unverified → Verified → (場合により) Deverified → Unverified と 自動的に行き来します。unverified は品質の判断ではなく「まだプラットフォームの保証が存在しない」だけであり、deverified は「かつて Verified だったマシンが要件を満たさなくなった状態」です。判定に効く 4 基準は reliability(稼働の安定性。持続的に 99.99% 以上が典型的に好まれる)、インフラ構成(新しいデータセンター GPU が優先。同一 GPU なら 8×5090 が 1×5090 より有利)、DLPerf スコア(vast.ai 独自のディープラーニング性能指標)、需給分析(実際に借りられそうな構成を優先して検証する)です。
ただし別のページ(host 向け FAQ)は「手動の verification テストはデータセンターとハイエンドマシンについてのみ実施する」とも書いています。公式ドキュメントの中でも「完全自動・人手なし」と「手動テストはデータセンターとハイエンド機のみ」が併存しているので、本書は狭いほうを取ります。verified は、自動テストと需給アルゴリズムが「貸し出しに耐える」と判定した印です。品質保証書ではなく、host が善良であることの証明でもありません。
実務的に効くのは 2 点です。① UI の検索では unverified が既定で除外されます(REST API 側も既定で verified のみが返ります)。だから「在庫が少ない」と感じているなら、それは検索条件のせいです。CLI なら verified=any で検証状態を問わず並び、REST なら verified の既定 {"eq": true} を {"eq": false} に変えると、除外されていた側が出てきます(画面での外し方は第 5 章)。② 価格差は思ったほどありません。2026-08-24 時点の 1×RTX 5090 の 64 件では verified 21 件・非 verified 43 件で、価格の中央値はどちらも 0.404 USD/時 で同じでした。「verified は割高だから避ける」という思い込みは、少なくともこの時点の 5090 では成り立ちません。
青いラベル(Secure Cloud)が保証する範囲
offer カードに付く 青いデータセンターラベルは Secure Cloud(審査済みデータセンター)の印です。vast.ai は「機器が ISO/IEC 27001 認証、および / または Tier 3・4 基準に準拠した施設にあること」と「認証が最新であること」を検証しています(renter 向けの別ページでは「Tier 2/3 または ISO 27001」と書かれており、公式内で数字に揺れがあります)。パートナー側の要件には、事業者所有・契約書への署名・所有者の本人確認・5 台以上の GPU サーバーの出品が含まれます。公式は「機微なワークロード・本番ワークロードには Secure Cloud フィルタを推奨」と明言しています。
逆側について公式は率直です。「プロバイダのセキュリティは大きく異なる。Tier 4 データセンターは広範な物理的・運用的セキュリティを持つ。個人ホストは形式的なセキュリティ対策が弱いことがある」。安い offer の多くは Secure Cloud フィルタに掛からない host(個人や小規模事業者を含みます)なので、これは価格と引き換えに受け入れている条件です。
隣の借り手からは守られる。host からは守られない
担保されている部分。公式 FAQ は「クライアントは 非特権 Docker コンテナに隔離され、自分のデータにのみアクセスできる」と書き、同一マシン上の各コンテナは 別々の名前空間(namespace)と資源枠(cgroup)、ネットワーク・ファイルシステム・プロセスの隔離 によって完全に分離されているとしています。要するに、隣のコンテナのファイル一覧も、動いているプログラムの一覧も見えません。GPU も排他資源で、複数ユーザー間で共有されることは決してありません。通信は Web が HTTPS + TLS、SSH は既定で暗号化、API は HTTPS 必須です(Jupyter だけは自己署名証明書なので初回に警告が出ます)。
担保されていない部分は 1 行で言えます。公式ドキュメントは「Hosts can technically access files on their machines」(host は技術的に自分のマシン上のファイルにアクセスできる)と明記しています。だから公式自身が「機微なデータには verified なデータセンターを使え」「重要なデータには暗号化を実装せよ」「インスタンス内に credential(認証情報)を保存するな」「外部の鍵管理を使え」と勧めています。判断に落とすとこうなります。
- 置いてよいもの: 公開データセット、オープンウェイトのモデル、使い捨ての学習コード、公開リポジトリのクローン、そのインスタンスの中で完結する成果物(ただし destroy 前に手元へ回収する)。
- 置いてはいけないもの: 長期の API トークン(クラウド・SaaS・課金系)、SSH の秘密鍵、個人情報や顧客データ、社内の非公開コードやモデル重み。どうしても必要なら、暗号化と外部の鍵管理が前提です。
2026-08-24 時点で調べた 1×RTX 5090 の 64 件では、43 件が非 verified、所在地も US・CA・CN・JP など 12 か国以上に散っていました。verified かどうかと青ラベル(Secure Cloud)は別の指標ですが、どちらの絞り込みも外して最安値を拾う限り、「相手が誰なのか分からないマシンにデータを置いている」状態は変わりません。公開モデルを動かすだけなら問題ありませんが、業務データを持ち込む段では青ラベルの offer に切り替える、という切り分けを先に決めておきます。
つまずきポイント
止まるのは GPU のレンタル料だけです。ストレージ課金は、インスタンスが存在している毎秒ずっと続きます(公式ドキュメントは 4 か所でこの警告を繰り返しています)。しかも停止中のストレージレートは稼働時より高いことがある、という記述もあります。支払いを完全に止める操作は destroy だけで、それはデータを永久に消す操作でもあります。だから「終わったらまず手元にコピー、それから destroy」を習慣にします。
verified は自動テストと需給アルゴリズムの印で、host がファイルにアクセスできるという事実は変わりません。公式のチェックリストも「Secure Cloud プロバイダのみを使う」「アップロード前にデータを暗号化する」「インスタンス内に credential を保存しない」「終わったら即座にインスタンスを destroy する」という並びです。verified は「動くマシンである確率が高い」の印であって、秘密を預ける根拠にはなりません。
市場なので在庫は動きます。Rent の瞬間に他人に取られると「offer is no longer available」になります(需要が集中すると同じ offer を大勢が取り合い、成功するのは 1 人だけです)。stop したインスタンスの再開も Scheduling 状態で GPU の空きを待つ形になり、30 秒以上詰まっているなら、その GPU はすでに他のユーザーに借りられている可能性が高いと公式は書いています。契約期限も借りた瞬間に固定で、延長するかどうかは host の裁量です。
理解度チェック
Q1. いま借りているインスタンスがある状態で、host がその offer の価格を上げました。あなたの支払いはどうなりますか?
変わりません。Rent した瞬間に価格・期限・スペックが rental contract に写し取られて固定されます。host が値上げしても offer を取り下げても、既存の契約はもとの条件で続きます。値上げが効くのは、そのあとに借りる別の人だけです。
Q2. インスタンスを stop したとき、課金は完全に止まりますか?
止まりません。GPU のレンタル料は止まりますが、ストレージ課金はインスタンスが存在する限り続きます(停止中のほうがレートが高いことがあるとも書かれています)。完全に止めるには destroy が必要で、そのときデータは完全に消えます。
Q3. Loading と表示されている間(Docker イメージのダウンロード中)は課金されますか?
課金されません(公式ドキュメントに明記があります)。キャッシュ済みなら 30 秒程度、遅い回線や大きいイメージでは数時間かかることもあります。だからこそ、多くのホストにキャッシュされている推奨 template を選ぶと待ち時間が短くなります。
Q4. 8 枚刺しのマシンから RTX 5090 を 1 枚だけ借りました。CPU と RAM はマシンの全量を使えますか?
使えません。CPU と RAM は マシン全体の GPU 数に対する自分の GPU の割合に比例して割り当てられます(4 GPU マシンで 1 GPU なら CPU ベースラインの 25%)。余剰があれば一時的にバーストできますが、保証されるのはベースラインだけで、RAM は割り当てを超えると OOM killer にプロセスを殺されるリスクがあります。
Q5. verified の印が付いたマシンなら、クラウドの API トークンをインスタンス内に置いても安全ですか?
安全ではありません。verified は「貸し出しに耐える」という自動判定で、host の善良さの証明ではありません。公式は「host は技術的に自分のマシン上のファイルにアクセスできる」と明記し、「インスタンス内に credential を保存しない」ことを推奨しています。
まとめ
- vast.ai は 市場であって、ハードウェアを持つクラウド会社ではない。価格・期限・切り分けを決めているのは各 host で、安さも在庫の揺れも同じ構造から来ている。
- 語は 3 段で持つ。offer(まだ誰のものでもない貼り紙)→ rental contract(Rent した瞬間に条件が固定される契約)→ instance(契約に基づいて動く Docker コンテナ)。
- 課金は GPU・ストレージ・帯域の 3 本立て。Loading は無料、稼働中は 3 つ全部、
stopではストレージだけ続き、destroyでゼロになると同時にデータが消える。表示の USD/時 に帯域は含まれない。 - template は起動設定の合成(Docker イメージ + launch mode + 環境変数 + 公開ポート + ディスク容量)。設定した値がそのまま実体になるとは限らず、とくに ディスク容量は作成時に予約されて静的。足りなくなったら作り直すしかない。
- verified は自動テストと需給アルゴリズムの印。隣の借り手からは Docker が守ってくれるが、host からは守られない。秘密は持ち込まない。
次章では、この市場で実際に何を借りるべきかを決めるために、RTX 5090 の VRAM 32 GB が動かせるモデルの上限を見ていきます。
参考リンク
- Vast.ai Docs — Concepts(offer / instance / template などの公式定義)
- Vast.ai Docs — SSH(proxy 接続と direct 接続の違い)
- Vast.ai Docs — Docker Environment(資源の比例配分・環境変数・ポート)
- Vast.ai Docs — Manage Instances(ステータス表示と stop / destroy)
- Vast.ai Docs — Templates Introduction
- Vast.ai Docs — Hosting Overview(offer から rental contract への変換)
- Vast.ai Docs — Understanding Verification
- Vast.ai Docs — FAQ: Security
- Vast.ai Docs — Billing
- Vast.ai Docs — RTX 5 Series(CUDA 12.8 / PyTorch 2.7 以上)