【すいちょくすけーりんぐ】

垂直スケーリング(スケールアップ) とは?

💡 レジが混んだら「レジ係を超高速にする」方式
📌 このページのポイント
垂直スケーリング vs 水平スケーリング 垂直スケーリング Scale Up / Down サーバー CPU: 2 RAM: 4G スペック強化 サーバー CPU: 16 RAM: 64G SSD: 2TB ○ 構成がシンプル・管理が容易 アプリ変更不要 × スペック上限あり・コスト高 単一障害点が残る 1台を大きくする 水平スケーリング Scale Out / In Server 1 Server 2 Server 3 Server 4 (新) 台数を増やす → ロードバランサー ○ 拡張性が高い・耐障害性 理論上無限にスケール可能 × 設計が複雑・データ同期が課題 ステートレス設計が必要 台数を増やす
垂直スケーリングと水平スケーリングの比較
ひよこ ひよこ

垂直スケーリングって要するにいいパソコンに買い替えるってこと?

ペンギン先生 ペンギン先生

まさにそのイメージだよ。クラウドならEC2のインスタンスタイプをm5.largeからm5.2xlargeに変更するだけ。CPUが2倍・メモリが2倍になる。アプリのコードを一切変えなくていいのが最大のメリットだね。

ひよこ ひよこ

じゃあ水平スケーリングより楽じゃん。なんで水平も使うの?

ペンギン先生 ペンギン先生

垂直スケーリングには限界があるんだ。一番大きいインスタンスタイプにしたらそこで打ち止め。しかもスペックを上げるとき、クラウドでもインスタンス再起動が必要になることが多い。その間はサービスが止まるから、ダウンタイムゼロでスケールアップするのは簡単じゃないんだよ。

ひよこ ひよこ

じゃあ垂直スケーリングが向いてるのってどんなとき?

ペンギン先生 ペンギン先生

データベース水平スケーリングが難しいから、まず垂直スケーリングで対応することが多いよ。あとはレガシーアプリでマルチサーバー対応に書き換える余裕がないとき。「まず垂直で凌いで、その間に水平対応の設計を進める」というのが現実的なアプローチだね。

ひよこ ひよこ

CPUとメモリを倍にしたら性能も倍になるの?

ペンギン先生 ペンギン先生

ここが垂直スケーリングの落とし穴でね。アムダールの法則というのがあって、処理の中で並列化できない部分がボトルネックになって、リソースを倍にしても性能は倍にならないんだ。例えばシングルスレッドでしか動かないバッチ処理CPUコアを増やしても速くならない。メモリを増やしたのに速くならないなら、実はディスクI/Oがボトルネックだった、ということもある。垂直スケーリングの前に「何がボトルネックなのか」をプロファイリングで特定しないと、お金だけかかって効果が出ない、というのはよくある話なんだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「垂直スケーリング」って出てきたら「サーバーのスペックを上げて性能を強化することだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「Vertical Scaling / Scale Up」 = 垂直方向に拡張する
💬 上に積み上げるイメージからVertical(垂直)。性能を上に引き上げるからScale Up(上に拡張)とも言うよ
← 用語集にもどる