大きくするか増やすか
2つの増やし方
足りないと分かったとき、やり方は2つです。
1台を大きくするのが垂直、台数を増やすのが水平です。
垂直はメモリや CPU を増やすだけなので、構成が変わりません。水平は振り分けが要るので、構成が変わります。
水平にすると、ロードバランサとセッションの置き場所が要ります。
増えるのは台数だけではありません。 見る所も、壊れ方も増えます。1台で足りるうちは1台のほうが速く直せます。
垂直には天井がある
垂直は楽ですが、1台の大きさには上限があります。
Python
# 1台の上限が 200 QPS なら、ピーク 500 は垂直では届かない
# 500 ÷ 200 = 2.5 → 3台上限に届いたら水平へ移ります。判断の順番は、現状で足りるか、垂直で足りるか、それでも足りないかです。
試すか、提供元の表を見ます。どちらもできないときは仮に置きます。
置けば「あと何倍で天井か」が言えます。天井までの距離が分かると、いつ水平に移るかを前もって決められます。
演習
ピーク QPS・いまの1台の上限・大きくしたときの上限から、3つのうちどれを選ぶかを返します。
要件
- peak_qps が current_qps 以下なら strategy は "as-is" で servers は 1
- そうでなく peak_qps が max_qps_per_server 以下なら strategy は "vertical" で servers は 1
- どちらでもなければ strategy は "horizontal"、servers は peak_qps ÷ max_qps_per_server を切り上げた数
ヒント
編集 ゆめさく編集部