SAP-C02-091 · セクション 10 / タスク 2.5
Rightsizing Strategy
CPU / Memory / ネットワーク / Storage / 使用率 / 適正サイズ化
適正サイズ化(Rightsizing)では、
CPU使用率が低い
↓
小さいインスタンスへ変更のように、1つの指標だけで判断しません。
実際にインスタンスサイズを決めているのは、
CPU
メモリ
ネットワーク
ストレージのうち、
最も厳しい性能要件である場合があります。
例えば、
CPU
25%
メモリ
55%
ネットワーク
85%なら、CPUには大きな余裕があっても、ネットワーク性能を維持するために現在の規模が必要かもしれません。
適正サイズ化では、
各リソースの必要量
↓
サイズ変更後に利用できる能力
↓
すべての制約を満たせるかを確認します。
ゴール
次のような判断ができるようにします。
CPUに余裕
+
メモリが上限付近
↓
CPUだけを見て縮小しないCPU / メモリに余裕
+
ネットワークが上限付近
↓
ネットワーク性能が
サイズを決める可能性必要なストレージ性能が高い
↓
その性能を利用できる
EC2構成を下限条件にするつまり、
どのリソースが
最小構成を決めているかを見つけます。
1. 適正サイズ化では「制約となるリソース」を探す
例えば現在のEC2インスタンスが、
CPU
20%
メモリ
25%
ネットワーク
90%
EBS
30%だったとします。この場合、
平均すると
余裕が大きいからといって縮小できるとは限りません。
実際のサイズを決めているのは、
ネットワーク性能かもしれません。
適正サイズ化では、
最も余っているリソースではなく、
最も厳しい制約を確認します。
2. パフォーマンス目標を満たす能力を残す
例えばCPU使用率が、
85%でも、
必要なスループットを達成
+
レイテンシーも目標以内
+
必要な余裕も確保できているなら、それだけでサイズ不足とは判断しません。
反対に、
CPU
40%でも、
ネットワーク上限到達
+
レイテンシー悪化なら、現在の構成は性能目標を満たしていない可能性があります。
したがって、
利用率
+
実際の性能目標を組み合わせます。
3. CPU・メモリ・ネットワーク・ストレージを別々に評価する
1つのEC2インスタンスでも、
CPU能力
メモリ容量
ネットワーク性能
ストレージ性能は別々の制約になります。
例えば、
CPU
余裕あり
メモリ
余裕あり
ネットワーク
不足なら、
CPUを増やすこと自体が目的ではありません。必要なのは、
ネットワーク要件を満たす構成です。
4. CPUが制約になる場合
例えば、
CPU
95〜100%
メモリ
45%
ネットワーク
30%
ストレージ
40%
レイテンシー
目標超過なら、CPU能力が性能を制限している可能性があります。
この場合は、
必要なCPU能力を満たせる構成を評価します。
重要なのは、
CPU不足
↓
制約と無関係な
リソースだけを増やすとしないことです。
5. メモリが制約になる場合
例えば、
CPU
25%
メモリ
92%
ネットワーク
20%なら、CPUだけを見ると縮小できそうに見えます。
しかし同じ比率のまま小さいサイズへ変更すると、
CPU
十分
メモリ
不足になる可能性があります。
この場合、
必要なメモリ容量を維持しつつ
過剰なCPUを減らせる構成を評価します。
つまり、
総サイズだけでなく、
CPU : メモリの比率も適正サイズ化の対象です。
6. メモリの観測値がなければ判断を保留する
CPU使用率だけが低くても、
メモリ使用率
不明なら、
小さいインスタンスへ変更可能とは確定できません。
サイズ変更を制限する可能性のある情報が不足しているためです。
適正サイズ化では、
必要なリソースの観測値がない
↓
縮小判断を確定しないとします。
7. ネットワーク帯域がサイズを決める場合
EC2インスタンスには、インスタンスタイプごとにネットワーク性能があります。
例えば、
CPU
30%
メモリ
35%
ネットワークスループット
上限付近なら、CPUやメモリだけを根拠に小さい構成へ変更すると、
利用可能なネットワーク性能
↓
さらに低下する可能性があります。
この場合は、
必要なネットワーク帯域を満たすことがサイズ変更の条件になります。
8. PPSがサイズを決める場合
ネットワークでは、
転送バイト数だけでなく、
PPS
(Packets Per Second)も制約になります。
例えば、
大量の小さいパケットを処理するワークロードでは、総転送量がそれほど大きくなくても、
パケット処理性能が上限に近づくことがあります。
そのため、
NetworkIn
NetworkOutだけでなく、
NetworkPacketsIn
NetworkPacketsOutも判断材料になります。
9. ストレージは容量と性能を分ける
ストレージでは、
保存容量と、
IOPS
スループットを別の制約として扱います。
例えば、
2 TiBのEBSボリューム
使用データ
400 GiBでも、
高いIOPS
+
高いスループットが必要なら、
容量使用率が低い
=
I/O性能も余っているとは判断できません。
10. 既習のストレージ性能要件をサイズ変更の下限制約として使う
ストレージ性能そのものの選び方は既習です。
ここでは、
必要IOPS
+
必要スループットを、
EC2をどこまで小さくできるかの制約として利用します。
例えば、小さいEC2候補がCPU・メモリ要件を満たしていても、
必要なストレージ性能を
利用できないなら、その候補は除外します。
11. 容量の余裕と性能の余裕は別に扱う
例えば、
保存容量
80%未使用でも、
必要IOPS
高い
必要スループット
高い場合があります。
反対に、
保存容量
多いからといって、高いI/O性能が必要とは限りません。
したがって、
容量の適正化と、
性能の適正化を別々に考えます。
12. 1つの制約だけで最小サイズが決まることがある
例えば候補Aと候補Bがあるとします。
候補A
CPU
十分
メモリ
十分
ネットワーク
不足候補B
CPU
十分
メモリ
十分
ネットワーク
十分この場合、候補Aの方が小さくても選べません。
適正サイズ化では、
すべての必要条件を
満たす最小構成を探します。
13. 全リソースを同じ割合で減らせるとは限らない
現在、
CPU
過剰
メモリ
適正
ネットワーク
適正だとします。
同じインスタンスファミリーで1段階小さくすると、
CPU
適正
メモリ
不足
ネットワーク
不足になる可能性があります。
この場合は、
サイズだけを小さくするのではなく、
CPU
メモリ
ネットワークの比率がワークロードへ合う構成を評価します。
14. 同じファミリー内だけで考えない
現在の構成が、
CPU
20%
メモリ
85%なら、同じ比率でCPUとメモリが減るサイズ変更は適さない可能性があります。
必要なのは、
余っているCPUを減らす
+
必要なメモリを維持することです。
逆に、
CPU
95%
メモリ
30%なら、CPU側へ比重を置いた構成が候補になります。
ここでのポイントは、
現在のサイズではなく、
必要なリソース比率です。
15. 水平スケーリングと1台あたりの適正サイズ化を分ける
Auto Scalingを使用していても、
1台あたりのインスタンスが
過剰に大きいことはあります。
例えば、
ピーク時
12台
各インスタンス
CPU 25%
メモリ 30%
ネットワーク 25%なら、
台数を自動調整できていることと、
1台のサイズが適切であることは別です。
1台あたりの能力と、
必要台数を分けて考えます。
16. 小さくすると別のリソースが次のボトルネックになる
例えば変更前が、
CPU
20%
メモリ
40%
ネットワーク
45%だったとします。
サイズを小さくすると、
CPU
35%
メモリ
70%
ネットワーク
95%になるかもしれません。
この場合、
CPUにはまだ余裕があるとしても、ネットワークが新しい制約になります。
適正サイズ化では、
現在のボトルネックだけではなく、
変更後に
どのリソースが最初に限界へ達するかも考えます。
17. 複数制約が同時に存在する場合
例えば、
CPU
70%
メモリ
82%
ネットワーク
85%なら、どれか1つだけを基準にサイズを決めるのではなく、
CPU要件
かつ
メモリ要件
かつ
ネットワーク要件をすべて満たす必要があります。
つまり適正サイズ化は、
最小CPU
最小メモリ
最小ネットワークを個別に確認し、
そのすべてを満たせる構成を選ぶ問題です。
18. EBS容量を小さくしたい場合は新しいボリュームへ移行する
Amazon EBSでは、既存ボリュームのサイズをそのまま小さくすることはできません。
例えば、
現在
2 TiB
必要容量
500 GiBだからといって、
既存2 TiB
↓
500 GiBへ直接縮小することはできません。
容量を小さくしたい場合は、
必要な容量と性能を持つ
新しい小容量ボリュームを作成
↓
データを移行
↓
切り替えという方法を評価します。
この場合も、
容量だけではなく、
IOPS
+
スループットの要件を維持します。
19. 代表的な判断表
| 観測状態 | サイズを決める主な条件 |
|---|---|
| CPU高、他に余裕 | CPU能力 |
| CPU低、メモリ高 | メモリ容量 |
| CPU・メモリ低、ネットワーク高 | ネットワーク帯域 |
| 転送量に余裕、小パケット処理が多い | PPS |
| 容量利用率低、IOPS高 | IOPS |
| 容量利用率低、スループット高 | スループット |
| 複数リソースが上限付近 | すべての制約を満たす構成 |
| 1台あたり低利用、Auto Scalingあり | 1台のサイズと台数を別々に評価 |
20. SAP-C02での判断フロー
現在の構成
↓
CPU / メモリ /
ネットワーク / ストレージ
の必要量を確認
↓
どのリソースが
最も厳しい制約?
├─ CPU
│ ↓
│ 必要なCPU能力
│
├─ メモリ
│ ↓
│ 必要なメモリ容量
│
├─ ネットワーク
│ ↓
│ 必要な帯域幅 / PPS
│
└─ ストレージ
↓
必要な容量
IOPS
スループット
↓
候補構成は
すべての条件を満たす?
├─ いいえ
│ ↓
│ 候補から除外
│
└─ はい
↓
より小さい候補を評価
↓
小さくしたとき
別のリソースが
新たな制約にならない?
├─ なる
│ ↓
│ その制約を満たす
│ 構成まで戻す
│
└─ ならない
↓
適正サイズ候補まとめ
適正サイズ化では、
最も余っているリソースではなく、
サイズを決めている
最も厳しいリソース要件を探します。
CPUに余裕があっても、
メモリ
ネットワーク
PPS
ストレージ性能のいずれかが上限に近ければ、単純な縮小はできません。
ストレージでは、
容量
IOPS
スループットを分離します。
最終的には、
CPU条件
かつ
メモリ条件
かつ
ネットワーク条件
かつ
ストレージ条件をすべて満たす範囲で、
過剰な能力を減らせる
最小の構成を選択します。
主要AWS公式資料
- AWS Certified Solutions Architect - Professional 試験ガイド
- Amazon EC2 — インスタンスタイプ
- Amazon EC2 — CloudWatchメトリクス
- Amazon EBS — CloudWatchメトリクス
- Amazon EBS — ボリュームの変更
理解確認
このページの内容を7問で確認します。
理解確認7問へ →