先に予約すると無駄が3年契約になる
目標
理論で順序を見ました。使っていないものから消し、コミットメント割引は最後です。ここでは、その順序を実際の数字で確認します。
特に次の2つを、手を動かして体験します。
- CPUだけを見てサイズを減らすと、事故になります。 メモリとバーストクレジットが、本当の制約であることが多くあります。
- 整理する前にコミットメントを買うと、無駄を3年契約で固定します。 どれだけ多く支払うことになるかを、金額で計算します。
開始
mkdir -p /root/rightsize
cp -r /opt/lab/rightsize/* /root/rightsize/
cd /root/rightsize
python3 plan.py
合計は$4,607.76になります。
ファイル
| ファイル | 役割 |
|---|---|
fleet.json |
インスタンスの一覧と直近14日間の指標。元のファイルはそのまま残します |
plan.py |
1か月分のコストを計算します。直しません |
after.json |
fleet.jsonをコピーして、自分で直すファイル |
指標を必ず読んでください。CPU최대_14일だけを見ると、5台すべてを減らしてもよさそうに見えますが、そのうち3台は別の指標が妨げています(韓国語のフィールド名は「CPU最大_14日」を意味します)。
採点
ステップ3と5は、採点ツールが自分のafter.jsonで直接計算します。数字だけを書いて出しても通過せず、減らしてはいけないものを減らしても引っかかります。
作るもの
01-baseline.txt 지금 얼마이고 어디에 몰려 있나
02-signals.md 줄일 수 있는 것과 못 줄이는 것, 그리고 그 근거 지표
after.json 실제로 고친 구성 (3단계와 5단계가 함께 쓴다)
04-blocked.md 무엇이 막고 있고, 무엇을 재면 풀리나
06-commit.txt 정리된 기준선 위에서의 약정 금액
07-order.txt 정리 전에 샀다면 얼마를 더 내나
08-keep.md 줄인 것을 유지하는 절차
現在のコストを確認する
plan.pyを実行して、現在の合計と最も大きい項目3つを、比率とともに01-baseline.txtに書いてください。
python3 plan.pyが項目別に計算して、比率まで一緒に出力します。
金額だけを書いてはいけません。比率があってはじめて、どこから手を付けるかを決められます。全体の1%のものを半分に減らしても、0.5%にしかなりません。
何がサイズの縮小を妨げているかを見る
5台のcomputeを減らせるものと減らせないものに分け、それぞれの根拠となる指標を02-signals.mdに書いてください。
fleet.jsonのCPU최대_14일、메모리최대_14일、버스트크레딧최소_14일を一緒に見ます(韓国語のフィールド名で、順に「CPU最大_14日」「メモリ最大_14日」「バーストクレジット最小_14日」を意味します)。
CPUが低いというだけでは根拠になりません。メモリが一杯になっていると、vCPUを減らすときにメモリも一緒に減って、収まらなくなります。バースト型は、平均CPUが低くても、クレジットが底をついていればすでに性能制限がかかった状態です。
1段階ずつだけ減らす
fleet.jsonをafter.jsonにコピーしたあと、指標が許すものだけを1段階ずつ減らしてください。妨げられているものには触れません。
サイズの階段は、fleet.jsonの크기_사다리にあります(韓国語のフィールド名は「サイズの階段」を意味します)。s → m → l → xlです。
2段階を一度に減らしてはいけません。問題が起きたとき、どの段階が原因だったかを判断する根拠がなくなります。1段階減らして観察してから、また決めます。
採点ツールがafter.jsonを直接読んで、どれをどれだけ減らしたかを見ます。
妨げられているものを放置しない
減らせなかった3台それぞれについて、何が妨げていて、何を測ったり変えたりすれば解決するかを04-blocked.mdに書いてください。指標の数値も一緒に書きます。
「メモリが高いから減らせない」で終えると、次の四半期にも同じ場所にいます。
それぞれについて問いかけてください。この値はなぜこんなに高いのか、それを下げるにはコードや構造で何を変えなければならないか、そして何を測定すれば判断できるか。
バースト型は、減らすのではなく、固定性能のファミリーへ移すかを測ることが答えかもしれません。
使っていないものから削除する
14日間誰も使っていないリソースを探して、after.jsonから削除してください。使っているものは残します。
computeではなく、残りの項目の指標を見てください。대상수、요청수_14일、연결됨、연결수_14일です(韓国語のフィールド名で、順に「ターゲット数」「リクエスト数_14日」「接続済み」「接続数_14日」を意味します)。
理論の順序の1つ目がこれです。リスク0、効果は即時。サイズ調整より先にやるべき理由は、元に戻しやすく、測定が不要だからです。
すべて削除したあと、python3 plan.py after.jsonの合計は$3,153.60になります。
整理されたベースラインの上でコミットメントを計算する
整理が終わったcomputeの金額にコミットメント割引を適用して、月額と3年間の総額を06-commit.txtに書いてください。どのベースラインの上で計算したかも書きます。
コミットメントの条件は、fleet.jsonの약정にあります(韓国語のフィールド名は「コミットメント」を意味します)。割引率40%、36か月です。
コミットメントは、コミットした時間あたりの金額を3年間ずっと支払うものです。実際に使う量が少なくても返金されません。だから、何をベースラインにするかが、そのまま3年分の支出になります。
整理する前に購入していたら
整理する前のcomputeの金額で同じコミットメントを購入していたら、3年でいくらになるか、そして整理後との差額を07-order.txtに書いてください。そのお金がなぜそのまま消えるのかも書きます。
整理前のcomputeは$4,204.80でした。同じ割引率と期間で計算して、ステップ6の結果と引いてみてください。
この差額が、このラボの答えです。 理論が「コミットメントは最後」と言った理由が、数字で出てきます。コミットメントを先に買うと、あとでリソースを削除しても、その金額は出ていき続けます。
半年後もそのままであるために
08-keep.mdに、手を付ける順序と、減らしたものを維持する手順を書いてください。誰がコストを見られるべきかも含めます。
一度減らしても、6か月で元に戻ります。一回限りの作業と手順の違いがそこです。
理論は4つを挙げています。予算とアラート、タグの強制、定期レビュー、可視性です。そのなかでも可視性が核心です。作った人が自分のコストを見られなければ、誰も減らしません。
次の四半期に、別の人がこのドキュメントだけを見て、そのとおりに回せるように書いてください。