Skip to content
Latchkey

垂直スケーリングとは? 一台のマシンを大きくする

垂直スケーリング、すなわちスケールアップは、単一のマシンにより多くのリソース (CPU、メモリ、ディスク) を与えることで、より多くの負荷を処理します。

より多くの負荷を処理する最も単純な方法は、マシンを大きくすることです。垂直スケーリングはまさにそれを行います。load balancerもステートレス化の書き直しもなく、ただより大きなインスタンスにするだけです。導入が速く、しばしば最初の正しい一手ですが、水平スケーリングが回避する上限と単一障害点に突き当たります。

より大きな箱、同じアーキテクチャ

同じアプリケーションを、より多くのCPU、RAM、あるいは高速なストレージを持つインスタンスに移します。コードを変える必要はなく、多数のインスタンスを調整する複雑さを避けられます。最も抵抗の少ない道です。

選ぶ理由

  • 単純さ: 分散も、外部化すべき共有状態もありません。
  • リソース制約のボトルネックに対する、しばしば手早い解決策。
  • load balancerやセッションの外部化が不要。
  • 並列化が難しいワークロードに向いています。

硬い上限

買える最大のマシンがあり、いずれそこに突き当たります。ある点を超えると、リソースを倍にするコストは倍をはるかに超え、単一の大きなマシンは依然として冗長性のない単一障害点です。

CI/CDの観点

垂直スケーリングはデプロイの話を単純に保ちます。一つのartifactを一台のマシンへ、です。ただしスケールアップは通常インスタンスの再起動や置き換えを伴うため、standbyと組み合わせない限りダウンタイムに傾きます。パイプラインはしばしば、より大きなインスタンスへの入れ替えとその戻しを自動化します。

CIのjobをスケールアップする

重いbuild、大きなコンパイル、メモリを大量に使うテストスイートは、スケールアップするjobです。作業を分割するのではなく、そのrunnerにより多くのCPUとRAMを与えます。適切なrunnerサイズを選ぶこと自体が、パイプラインに適用された垂直スケーリングの判断です。

runnerを適切にサイズする

メモリ不足になるbuildは、runnerが何台あろうと失敗します。より大きなものが必要なのです。Latchkeyはより大きなrunnerサイズを提供し、リソース制約のあるjobがパイプラインを再設計せずにスケールアップできるようにします。

重要なポイント

  • 垂直スケーリングは、マシンを増やすのではなく、一台のマシンにリソースを追加します。
  • 単純ですが、上限に達し、単一障害点のままです。
  • CIでは、より大きなrunnerを選ぶことが、buildのjobに適用された垂直スケーリングです。

関連ガイド