Vultr VPS入門 - アカウント作成からDocker運用まで
VultrはDigitalOceanやLinodeと並ぶ海外VPSの定番。東京・大阪リージョンがあって、時間単位課金で、最安$2.50/月から使える。Dockerイメージを持っていって動かしたかったので、セットアップ手順をまとめた。
国内VPSとの比較: Dockerの導入しやすさ
国内VPSでDockerを使う場合の手間も調べた。
ConoHa VPS: サーバー作成時に「Docker」テンプレートを選ぶだけ。docker / docker-compose がすぐ使える。OSはUbuntu固定になる。
さくらのVPS: スタートアップスクリプト「Docker Compose」がある(Ubuntu 22.04/24.04、Debian 11/12対応)。ただしCentOSを使いたい場合は手動でリポジトリ追加からやる必要がある。
Vultr: Marketplace Appsから「Docker」を選ぶだけ。ConoHaと同じくらい楽。
結論: Docker目的ならVultrかConoHaが楽。さくらはOSによっては手動セットアップが必要。
アカウント作成
- Vultr公式サイトにアクセス
- メールアドレスとパスワードを入力して「Create Account」
- パスワード要件: 半角小文字・大文字・数字を最低1つずつ、10文字以上
- 確認メールが届くので「Verify Your E-mail」をクリック
- Billing情報を入力(日本の住所なら Country を Japan に)
- 支払い方法を登録(クレカ、PayPal、Bitcoin、Alipay対応)
「I just want to link my credit card」にチェックを入れれば、最初からデポジットを入れなくても進める。
VPSを立てる
- 左メニューの「Products」→ 右上の「+」ボタン
- Server Type: 「Cloud Compute」を選択
- Location: 「Tokyo」または「Osaka」
- Image: OS を選択(Ubuntu、Debian、CentOS など)
- Plan: スペックと料金を選択
料金プラン(2026年1月時点)
| プラン | RAM | CPU | SSD | 帯域 | 月額 |
|---|---|---|---|---|---|
| 最安(IPv6のみ) | 512MB | 1 | 10GB | 0.5TB | $2.50 |
| 標準最安 | 1GB | 1 | 25GB NVMe | 1TB | $3.50 |
| 中位 | 2GB | 1 | 55GB NVMe | 2TB | $7 |
最安プランはIPv6のみなので注意。IPv4が必要なら$3.50以上を選ぶ。
- Additional Features でSSH Keyを選択(後述)
- 「Deploy Now」をクリック
- 「Installing」→「Running」になれば完了
SSH接続
パスワード接続
サーバー詳細画面でIPアドレスとrootパスワードを確認して接続。
ssh root@<IPアドレス>
SSH鍵接続(推奨)
事前に鍵を生成してVultrに登録しておく。
# 鍵を生成
ssh-keygen -t ed25519 -C "your_email@example.com"
# 公開鍵の中身を確認
cat ~/.ssh/id_ed25519.pub
Vultrへの登録: Account → SSH Keys → 「Add SSH key」で公開鍵を貼り付け。
サーバー作成時に登録したSSH Keyを選択すれば、パスワードなしで接続できる。
Vultr CLI
GUIでポチポチやるのが面倒なときはCLIを使う。
APIキーの取得
- カスタマーポータルにログイン
- Settings → API(
https://my.vultr.com/settings/#settingsapi) - 「Generate new API key」をクリック
1アカウント1キーなので、環境ごとに分けたい場合はサブアカウントを作成する。
インストール
# macOS
brew install vultr/vultr-cli/vultr-cli
# Linux
curl -LO https://github.com/vultr/vultr-cli/releases/latest/download/vultr-cli_linux_amd64.tar.gz
tar -xzf vultr-cli_linux_amd64.tar.gz
sudo mv vultr-cli /usr/local/bin/
# Windows (Scoop)
scoop bucket add vultr https://github.com/vultr/scoop-vultr.git
scoop install vultr-cli
APIキーの設定
export VULTR_API_KEY=your_api_key_here
または ~/.vultr-cli.yaml に書く:
api-key: your_api_key_here
主要コマンド
# リージョン一覧
vultr-cli regions list
# プラン一覧
vultr-cli plans list
# OS一覧
vultr-cli os list
# インスタンス一覧
vultr-cli instance list
# インスタンス作成
vultr-cli instance create \
--region nrt \
--plan vc2-1c-1gb \
--os 387 \
--host my-server
# インスタンス削除
vultr-cli instance delete <instance-id>
# 停止・起動
vultr-cli instance stop <instance-id>
vultr-cli instance start <instance-id>
Dockerイメージをデプロイする
方法1: Docker Marketplace App(簡単)
Vultrの「Marketplace Apps」からDockerプリインストール済みのイメージを選ぶのが一番楽。
- サーバー作成時に Image → Marketplace Apps → Docker を選択
- デプロイ後、SSHで接続すればDockerが使える状態
CLIでやる場合:
vultr-cli instance create \
--region nrt \
--plan vc2-1c-1gb \
--app-id <docker-app-id> \
--host my-docker-server
方法2: Vultr Container Registry
プライベートレジストリにイメージを置いて、VKE(Vultr Kubernetes Engine)にデプロイする方法。
# レジストリ作成
vultr-cli container-registry create --name my-registry --region nrt --public false
# 認証情報取得
vultr-cli container-registry credentials <registry-id>
# Dockerでログイン&プッシュ
docker login <registry-url> -u <username> -p <password>
docker tag my-app:latest <registry-url>/my-app:latest
docker push <registry-url>/my-app:latest
方法3: 普通にSSHでdocker-compose
一番シンプルなのは、普通のVMにSSHで入って docker-compose up -d する方法。
ssh root@<server-ip>
# docker-compose.yml をアップロードしておいて
docker-compose up -d
ドメインとSSL証明書
Dockerでサービスを公開するなら、ドメイン設定とSSL証明書が必要になる。流れとしては:
- VPSを立てる → IPアドレスが決まる
- DNSでドメインとIPを紐付ける
- SSL証明書を取得する
DNS設定: 2つの選択肢
選択肢A: Vultr DNSを使う
VultrにはDNS管理機能がある。ドメインレジストラ側でネームサーバーを ns1.vultr.com / ns2.vultr.com に変更すれば、Vultr側でAレコード等を管理できる。
設定手順:
- レジストラでネームサーバーをVultrに変更
- Vultr管理画面 → Products → Network → DNS
- 「Add Domain」でドメインを追加
- VultrインスタンスのIPをAレコードに設定
選択肢B: レジストラのDNSを使う
ドメインを買った場所(お名前.com、ムームードメイン、Cloudflareなど)のDNS管理画面でAレコードを設定する。VultrでVPSを立ててIPアドレスを確認してから、そのIPをAレコードに登録。
どちらでもOK。既にCloudflare等を使っているならそのまま使えばいい。
注意: DNS変更が反映されるまで最大48時間かかることがある(実際は数分〜数時間で反映されることが多い)。
SSL証明書: Let’s Encrypt + Certbot
無料のSSL証明書はLet’s Encryptで取得できる。Docker環境なら certbot/certbot イメージを使うのが楽。
前提条件: ドメインのDNS設定が完了していること(AレコードがVPSのIPを向いている)。設定前だと証明書発行に失敗する。
# certbotコンテナで証明書取得
docker run -it --rm \
-v /etc/letsencrypt:/etc/letsencrypt \
-v /var/www/html:/var/www/html \
certbot/certbot certonly \
--webroot \
-w /var/www/html \
-d example.com
証明書は /etc/letsencrypt/live/example.com/ に保存される。
証明書の自動更新
Let’s Encryptの有効期限は90日。cronで自動更新を設定しておく。
# /etc/cron.d/certbot-renew
0 3 * * * root docker run --rm -v /etc/letsencrypt:/etc/letsencrypt certbot/certbot renew --quiet
注意: 証明書の発行は週5回までの制限がある。テストで何度も発行すると制限に引っかかるので、本番前は --dry-run オプションで確認する。
スケーリング
スケールアップ: 可能
サーバー詳細 → Settings → Change Plan から変更できる。
vultr-cli instance plan upgrade <instance-id> --plan <new-plan-id>
注意: サーバー停止が必要。 短時間のダウンタイムが発生する。
スケールダウン: 不可能
ここが重要。Vultrはダウングレードをサポートしていない。
理由は「ディスクの縮小はデータ損失のリスクがある」から。
スケールダウンしたい場合:
- 新しい小さいサーバーを作成
- データを手動で移行
- Reserved IPを使えばIPアドレスは維持できる
ダウンタイムなしでスケーリングしたい場合
ロードバランサー + 複数インスタンスの構成にする。
- スパイク時: インスタンスを追加
- 落ち着いたら: インスタンスを削除
- 単体サーバーのリサイズより柔軟
料金の落とし穴
停止しても課金は止まらない
これが最大の罠。サーバーを「Stop」しただけでは課金が続く。
理由: 停止状態でもRAM、SSD、IPアドレス、vCPUがユーザーのために予約され続けるから。
課金を止めるには「Server Destroy」で削除する必要がある。
使わないときはスナップショットを取ってからサーバーを削除し、必要になったらスナップショットから復元するのがコスト効率が良い。
AIにAPIキーを渡すリスク
Vultr APIキーは:
- アカウントへのフルアクセス権限を持つ
- サーバー作成数の制限がない
- 1秒30リクエストのレート制限のみ
つまり、AIツールにAPIキーを渡して「VPS立てて」と言うと、ループでサーバーを大量に立てられる可能性がある。作成したサーバーは削除しない限り課金され続ける。
対策:
- AIツールにはAPIキーを渡さない
- ACLでIPアドレス制限を設定
- Billing設定で請求アラートを設定
- サブアカウントを使って権限を分離
為替リスク
ドル建てなので円安時は割高になる。クレカの為替手数料(約2.2%)も加算される。