DigitalOceanの代替サービスを料金と性能で比較
RAM 1 GBあたりの料金、転送量、NVMeストレージ、バックアップ費用を比較します。停止を避ける移行手順も、実際の料金とあわせて確認できます。
実際に変わる DigitalOcean の代替サービス
DigitalOcean の代替サービスの多くは、マシンではなく料金を変えます。どのサービスを選んでも、パブリック IP、virtio ディスク、root アクセスを備えた Linux 仮想マシンを利用できます。コントロールパネルにどのロゴが表示されていても、カーネルは影響を受けません。選択を左右する違いは、RAM 1 GB あたりの料金、含まれる転送量と超過時の 1 バイトあたりの料金、ディスクの実体、そしてオペレーティングシステムより上位のスタックをどこまで他社が運用するかです。
このガイドでは、開発者が端末または公開料金表で確認できるこれらの軸に沿って比較します。また、DigitalOcean が適切な選択肢となるケースも取り上げます。何も認めない比較は広告にすぎないためです。
以下の料金はすべて公開されている定価で、2026 年 8 月 5 日に確認したものです。料金は変動し、ここで取り上げる複数のプロバイダーも 2026 年中に料金を変更しました。料金の構成はこれよりはるかにゆっくり変化するため、まず比率と課金モデルを確認し、そのうえで契約前に各プロバイダーの公式ページで当日の料金を確認してください。
RAM 1 GB あたりの価格を比較する
The data behind this chart
[
{
"provider": "DigitalOcean 1 GB",
"ram_gb": 1,
"monthly_usd": "6.00",
"usd_per_gb_ram": "6.00"
},
{
"provider": "DigitalOcean 4 GB",
"ram_gb": 4,
"monthly_usd": "24.00",
"usd_per_gb_ram": "6.00"
},
{
"provider": "Akamai Nanode 1 GB",
"ram_gb": 1,
"monthly_usd": "5.00",
"usd_per_gb_ram": "5.00"
},
{
"provider": "Vultr NVMe 1 GB",
"ram_gb": 1,
"monthly_usd": "6.00",
"usd_per_gb_ram": "6.00"
},
{
"provider": "Hetzner CX23 4 GB",
"ram_gb": 4,
"monthly_usd": "6.49",
"usd_per_gb_ram": "1.62"
}
]同じプロバイダー内では、RAM 1 GB あたりの価格はほとんど変わりません。DigitalOcean は 1 GB プランで 1 GB あたり $6.00、月額 $24.00 の 4 GB プランでも 1 GB あたり同じ $6.00 を請求します。同じプロバイダーで大きいプランを選んでも割引にはならないため、判断基準はプランのサイズではありません。プロバイダーです。
現在はかつての Linode に相当するサービスを提供している Akamai は、2 GB と 4 GB の共有プランをそれぞれ $12 と $24 で提供しており、DigitalOcean と 1 ドル単位まで同じです。エントリープランは $5.00 で、両社より安価です。2 社の価格が完全に一致していることには意味があります。その価格帯はハードウェアではなく競合他社の価格を基準に設定されており、今後もその競合に追随するためです。
自社のデータセンターを構築し、ユーロで販売するプロバイダーでは差が開きます。Hetzner CX23 は 4 GB の RAM を月額約 $6.49 で利用でき、RAM 1 GB あたり $1.62 です。これは DigitalOcean の料金の約 4 分の 1 です。このドル価格はユーロ建ての表示価格から換算したものなので、為替レートによって変動します。Hetzner は 2026 年中にもクラウド料金を引き上げたため、古い比較記事に記載された価格は現在存在しません。
RAM 1 GB あたりの価格から、利用できる CPU は分かりません。共有 vCPU では、ハイパーバイザーが他のテナントと物理コアを共有するようスケジュールします。正確な確認は、実際に借りたサーバー上で実行します。
vmstat 1 10st 列を確認します。これは、vCPU が実行可能な状態だったにもかかわらず、ハイパーバイザーが物理コアを別の利用者に割り当てていた時間の割合を示します。負荷時に数 % であれば正常です。2 桁台の数値が継続する場合、ホストの過剰割り当てを意味します。利用できないコアについては、RAM 1 GB あたりの価格が安くても補えません。steal time は近隣テナントの問題であり、近隣テナントには利用時間帯があるため、負荷の高い時間帯に実行してください。ストレージとトラフィックを加えた実際の 1 か月分のホスティング費用については、VPS の月額費用 を参照してください。
実質的な転送量課金
The data behind this chart
[
{
"provider": "DigitalOcean 1 GB",
"included_tb": 1,
"overage_usd_per_tb": "10.00"
},
{
"provider": "Akamai Nanode 1 GB",
"included_tb": 1,
"overage_usd_per_tb": "5.00"
},
{
"provider": "Vultr NVMe 1 GB",
"included_tb": 2,
"overage_usd_per_tb": "10.00"
},
{
"provider": "Hetzner CX23 4 GB",
"included_tb": 20,
"overage_usd_per_tb": "1.20"
}
]DigitalOcean はエントリープランに 1 TB の送信転送量を含み、超過分を GiB 単位で課金します。追加 1 TB あたり約 $10.00 に相当します。Akamai は同じ TB 数を含み、課金額はおよそ半分の 1 TB あたり約 $5.00 です。Vultr は 2 TB を含み、超過料金も同程度です。Hetzner は 20 TB を含み、それを超えると 1 TB あたり約 $1.20 を課金します。他社とは桁違いの差があります。
見出しの数値よりも重要な構造上の違いが 3 つあります。4 社とも受信トラフィックは無料なので、課金対象になるのは送信した量だけです。DigitalOcean と Vultr は、アカウント内のすべてのサーバーで転送量の上限を共有します。そのため、1 台の負荷が高いサーバーによって別のサーバーの枠が減り、小規模なサーバー群全体で 1 つの大きな枠を共有することになります。また、プライベートネットワークや VPC ネットワークを介したサーバー間のトラフィックは、通常は課金対象になりません。したがって、データベースをプライベートインターフェースに配置することは、セキュリティだけでなく課金にも関わる判断です。
上限に近づいていないなら、これらは問題になりません。ブログ、JSON 応答を返す API、小規模な SaaS が 1 か月で 1 TB に達することはありません。一方、動画、画像ギャラリー、ゲームサーバー、パッケージミラー、オフサイトバックアップの保存先では達する可能性があります。推測する前に測定してください。
sudo apt update && sudo apt install -y vnstat
sudo systemctl enable --now vnstat
vnstat -mvnstat -m は、受信と送信に分けて月ごとの転送量を表示します。課金対象になるのは送信の列だけです。データベースは空の状態で開始するため、最初に有用な値を確認できるのはインストールの翌日です。最初の完全な 1 か月分の値を確認できるのは、その 1 か月後です。それまでは、プロバイダー独自の帯域幅グラフだけが利用できる記録です。
料金表では分からない点を、もう 1 つ確認してください。転送量の上限を超えたとき、プロバイダーは課金するのか、それともポートを帯域制限するのかという点です。課金は費用につながります。帯域制限は、ユーザーが最も多いタイミングでユーザーに影響します。トラフィック急増によって、どちらが発生するのかを把握しておく必要があります。
NVMe と SATA の違い、および実際のストレージを確認する方法
パネルには NVMe と表示されています。これはホスト上のディスクについての説明であり、仮想マシンがそのディスク上で動作しているとは限りません。ローカルストレージでは、仮想ディスクが同じ物理マシン内のドライブ上に配置されます。ネットワークストレージでは、データセンターのネットワーク経由で接続する別のストレージクラスタ上に配置されます。そのため、即時リサイズ、ライブマイグレーション、配置場所を変えないスナップショットが可能になります。
ゲスト内では、どちらも同じように見えます。
lsblk -d -o NAME,ROTA,MODEL,SIZE
cat /sys/block/vda/queue/rotationalROTA と rotational は、ホストが非回転として申告したデバイスについて 0 を返します。そのため、NVMe を基盤とするネットワークボリュームは、ローカル NVMe とまったく同じ値を返します。この値から、ディスクが回転式プラッタではないことは分かります。しかし、ディスクがどこにあるかは分かりません。Linux で NVMe ディスクを確認するでは、デバイス名と、それぞれが示す内容を説明しています。
両者を分けるテストは、キュー深度 1 でのレイテンシです。単一の小さな読み取りでは、遅延を他の処理に隠すことができないためです。ローカル NVMe では、同じ筐体内から応答が返ります。ネットワークボリュームでは、読み取りごとにデータセンターのネットワークを経由する往復が発生します。そのため、キュー深度が大きい場合のスループットが似ていても、レイテンシの下限は高くなります。
sudo apt update && sudo apt install -y fio
fio --name=lat --filename=/var/tmp/fiotest --size=1G --rw=randread --bs=4k \
--ioengine=libaio --direct=1 --iodepth=1 --runtime=30 --time_based --group_reporting
fio --name=iops --filename=/var/tmp/fiotest --size=1G --rw=randread --bs=4k \
--ioengine=libaio --direct=1 --iodepth=32 --runtime=30 --time_based --group_reporting
rm -f /var/tmp/fiotest最初の実行では clat ブロックが出力されます。これは完了レイテンシです。平均値ではなく 99 パーセンタイルの行を確認してください。平均値では、ユーザーが体感する停止時間が隠れるためです。2 回目の実行では、概要行に IOPS= が出力されます。両方のテストを、利用中のプロバイダと検討中のプロバイダのトライアルインスタンスで、同じ日に実行してください。そのうえで、自分で得た 2 つの値を比較します。各ベンダーが公開している数値は、確認できないマシンで測定されたものです。また、時間帯を変えて 3 回実行してください。同じプランでも、ホストが空いているか混雑しているかで結果が変わるためです。VPS を適切にベンチマークするでは測定方法を、SSD VPS が実際に意味することでは、その背後にあるマーケティング用語を説明しています。
リージョン: 地図ではなくレイテンシを測定する
リージョンの一覧は、測定するまではマーケティング資料にすぎません。ユーザーが体感するのは、ユーザーのネットワークからサーバーまでの往復時間です。これは地図上の距離ではなく、パケットが通る経路で決まります。混雑したトランジットリンクの先にある 300 km 離れたサーバーは、経路が安定した 1,500 km 離れたサーバーに負けることがあります。
ping -c 20 203.0.113.10
mtr -rwc 50 203.0.113.10
curl -o /dev/null -s -w 'dns %{time_namelookup} connect %{time_connect} tls %{time_appconnect} total %{time_total}\n' https://example.commtr は各ホップのパケットロスとレイテンシを個別に出力します。そのため、2 つのホップ間で 60 ms 増加していれば、宛先を原因とせず、問題のあるリンクを特定できます。ユーザーが利用しているネットワーク上のマシンから実行してください。データセンター間の経路はインターネット上で最も良い経路です。そのため、どのプロバイダーも実際より良く見えます。
価格が変わっても変わらない構造上のポイントがあります。大陸内に 1 つのリージョンしか持たないプロバイダーを利用すると、ディザスタリカバリ計画は大陸をまたいで移行する計画になります。その場合、レイテンシも増加します。ページに掲載されたリージョン数ではなく、実際にフェイルオーバー先として利用するリージョン数を数えてください。
スナップショットとバックアップは別料金です
ストレージの追加料金によって、安価なプランの料金が高くなることがあります。DigitalOcean はスナップショットに月額 1 GiB あたり $0.06 を課金します。一方、自動バックアップはサーバー料金に対する割合で課金します。週次バックアップはプラン料金の 20%、日次バックアップは 30% です。GiB 単位の従量課金オプションもあります。どちらの料金モデルにも合理性がありますが、異なる方向で不利になります。割合による料金はサーバーのサイズに応じて増えるため、データセットが小さい大規模サーバーでは割高です。GiB 単位の料金はデータ量に応じて増えるため、大容量ボリュームを接続した小規模サーバーでは割高です。
復元にいくらかかり、どの程度の時間が必要かを確認してください。バックアップを保持する料金は、この問題の一面にすぎません。サーバーを削除すると、そのスナップショットも削除されるか確認してください。
そのうえで、プロバイダーが管理しない場所にもコピーを保持してください。プロバイダーのスナップショットはプロバイダーのアカウント内に保存されます。そのため、ログイン情報の紛失、支払いの失敗、アカウントの停止が発生すると、サーバーとバックアップが同時に失われます。自分で所有するストレージへの restic バックアップなら、オブジェクトストレージの料金は数ドル程度で済み、任意のプロバイダーに復元できます。これにより、移行を取り消せるものにし、取り返しのつかない作業にしません。
実行するスタックの範囲
プロバイダーは、1 本の軸上に並びます。一方の端では、マシンを借りて、すべてを自分で運用します。もう一方の端では、git ブランチを push するだけで、サーバーを目にすることはありません。RAM 1 GB あたりの料金が適切な比較基準になるのは、最初の端に近い場合だけです。もう一方の端では、メモリではなく作業を購入するためです。作業には 1 GB あたりの料金がありません。
何を比較するか決める前に、自分がどちらの端にいるのかを正直に見極めてください。月額 $15.15 のマネージドデータベースは、$6 のサーバーと比べると高価に見えます。しかし、レプリケーション、フェイルオーバー、ポイントインタイムリストア、マイナーバージョンアップグレード、03:00 に担当者を起こすアラートまで含めて、その背後にある作業時間を計算すると見方が変わります。その作業が自分の担当であれば、自分で運用して差額を残してください。担当業務がアプリケーション開発であれば、その作業を買い戻すほうが安く済みます。マネージドとアンマネージドの分岐によって、料金表のどの列を見るべきかが決まります。マシン全体とそのディスクを自分専用にしたいというのが正直な答えなら、それはプロバイダーの選択ではなく、VPS と専用サーバーの比較の問題です。同じ問いは開発者の月額費用の他の部分にも現れます。Claude と ChatGPT のプラン比較では、表示価格ではなく、作業のどれだけを任せたいかが判断基準になります。
DigitalOcean が適している場合
仮想マシンではなくプラットフォームを購入する場合、DigitalOcean が適しています。
- マネージドデータベース。 Managed PostgreSQL と MySQL は、RAM 1 GiB、ストレージ 10 GiB で月額 $15.15 から利用できます。追加ストレージは GiB 単位で課金され、スタンバイノードはノード単位で料金が設定されています。同じ信頼性を自前で構築するには、Patroni または repmgr、コンセンサスストア、接続プロキシ、そして実際にリハーサルしたフェイルオーバー手順が必要です。2 人のチームでこれを維持しながら機能開発も進めるのは困難です。
- App Platform。 ブランチをプッシュすると、OS のパッチ適用なしで、ビルド、証明書、稼働中のサービスを取得できます。この製品を安価な VPS で再現する場合、土曜日に作業するのはあなた自身です。
- 成熟した Terraform provider が対応するオブジェクトストレージとロードバランサー。 コードから破棄して再構築できるフリートには、単価の低さを上回る価値があります。
- 製品を支える企業。 公開されたサポートティア、履歴を確認できるステータスページ、顧客のセキュリティ質問票に回答できる組織があります。ホスティングを再販する場合、これは数ドルの GiB 単価差を上回る価値があります。
DigitalOcean が高価になるのは、通常の仮想マシンを大量に利用し、実際に外向きのネットワークトラフィックが発生する場合です。これは代替サービスで解決できるまさにそのケースであり、セルフホスティングを行う開発者が購入するものの大半でもあります。
新しいプロバイダーへダウンタイムなしで移行する
移行中のダウンタイムは、データを新しい IP へ移した後も、古い IP にトラフィックが到達することで発生します。以下の各手順は、その期間を短くし、予測可能にするためのものです。
移行の少なくとも 48 時間前に、まず DNS から準備します。リゾルバーは A レコードを TTL(time to live)の期間キャッシュします。そのため、TTL が 24 時間のレコードは、変更後も最大 1 日間、ユーザーを古いサーバーへ送り続けます。切り替え時に TTL を短くしても効果はありません。リゾルバーが古い値を、古い有効期限とともにすでに保持しているためです。先に TTL を短くし、古い値の有効期限が切れるまで待ってから移行します。
dig +noall +answer example.com A
dig +noall +authority example.com SOA最初のコマンドは、結果の 2 列目に現在の TTL を表示します。DNS プロバイダーで TTL を 300 に設定し、その設定で置き換えた値より長く待ちます。
次に、以下の順序で作業します。
- 新しいサーバーを用意し、何も配置する前にハードニングします。急いでいるときに省略されがちな作業については、新しい VPS で最初の 10 分間を参照してください。
- アプリケーションスタックをインストールし、古いサーバーが通常どおりサービスを提供している間に、rsync でデータの初回コピーを実行します。
- ここで新しいホストの TLS 証明書を、DNS-01 チャレンジを使用して発行します。HTTP-01 チャレンジでは、DNS が現在指定している IP に対して検証するため、まだ古いサーバーが対象になるためです。DNS-01 チャレンジを使えば、この順序の問題を完全に解消できます。
- 公開設定を変更する前に、自分の laptop で DNS を上書きして新しいホストをテストします。
203.0.113.20 example.comを/etc/hostsに追加し、実際のサイトを開いてから、その行を削除します。このテストによってユーザーに影響が及ぶことはありません。 - データベースのサイズを確認します。数 GB 未満であれば、dump と restore を書き込み停止の時間内に実行できます。それを超える場合は、数日前に古いデータベースから新しいデータベースへのレプリケーションを設定し、追いつかせます。これにより、書き込み停止の対象を昇格処理だけにできます。
- 書き込みを停止します。アプリケーションをメンテナンスモードまたは読み取り専用モードにします。ユーザーに見えるのはこの部分だけで、数分間で完了する必要があります。
- 最終差分を同期します。同じ rsync をもう一度実行し、その後にデータベースの最終同期を実行します。
- A レコードと AAAA レコードを新しい IP に変更します。TTL が 300 秒であれば、ほとんどのリゾルバーは約 5 分以内に追従します。
- 古いサーバーを少なくとも 1 日、稼働させて到達可能な状態に保ちます。短い TTL を無視するリゾルバーがあるためです。古いアプリケーションが書き込み可能なままだと、遅れて到達したリクエストが誤ったデータベースに書き込まれます。そのため、古いホストを新しいデータベースへ接続するか、古いホストからメンテナンスページを返します。
- 1 日間、新しいサーバーのエラー率を監視します。その後、TTL を通常の値に戻し、古いサーバーは同じ日の夕方ではなく、1 週間後に破棄します。
コピー処理自体は 2 つのコマンドで構成され、それぞれ 2 回実行します。ファイル同期には次を使用します。
rsync -aHAX --numeric-ids --delete -e ssh /srv/ deploy@203.0.113.20:/srv/-a は所有者、権限、タイムスタンプを保持し、-H はハードリンクを保持し、-AX は ACL と拡張属性を保持します。--numeric-ids は、2 台のマシン間で異なる名前を介して rsync がユーザー ID を再マッピングするのを防ぎます。数日前に一度実行し、書き込み停止中にもう一度実行します。2 回目は変更されたものだけを転送します。
dump で処理できるサイズの PostgreSQL には、次を使用します。
pg_dump --format=custom --no-owner --dbname=appdb --file=appdb.dump
scp appdb.dump deploy@203.0.113.20:/var/tmp/
pg_restore --clean --if-exists --no-owner --dbname=appdb /var/tmp/appdb.dumpMySQL または MariaDB には、次を使用します。
mysqldump --single-transaction --routines --triggers --databases appdb > appdb.sql--single-transaction は InnoDB テーブルの dump を 1 つのトランザクション内で実行します。そのため、結果に一貫性があり、実行中もアプリケーションは書き込みを継続できます。このフラグがない場合、mysqldump はテーブルをロックします。その場合、予定より早く書き込み停止が始まり、停止するタイミングを選べません。
サーバー外部の要因によって、2 つの問題が発生します。新しい IP アドレスにはメールの評価実績がないため、新しいサーバーから直接送信したメールはスパムとしてフィルタリングされます。すでに評価実績のある relay 経由で送信してください。また、決済ゲートウェイやクライアントのファイアウォールなど、送信元 IP を allowlist に登録している接続先は、切り替え前に更新する必要があります。更新しないと、トラフィックを移した瞬間にそれらへの接続が失敗します。
契約前に確認すること
- 料金がキャンペーン価格かどうか、また更新時にいくらになるかを確認します。初回期間の割引が更新時に倍増する場合、それは実際のコストであり、支払いが先送りされているだけです。
- 期間分を前払いする契約かどうかを確認します。SSD Nodes の販売方式である複数年の前払いプランでは、先にまとまった金額を支払うことで、RAM 1 GB あたりの料金を大幅に下げられます。その代わり、翌月に解約して離脱することはできません。契約期間は、どの程度確実に利用を続けるかに合わせて選びます。
- スナップショットの月額料金と、復元にかかる費用および時間を確認します。
- 超過分が課金されるのか、帯域制限がかかるのかを確認します。
- IPv6 が適切にルーティングされるのか、それとも単一のアドレスを追加しただけなのかを確認します。
- 手作業ではなくコードから再構築する予定なら、保守されている Terraform provider を備えた API があるかを確認します。
- サポートへの連絡方法と、販売に関する質問ではなく、サーバー停止時に適用される公開応答目標を確認します。
自分の請求額を最も左右する軸で選びます。その軸がメモリなら、RAM 1 GB あたりの料金で決まります。送信トラフィックなら、含まれる転送量で決まります。自分の作業時間なら、マネージドプラットフォームで決まり、この4社の比較では DigitalOcean が最も優れています。
FAQ
Hetzner は常に DigitalOcean より安価ですか?
単純な仮想マシンであれば、RAM 1 GB あたりの料金は大幅に安価です。2026 年 8 月 5 日時点のエントリー向け共有プランでは、$1.62 に対して $6.00 です。ただし、マネージドサービスを含めると比較は変わります。Hetzner が提供するのはサーバーとネットワークであるため、マネージドデータベースやデプロイを自動化するプラットフォームは、自分で用意するか、第三者から調達する必要があります。その運用には費用がかかります。Hetzner は 2026 年中にもクラウド料金を引き上げたため、古い記事を信頼せず、現在のユーロ建て料金を確認してください。
マネージドデータベースが必要な場合、どの DigitalOcean 代替サービスを選ぶべきですか?
Vultr と Akamai はどちらもマネージドデータベースを提供しているため、DigitalOcean を利用する主な理由がマネージドデータベースである場合に、最も近い代替サービスです。低価格の欧州系ホスティング事業者は、通常、マネージドデータベースを提供していません。そのため、レプリケーションと、テスト済みのフェイルオーバーを含めて、PostgreSQL または MySQL を自分で運用する必要があります。これは実際の運用作業です。安価なサーバーで節約できる金額を判断する前に、マネージドな 1 GiB インスタンスの月額 $15.15 と比較してください。
稼働中のサイトをダウンタイムなしで新しいプロバイダーへ移行するには、どうすればよいですか?
移行の少なくとも 48 時間前に DNS TTL を 300 秒まで短縮してください。リゾルバーは、以前の TTL で指定された期間、古い IP アドレスを返し続けるためです。古いホストが引き続きトラフィックを処理している間に、新しいホストを構築してテストします。自分のマシンで /etc/hosts を使用して上書きすれば、ほかの利用者には新しいホストが見えません。その後、数分間書き込みを停止し、最後の rsync 差分とデータベース同期を実行してから、A レコードと AAAA レコードを切り替えます。短縮した TTL を無視するリゾルバーに備え、古いサーバーは 1 週間稼働させておきます。
安価な VPS はディスクの速度が遅いということですか?
必ずしもそうではありません。重要なのは、仮想ディスクがホスト上のローカルストレージにあるか、ネットワークストレージクラスタ上にあるかです。しかし、管理パネルにその情報が表示されることはほとんどありません。lsblk -o NAME,ROTA は、どちらも回転式ではないため、両方を 0 と報告します。代わりに実測してください。--iodepth=1 --bs=4k --direct=1 を指定して fio を実行し、完了レイテンシの 99 パーセンタイルを確認します。ネットワークボリュームでは、読み取りごとにデータセンター内のネットワーク往復が発生します。そのため、深いキューでのスループットが同程度でも、ローカル NVMe よりレイテンシの下限が高くなります。
新しいサーバーからメールを送信しても、引き続き配信されますか?
最初は配信されないことがよくあります。新しい IP アドレスには送信実績がないため、受信側はそのアドレスからのメールを不審なものとして扱い、迷惑メールに分類するか、完全に拒否します。SPF レコードと DKIM レコードも、更新するまでは古いホストを参照します。すでに送信者としての評価を得ているリレーまたはメールサービスを使用してアプリケーションメールを送信してください。また、メール関連の DNS レコードは切り替え後ではなく、切り替え前に更新します。