VPSプランを選ぶというのは、予算の許す限り大きなスペックを買うことではありません。CPU、RAM、NVMeを実際のワークロードに合わせて選び、使わないスペックではなく、実際に使う容量にお金を払うということです。
すべてを決める3つのスペック
どのVPSプランも、突き詰めれば3つのリソースとネットワークをまとめたものです。それぞれが何を左右するかを理解すれば、1分もかからずにサーバーのサイズを決められます。
vCPU
どれだけの処理を並列で、どれだけの速さで実行できるかを決めます。リクエストのスループット、コンパイル、トランスコーディングなど、CPUに依存する処理全般を左右します。
RAM
作業用メモリです。データベース、キャッシュ、アプリケーションの実行環境はここで動作します。不足するとシステムはディスクへのスワップを始めるか、カーネルがプロセスを強制終了します。
NVMeストレージ
容量と速度の両方を担います。NVMeはSATA SSDやHDDよりもはるかに高いIOPSを実現し、データベースや負荷の高いファイルシステムにとって重要な意味を持ちます。
帯域幅
どれだけのデータを転送できるかを示します。無制限の回線であれば、トラフィックメーターを気にし続ける精神的な負担がなくなります。
vCPU:コア数とクロック、そして共有の重要性
vCPUとは、物理コア上のスレッドがVMにスケジューリングされたものです。同じ「4 vCPU」と表記されたプランでも、ホストのCPUや、それを共有する他の利用者の数によって挙動は大きく異なります。
- 動画エンコード、ビルド、バッチ処理などCPU依存の処理は、コア数とクロック速度に比例して性能が向上します。コアを増やしましょう。
- データベースやネットワークの応答待ちが中心となる一般的なWebアプリなど、I/O依存の処理はCPUを使い切ることがほとんどありません。コアを買いすぎないようにしましょう。
- 常時100%近い負荷がかかる場合は、専有または非共有のコアが必要です。断続的な負荷であれば共有コアで十分です。
- コアを増やしてもシングルスレッドの処理は速くなりません。ワークロードが並列で動作する場合にのみ効果があります。
目安として、ピーク時でもCPUグラフが60%を超えることがほとんどないなら、コア数は十分です。その分の予算はRAMや高速なディスクに回しましょう。
RAM:最初に不足しがちなスペック
RAMは不足したときの影響が最も深刻なリソースです。CPUが逼迫しても処理が遅くなるだけですが、メモリが逼迫するとスワップが発生し、OOM Killer(メモリ不足時のプロセス強制終了)が作動して、クエリの途中でデータベースがオフラインになることもあります。
データベースはRAMを好みます。よく使われるデータをディスクではなくメモリ上にキャッシュできるためです。作業データがRAMに収まっていればクエリは高速なままですが、ディスクにあふれるとレイテンシーが急激に悪化します。
常に余裕を持たせましょう。RAMをピーク値ぴったりに合わせると、最初のトラフィックスパイクやメモリリークでスワップに突入してしまいます。搭載メモリの60~70%で運用することを目安にしてください。
NVMe:容量は簡単な方の話にすぎない
ストレージには2つの側面があります。どれだけ保存できるかと、どれだけ速く読み書きできるかです。後者においてNVMeは圧倒的に優れており、SATA SSDに対して桁違いに高いIOPSを実現します。
- データベース、メッセージキュー、メールサーバーはIOPSを大量に消費します。NVMeを使えばディスクがボトルネックになることを防げます。
- ログの書き込みが多いアプリや書き込み中心のアプリは、NVMeの低い書き込みレイテンシーの恩恵を受けます。
- コールドアーカイブやバックアップ用途では、速度よりも純粋な容量の方が重要です。ストレージプランの方がGB単価は安くなります。
- 容量はデータ本体に加え、OS、スワップ、ログ、そして将来の拡張分まで見込んでサイジングしてください。ディスクを100%まで使い切ると書き込みが破損する恐れがあります。
高速なランダムI/Oよりも、バックアップやメディア用の大容量スペースが主な目的であれば、専用のストレージプランを使うことで、ボリューム全体にNVMeの価格を払うことなく容量を確保できます。
どんなプランにも使える、再現性のあるサイジング手順
- 1
ワークロードを明確にする
Webアプリ、データベース、コンテナ、ゲームサーバー、VPNなど、実際に何を動かすのかを具体的に書き出します。それぞれリソースの傾向は異なります。
- 2
ボトルネックとなるリソースを見極める
その処理がCPU依存、メモリ依存、I/O依存のどれに当たるかを判断します。そのリソースがプランを決定し、他のリソースはそれに見合っていれば十分です。
- 3
ボトルネックのリソースに余裕を持たせてサイジングする
ピーク時の需要を見積もったうえで、そこにおおよそ30~40%を上乗せします。こうすることで、急激な負荷増加や成長によって緊急移行を迫られることを防げます。
- 4
残りのスペックのバランスを取る
他の何かが新たなボトルネックにならないように、残りのスペックも見合ったものにします。RAMを伴わないコアや、NVMeを伴わないRAMは、どちらも予算の無駄になります。
- 5
小さく始めて、データを見ながらスケールする
まずデプロイし、1週間ほど実際のメトリクスを観察してからリサイズします。実測値は、どんな推測にも勝ります。
所在地とネットワークもスペックの一部
どれだけ適切にサイジングされたサーバーでも、設置場所を誤れば体感速度は遅くなります。ユーザーへのレイテンシーは物理的な距離で決まるため、利用者に近いデータセンターを選びましょう。プライバシーを優先するのであれば、有利な法域にあるデータセンターを選ぶという考え方もあります。
ChainVPSでは、すべてのプランに無制限帯域とDDoS対策が標準で含まれており、15拠点、うち6つのプライバシー重視リージョン(オランダ、スイス、ルーマニア、アイスランド、モルドバ、ルクセンブルク)から選択できます。プリペイドの暗号資産残高で支払うオフショアVPSをお探しなら、この法域の選択肢とKYC不要の申し込みという組み合わせこそが、/offshore-vpsプランから始める理由になります。
よくあるサイジングの失敗
I/O依存のアプリに多くのコアを買ってしまう
データベースの応答を待つWebアプリは8コアを使い切ることはありません。それよりもRAMやNVMeに投資した方が効果的だったはずです。
RAMに余裕を持たせない
ピーク値ぴったりにサイジングすると、次の負荷増加でディスクへのスワップが発生したり、プロセスが強制終了されたりします。余裕を持たせましょう。
ディスク速度を軽視する
容量は大きくても遅いディスクは、データベースの処理を圧迫します。ギガバイト数だけでなく、IOPSをワークロードに合わせましょう。
計測せずに推測で決める
何も確認せずにデプロイすると、過剰にも過小にも予算を無駄にしてしまいます。1週間もあれば、メトリクスが実態を教えてくれます。
用途に合ったプランタイプを選ぶ
ボトルネックが分かれば、選ぶべき製品カテゴリーはおのずと決まります。
要点:ワークロードが最も依存するリソースを見極めてサイジングし、他のリソースはバランスを保ち、余裕を持たせ、最初のアップグレードは実際のメトリクスに基づいて判断しましょう。
vCPUは実際どれくらい必要ですか?
ほとんどのWebアプリやデータベースでは、処理がCPU依存ではなくI/O依存であるため、2~4 vCPUで十分です。トランスコーディングやコンパイルのように、常時並列で負荷がかかる処理でなければ、それ以上は必要ありません。CPUグラフを確認し、ピーク時でも60%を超えることがほとんどなければ十分と言えます。
データベースにはRAMの増強と高速なCPU、どちらが良いですか?
多くの場合はRAMです。データベースはよく使うデータをメモリ上にキャッシュするため、RAMが多いほど遅いディスク読み込みが減ります。そのRAMをNVMeストレージと組み合わせれば、一般的なクエリ負荷においてCPUが制約になることはほとんどありません。
NVMeは本当に重要ですか?それとも普通のSSDでも問題ありませんか?
データベース、メール、キュー、負荷の高いログなど、I/O負荷の高い用途では重要です。NVMeはSATA SSDよりもはるかに高いIOPSと低いレイテンシーを実現します。容量さえあればよいコールドバックアップやメディア用途であれば、より低速で安価なボリュームでも問題ありません。
安全のために過剰にプロビジョニングすべきですか?
余裕は持たせつつ、買いすぎないことが大切です。容量のおよそ60~70%を目安にサイジングすれば、遊休リソースにお金を払うことなく負荷の急増を吸収できます。最初は控えめに始め、1週間ほど実際のメトリクスを観察してからリサイズしましょう。残高をチャージすれば、データが示すタイミングでいつでもスケールアップできます。


