SAP-C02-083 · セクション 10 / タスク 2.5
EC2 Instance Familyの選択
汎用 / コンピューティング最適化 / メモリ最適化 / ストレージ最適化 / 高速コンピューティング / ワークロード特性
ゴール
Amazon EC2では、同じ「仮想サーバー」でも、
CPU
メモリ
ローカルストレージ
ネットワーク
アクセラレータの組み合わせが異なる多数のインスタンスタイプがあります。
そのため、
性能が足りない
↓
一番大きいEC2を選ぶとは判断しません。
まず、
何が性能を制限しているのか
↓
そのワークロードは
何を多く必要とするのか
↓
適したインスタンスカテゴリ
↓
カテゴリ内のインスタンスファミリーと絞り込みます。
重要なのは、インスタンス名を暗記することではなく、ワークロード特性から必要なリソース特性を判断し、その条件に合うファミリーへ絞ることです。
1. カテゴリ・シリーズ・ファミリー・タイプを分ける
EC2では、似た言葉を混同しないことが重要です。
例えば、
c8i.4xlargeを分解すると、
コンピューティング最適化
↓
カテゴリ
C
↓
シリーズ
8
↓
世代
i
↓
Intelプロセッサというオプション
C8i
↓
インスタンスファミリー
4xlarge
↓
インスタンスサイズ
c8i.4xlarge
↓
インスタンスタイプ| 階層 | 例 | 役割 |
|---|---|---|
| カテゴリ | コンピューティング最適化 | 大まかな用途・リソース特性 |
| シリーズ | C | カテゴリ内の系統 |
| インスタンスファミリー | C8i | 世代やプロセッサ等を含むファミリー |
| サイズ | 4xlarge | ファミリー内のキャパシティ |
| インスタンスタイプ | c8i.4xlarge | 実際に指定するタイプ |
このページでは、
ワークロード特性
↓
適切なカテゴリ
↓
候補となるインスタンスファミリーまでの判断を中心にします。
2. 最初にワークロード特性を見る
インスタンスカテゴリを選ぶ前に、
CPUが不足している?
メモリ容量が不足している?
ローカルI/Oが制約?
GPUなどのアクセラレータが必要?
特定の偏りがなくバランス型?を確認します。
例えば、
CPU 95%
メモリ 45%
I/O余裕ありと、
CPU 35%
メモリ不足
ページング発生では、最初に評価するカテゴリが異なります。
判断の中心は、どのリソースをワークロードが特に多く必要としているかです。
3. 汎用カテゴリはCPU・メモリ・ネットワークのバランス型
汎用カテゴリは、
CPU
+
メモリ
+
ネットワークを比較的バランスよく必要とするワークロードに向いています。
代表的なシリーズには、
M
Tなどがあります。
そこから、
M8i
M8g
T4gなどのインスタンスファミリーへ絞ります。
例えば、
ウェブサーバー
アプリケーションサーバー
マイクロサービス
小〜中規模のデータストアのように、
CPUだけ突出
メモリだけ突出
ローカルI/Oだけ突出という明確な偏りがなければ、汎用カテゴリを最初に評価できます。
特定リソースが支配的ではない
↓
汎用カテゴリ
↓
MシリーズやTシリーズから
要件に合うインスタンスファミリーを比較と進めます。
4. Tシリーズは「短時間だけCPUを増やしたい」ワークロード
汎用カテゴリのTシリーズは、バーストパフォーマンスインスタンスです。
通常は一定のCPUベースラインで動作し、
普段
CPU使用率が低い
↓
一時的な処理
↓
CPU性能をバーストという利用パターンに向いています。
CPUバーストはCPUクレジットによって管理されます。
例えば、
小規模ウェブサーバー
開発環境
低〜中負荷アプリケーションで、
通常時は低CPU
+
短時間だけ高CPUなら、
T3
T3a
T4gなど、Tシリーズに属するインスタンスファミリーを候補にできます。
一方、
常時CPUを高い割合で使用するワークロードについて、
バーストできるからTシリーズとは判断しません。
5. コンピューティング最適化カテゴリはCPU処理が中心
コンピューティング最適化カテゴリは、CPU処理能力を強く必要とするワークロードを対象とします。
代表的なシリーズは、
Cです。
その中から、
C8i
C8g
C9gなどのインスタンスファミリーを、プロセッサや互換性などに応じて比較します。
代表的な用途には、
バッチ処理
メディア変換
科学計算
ゲームサーバー
高性能ウェブサーバー
一部の機械学習推論などがあります。
判断材料は、
CPU使用率が継続的に高い
+
メモリには余裕がある
+
処理時間の多くをCPU計算が占めるといった特性です。
CPUが主要制約
↓
コンピューティング最適化カテゴリ
↓
Cシリーズの
C8i / C8g / C9gなどを比較と進めます。
6. CPUが高いだけでコンピューティング最適化とは限らない
例えば、
CPU 95%だけでは判断しません。
処理内容が、
GPUで大幅に高速化できる機械学習なら、高速コンピューティングカテゴリの方が適する可能性があります。
あるいは、
CPU負荷が一時的に高いだけなら、Tシリーズのインスタンスファミリーが候補になる場合があります。
したがって、
CPU使用率
+
処理の種類
+
負荷の継続時間
+
利用できるハードウェアを合わせて判断します。
7. メモリ最適化カテゴリは大きなデータをメモリ上で処理する
メモリ最適化カテゴリは、大容量メモリを必要とするワークロードを対象とします。
代表的なシリーズには、
R
X
Uなどがあります。
その中から、
R8i
R8g
X8iなどのインスタンスファミリーを要件に応じて比較します。
代表的な用途には、
インメモリデータベース
大規模キャッシュ
リアルタイム分析
大規模データセットのメモリ処理があります。
典型的な判断材料は、
CPUには余裕
↓
メモリ不足
↓
ページング
↓
レイテンシー悪化です。
メモリが主要制約
↓
メモリ最適化カテゴリ
↓
R / X / Uシリーズから
適切なインスタンスファミリーを比較と進めます。
8. 「データ量が多い」だけではメモリ最適化ではない
例えば、
20TBのデータを処理するという情報だけでは、メモリ最適化カテゴリとは判断できません。
20TBすべてを、
メモリ上に保持して処理するのか、
ストレージから順次読み書きするのかで必要なリソースは異なります。
したがって、
データ量ではなく、
どこにデータを置き
どのリソース上で処理するのかを確認します。
9. ストレージ最適化カテゴリはローカルI/Oを重視する
ストレージ最適化カテゴリは、EC2ホストに直接接続されたローカルストレージを利用し、高いI/O性能を必要とするワークロードに向いています。
代表的なシリーズには、
I
Dなどがあります。
例えば、
I8g
I8ge
D3enなどがインスタンスファミリーです。
典型的な用途には、
低レイテンシーのランダムI/O
大量のローカルデータ処理
高いシーケンシャル読み書き
一時的な高速処理領域などがあります。
判断の中心は、
CPUでも
メモリ容量でもなく
ローカルストレージI/Oが制約であることです。
ローカルI/Oが主要制約
↓
ストレージ最適化カテゴリ
↓
IシリーズやDシリーズから
適切なインスタンスファミリーを比較と進めます。
10. ストレージ最適化と永続ストレージを混同しない
ストレージ最適化カテゴリで重要になることがあるのが、
ローカルインスタンスストアです。
インスタンスストアのデータは、
再起動
→ 保持されますが、
停止
休止
終了
→ 消失します。
したがって、
高IOPSが必要という言葉だけで、
ストレージ最適化カテゴリを選んではいけません。
例えば、
CPU・メモリはバランス型
+
永続ブロックストレージで
高IOPSが必要なら、
EC2側のカテゴリ / ファミリー選択と、
永続ストレージの性能設計を分けて考えます。
11. 高速コンピューティングカテゴリは専用ハードウェアを使う
高速コンピューティングカテゴリは、
GPU
機械学習アクセラレータ
FPGA
その他のコプロセッサなどを使用して、CPUだけで処理するより効率的に特定の計算を実行します。
代表的なシリーズには、
G
P
Inf
Trn
Fなどがあります。
それらのシリーズから、
G6
P5
Inf2
Trn2などのインスタンスファミリーを要件に応じて評価します。
代表的な用途には、
機械学習の学習
機械学習の推論
グラフィックス
映像処理
大規模な並列計算
FPGAを利用する処理などがあります。
判断条件は単純な、
CPU使用率が高いではありません。
処理アルゴリズム
+
使用ソフトウェア
+
専用アクセラレータを利用できるかを確認します。
12. コンピューティング最適化と高速コンピューティングを分ける
両方とも「計算が重い」ワークロードで使われるため混同しやすい部分です。
CPUで高速に処理したい
↓
コンピューティング最適化カテゴリ一方、
GPU
Trainium
Inferentia
FPGA
などの専用ハードウェアを
利用できる処理
↓
高速コンピューティングカテゴリです。
その後、それぞれのカテゴリ内のシリーズから具体的なインスタンスファミリーを比較します。
13. 現行EC2では高性能コンピューティングも独立カテゴリ
現行のAmazon EC2公式ドキュメントでは、
汎用
コンピューティング最適化
メモリ最適化
ストレージ最適化
高速コンピューティングに加えて、
高性能コンピューティングも独立したカテゴリです。
代表的なシリーズは、
Hpcで、
Hpc7g
Hpc8aなどがインスタンスファミリーです。
大規模な、
複雑なシミュレーション
科学技術計算
深層学習などが明示された場合、
CPU処理だから必ずCシリーズと決めつけず、高性能コンピューティングカテゴリも評価します。
14. カテゴリが同じでもインスタンスファミリーは異なる
例えば、コンピューティング最適化カテゴリの中にも、
C8a
C8g
C8i
C9gなど複数のインスタンスファミリーがあります。
現行の代表例では、
C8a
→ AMD
→ x86_64
C8g
→ AWS Graviton
→ arm64
C8i
→ Intel
→ x86_64
C9g
→ AWS Graviton
→ arm64という違いがあります。
そのため、
コンピューティング最適化だから
どのCファミリーでも同じではありません。
例えば、
既存バイナリはx86_64のみ対応
+
ベンダー認定はIntelのみなら、
C8iが候補になります。
一方、
アプリケーションがarm64へ対応可能
+
Gravitonを利用したいなら、
C8g
C9gなどを評価できます。
つまり、
カテゴリ
↓
シリーズ
↓
プロセッサアーキテクチャ
ソフトウェア互換性
世代
その他の必要特性
↓
インスタンスファミリーと絞ります。
15. ファミリーとインスタンスタイプの関係を分ける
例えば、
C8iというインスタンスファミリーには、
c8i.large
c8i.xlarge
c8i.2xlarge
c8i.4xlargeなど複数のインスタンスタイプがあります。
関係は、
インスタンスファミリー
+
インスタンスサイズ
↓
インスタンスタイプです。
したがって、
C8i
=
インスタンスファミリーと、
c8i.4xlarge
=
インスタンスタイプを区別します。
このページでは、どのインスタンスファミリーを候補にするかまでを扱います。
具体的に、
large
xlarge
2xlarge
4xlargeのどのサイズを選ぶかというキャパシティ判断は、ここでは行いません。
16. ワークロード特性から段階的にファミリーまで絞る
| ワークロード特性 | 最初に評価するカテゴリ |
|---|---|
| CPU・メモリ・ネットワークをバランスよく使用 | 汎用 |
| 通常CPUは低いが短時間だけバースト | 汎用カテゴリのTシリーズ |
| 継続的なCPU計算が支配的 | コンピューティング最適化 |
| 大容量データをメモリ上で処理 | メモリ最適化 |
| 高性能なローカルI/Oが必要 | ストレージ最適化 |
| GPUや専用アクセラレータを利用 | 高速コンピューティング |
| 大規模HPC向けの専用特性が必要 | 高性能コンピューティング |
その後、
カテゴリ
↓
シリーズ
↓
世代 / オプション
↓
ソフトウェア互換性
↓
インスタンスファミリーへ絞ります。
サイズはファミリーとは別の判断です。
17. 測定結果からカテゴリとファミリー候補へつなげる
性能測定で、
CPU 95%
メモリ余裕
I/O余裕なら、
CPUが主要制約
↓
コンピューティング最適化カテゴリ
↓
Cシリーズ
↓
プロセッサや互換性を確認
↓
C8i / C8g / C9gなどから
インスタンスファミリーを評価します。
一方、
CPU 40%
メモリ不足
スワップ増加なら、
メモリが主要制約
↓
メモリ最適化カテゴリ
↓
R / X / Uシリーズ
↓
必要なプロセッサや互換性を確認
↓
インスタンスファミリーを評価します。
また、
CPU 30%
メモリ余裕
ローカルI/O待ち大なら、
ローカルI/Oが主要制約
↓
ストレージ最適化カテゴリ
↓
I / Dシリーズ
↓
ローカルストレージ特性を確認
↓
インスタンスファミリーを評価します。
つまり、
測定
↓
ワークロード特性
↓
カテゴリ
↓
シリーズ
↓
世代 / オプション / 互換性
↓
インスタンスファミリーという順序です。
18. よくある誤判断
| 誤判断 | 正しい判断 |
|---|---|
| 汎用=インスタンスファミリー | 汎用はカテゴリ。M8iなどがファミリー |
| C=インスタンスファミリー | Cはシリーズ。C8iなどがファミリー |
| C8i=インスタンスタイプ | C8iはファミリー。c8i.4xlargeなどがタイプ |
| コンピューティング最適化ならC8iでもC8gでも同じ | CPUアーキテクチャや互換性も確認する |
| とりあえず汎用を使えばよい | 明確なリソース偏りがあれば別カテゴリを評価する |
| CPUが高いなら必ずCシリーズ | アクセラレータ利用可否や負荷継続性も確認する |
| 高IOPSなら必ずストレージ最適化 | ローカルI/Oか永続ストレージ要件かを分ける |
| ファミリーが決まればサイズも決まる | サイズは別のキャパシティ判断 |
19. SAP-C02での判断フロー
EC2を使う要件
↓
ワークロード特性は?
↓
どのリソースが支配的?
↓
┌───────────────────────────┐
│ 明確な偏りなし │
│ → 汎用カテゴリ │
├───────────────────────────┤
│ 継続的なCPU処理 │
│ → コンピューティング最適化 │
├───────────────────────────┤
│ 大容量メモリ │
│ → メモリ最適化 │
├───────────────────────────┤
│ 高性能なローカルI/O │
│ → ストレージ最適化 │
├───────────────────────────┤
│ GPU / 専用アクセラレータ │
│ → 高速コンピューティング │
└───────────────────────────┘
↓
どのシリーズ?
↓
世代 / プロセッサ / オプションは?
↓
ソフトウェア互換性は?
↓
インスタンスファミリー
例:C8i / C8gなお、
インスタンスファミリー
+
インスタンスサイズ
↓
インスタンスタイプという名称上の関係はありますが、具体的なサイズ選択はここでは行いません。
まとめ
EC2の選択では、
アプリケーション名だけでファミリーを決めません。
まず、
CPU
メモリ
ローカルI/O
アクセラレータ
負荷の継続性というワークロード特性からカテゴリを選びます。
バランス型
→ 汎用
CPU中心
→ コンピューティング最適化
メモリ中心
→ メモリ最適化
ローカルI/O中心
→ ストレージ最適化
専用アクセラレータ
→ 高速コンピューティングその後、
カテゴリ
↓
シリーズ
↓
世代 / プロセッサ / オプション
↓
ソフトウェア互換性
↓
インスタンスファミリーへ絞ります。
例えば、
CPU集約型
↓
コンピューティング最適化
↓
Cシリーズ
↓
Intel x86_64が必須
↓
C8iです。
SAP-C02では、「このアプリケーションだからこの名前」ではなく、「このワークロード特性だからこのカテゴリ、このプロセッサ・互換性要件だからこのインスタンスファミリー」と段階的に判断することが重要です。
主要AWS公式資料
- AWS Certified Solutions Architect - Professional(SAP-C02)試験ガイド — タスク2.5 インスタンスファミリーとユースケース
- Amazon EC2 インスタンスタイプ — 現行EC2カテゴリとファミリー
- Amazon EC2 インスタンスタイプの命名規則 — シリーズ・世代・オプション・ファミリー・サイズ
- Amazon EC2 バーストパフォーマンスインスタンス — CPUベースライン・CPUクレジット
- Amazon EC2 インスタンスストアのデータ永続性 — 再起動・停止・終了時のデータ保持
- AWS Well-Architected パフォーマンス効率の柱 — ワークロード特性に合わせたコンピューティング選択
理解確認
このページの内容を8問で確認します。
理解確認8問へ →