AWS / SAP-C02

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問へ →