クラウドインテグレーション事業部のにゃんなか(中川)です!!
フォージビジョン エンジニアブログを参照頂き、ありがとうございます!
※本記事の更新履歴:2023/9/13 ご指摘頂いた誤記を修正。2021/1/3 re: Invent 2020の発表インスタンスを反映、補記
本記事の内容
● テーマ
AWSのAmazon EC2は年々アップデートされ、嬉しいことにインスタンスタイプも様々な種類が増えてきました。
本記事では、
EC2のインスタンスタイプの見方を整理
してみようと思います。
● 本記事の主な対象の方
・EC2インスタンスタイプの見方、選び方について大枠を理解したい方
・EC2インスタンスタイプの種類が増えてきたので今一度整理をしたい方
● 本記事について
- 本記事の内容
- インスタンスタイプについて
- ①インスタンスファミリー
- ②インスタンス世代
- ③追加機能
- ④インスタンスサイズ
- インスタンスタイプ別のコストを比較してみよう
- インスタンスタイプは結局どう選択したらよいか
- 参考:現行世代のインスタンスタイプについて
- さいごに
・インスタンスタイプ別の細かい仕様差異の比較などは記載しません。仕様詳細はAWSサイトをご参照ください。
https://aws.amazon.com/jp/ec2/instance-types/
・文中のEC2インスタンス料金記載は2020/9/1時点のオンデマンド / 東京リージョン / Linux時の料金となります。最新の料金はAWSサイトをご確認ください。 https://aws.amazon.com/jp/ec2/pricing/
インスタンスタイプについて
Amazon EC2 では、ユーザの多様なユースケースに対応するために、CPU / メモリ / ネットワークキャパシティー等について幅広くカバーされています。
そのキャパシティーは、各リソースを個別に自由に数値指定するタイプではなく、Amazon EC2では予め構成されたインスタンスタイプというセットから選択します。
● EC2インスタンスタイプの種類
EC2インスタンスタイプは非常に多くの種類があり、それぞれ以下図のような書式にて表記されています。
ではそのインスタンスタイプの見方について4つに分け整理していきます。
①インスタンスファミリー
②インスタンス世代
③追加機能
④インスタンスサイズ
①インスタンスファミリー
まずは図のとおり、先頭部分のインスタンスファミリーについてです。
インスタンスファミリーは特性に応じて大きく分類すると、現時点では5種類となります。
それぞれ以下のような特徴があります。
ファミリー | 特徴 | 例 |
汎用 | ・CPU、メモリ、ネットワークのリソースバランスが取れた基本的なタイプです。 ・tシリーズ(t2 / t3/ t4)はまず安価です。ただしCPUの利用方法が非常に独特で、CPU使用率が一定以上必要な際はCPUクレジット(※1)が必要となります。特定の時間帯以外は負荷が低いワークロードに向いています。 ※1. インスタンス稼働中はAWS側でCPUクレジット値が蓄積され、必要時クレジットを消化する仕組みとなります。つまり負荷の低い時間帯でCPUクレジットをため、特定の負荷の高い時間帯でそれを消化することになり、常時負荷が高いサーバには不向きです |
tシリーズ, m5, m6, a1, MAC 等 |
コンピューティング最適化 | ・汎用タイプと比較して高性能のCPUが搭載されています。ただし搭載メモリサイズは下がります。 ・CPU負荷が特に高いワークロードに最適です。 例:m5とc5を.largeで比較 ・m5: CPU 3.1Ghz、Mem 8GB ・c5: CPU 3.4Ghz、Mem 4GB |
c5, c6 等 |
メモリ最適化 | ・汎用タイプと比較して搭載メモリサイズが増えています。 ・メモリ容量を大きく必要とするワークロードに最適です。 例:m5とr5を.largeで比較 ・m5: CPU 3.1Ghz、Mem 8GB ・r5: CPU 3.1Ghz、Mem 16GB |
r5, r6, x1 等 |
ストレージ最適化 | ・EC2をホストするサーバに物理的に接続されているローカルストレージ(インスタンスストア)が標準利用可能なため、大量のIOトランザクションに対しても低レイテンシーで高速に利用可能です。 ・高いIO性能が必要なワークロードに最適です。 |
i3, d2, d3, h1 等 |
高速コンピューティング | ・ハードウェアアクセラレータ搭載モデルがカテゴライズされます。 例:G3ではGPUが搭載され動画エンコードなどグラフィック処理に対してCPUより高速に処理可能です。 例:F1の場合、FPGAが搭載されています。ゲノム研究等、CPUの既定の命令セットでは非効率となる複雑な依存関係をもつデータに対するワークロードに最適です。 |
p3/p4, Inf1, g3/g4, f1 等 |
上記の特徴を踏まえた、各インスタンスファミリーの主なユースケースは以下となります。
ファミリー | ユースケース |
汎用 | 他のインスタンスファミリーの特徴を要するような、尖らない要件ではない限り全般的に利用可能です。 ただし、 tシリーズについては前述の特徴から開発環境や一定の時間帯のみリソース負荷がスパイクするユースケースに適しています |
コンピューティング最適化 | バッチ処理、高性能/高負荷なWebサーバ、動画エンコード、ゲームサーバなど |
メモリ最適化 | 高性能/高負荷なデータベース、キャッシュサーバ、ビッグデータ分析など |
ストレージ最適化 | NoSQL データベース、インメモリデータベース、データウェアハウスなど |
高速コンピューティング | インスタンスタイプによりハードウェアアクセラレータは異なります。 ・P3:機械学習/深層学習、HPC、計算流体力学 等 ・G4:機械学習のトレーニングと推論、ビデオトランスコーディング 等 ・Inf1:レコメンデーションエンジン、画像/動画分析 等(機械学習推論に対しては最も低コスト) ・F1:ゲノム研究、財務分析、リアルタイムのビデオ処理 等 |
②インスタンス世代
続いて2つ目のインスタンス世代ですが、こちらはシンプルで、
・数字が大きい方が新しい世代です。
(例:m5とm4であれば、m5のほうが新世代)
なお、
新世代のほうが基本的に性能は高く、価格も安い傾向があります。
特別な理由がない限り、最新世代をご利用頂くことを推奨します。
・m5.large(ECU 10):$ 0.124/h
・m4.large (ECU 6.5) :$ 0.129/h
⇒ m4よりm5の方がCPU性能が高いにも関わらず、料金はm5が安い
③追加機能
続いて追加機能ですが、追加機能無しタイプに対し、CPUをIntel製から変更したりリソース強化、追加等を意味します。
追加機能 | 説明 | インスタンスタイプ例 |
a | CPUは AMD製を搭載 (Intel製と比較しコストメリット高) 例:m5とm5aの料金比較 (東京/Linux) ・m5.large: $ 0.124/h ・m5a.large: $ 0.112/h (約10%安い) |
t3a / m5a / c5a 等 |
g | CPUは AWS Graviton2 を搭載 (Intel製と比較しコストメリット高) |
t4g/ m6g / c6g / r6g 等 |
n | ネットワークを強化 | m5n / c5n / r5n 等 |
d | NVMe ベースのローカルSSDストレージ(高速なIOのインスタンスストア)を追加 |
z1d 等 |
e | メモリ搭載量を強化 (x1の場合) | x1e |
※R5bインスタンスは、R5インスタンスのEBS最適化タイプ。同じサイズのR5インスタンスと比較してEBSパフォーマンスを3倍向上
※M5znインスタンスは、第2世代IntelXeonスケーラブルプロセッサ(Cascade Lake)の高周波数CPU、ネットワーク強化タイプ
④インスタンスサイズ
最後尾のインスタンスサイズについてです。
vCPU / メモリ / ネットワーク帯域上限等のキャパシティは予め決められたセットから選択する必要があります。
(ただし、ディスクとなるEBSはユーザ側で容量指定可能)
そのセットをインスタンスサイズといい、
最小のnanoから →micro →small →medium →large →・・・の順でサイズが大きくなります。
ただし、すべてのインスタンスタイプに最小nanoから用意されているわけではありません。
例えばm5の場合、以下のようにlarge以降のインスタンスサイズから選択可能です。
m5のインスタンスサイズ | vCPU | ECU | メモリ (GB) | NW 帯域幅 (Gbps) | EBS 帯域幅 (Mbps) | 料金単価(/h) |
large | 2 | 10 | 8 | 最大10 | 最大4750 | $0.124 |
xlarge | 4 | 16 | 16 | 最大10 | 最大4750 | $0.248 |
2xlarge | 8 | 37 | 32 | 最大10 | 最大4750 | $0.496 |
4xlarge | 16 | 70 | 64 | 最大10 | 4750 | $0.992 |
8xlarge | 32 | 128 | 128 | 10 | 6800 | $1.984 |
12xlarge | 48 | 168 | 192 | 10 | 9500 | $2.976 |
16xlarge | 64 | 256 | 256 | 20 | 13600 | $3.968 |
24xlarge | 96 | 337 | 384 | 25 | 19000 | $5.952 |
(1)ECUとは
Amazon EC2 コンピュートユニットの略で数値が高いほどCPU性能が高いことを示します。EC2インスタンスタイプ間でCPU 能力値を比較できるように、AWSがEC2インスタンスの整数処理能力を測定した結果を、相対的な評価可能なように数値化した値となります。
(2)インスタンスサイズと料金の関係
例に示す通り、vCPU/メモリの増加割合と料金単価は比例することが多いです。
(3)EC2インスタンスの CPU オプション
インスタンスタイプによっては設定にて稼働vCPU 数を減らすことが可能です。ただし減らした分、料金が変わるわけではありません。 CPU 数でのライセンス課金となるソフトウェアに対し調整が必要となる場合等で利用します。 docs.aws.amazon.com
(4)Metal(ベアメタル)について
.metalのタイプは、EC2をユーザが独占可能な専用物理サーバにプロビジョニングし、非仮想環境として物理リソースへ直接アクセスできます。 仮想環境がサポートされていないワークロードや、アプリケーションライセンスの関係等で制約がある場合などで利用します。
インスタンスタイプ別のコストを比較してみよう
「インスタンスサイズ largeを料金が安い順にソート」してみました。
(largeの提供がないものは省く)
汎用タイプとして利用されることが多いm5とこうして比べると、
・例えば、a1 は半分近い月額で利用可能です。
・またm5よりc5のほうが月額10ドル弱安く利用可能です。
このように、目的に合ったタイプを選ぶことでコストは大きく抑えることができます。
family | 月額目安(※) | vCPU | CPUarch | CPUクロック(GHz) | メモリ(GB) | 最大NW帯域幅(Gbps) | NVMe SSD |
a1 | $46 | 2 | arm64 | 2.3 | 4 | 10 | - |
c6g | $62 | 2 | arm64 | 2.5 | 4 | 10 | - |
t4g | $62 | 2 | arm64 | 2.5 | 8 | 5 | - |
c5a | $69 | 2 | x86_64 | 3.3 | 4 | 10 | - |
t3a | $70 | 2 | x86_64 | 2.2 | 8 | 5 | - |
m6g | $71 | 2 | arm64 | 2.5 | 8 | 10 | - |
c5 | $77 | 2 | x86_64 | 3.4 | 4 | 10 | - |
t3 | $78 | 2 | x86_64 | 2.5 | 8 | 5 | - |
m5a | $81 | 2 | x86_64 | 2.5 | 8 | 10 | - |
r6g | $88 | 2 | arm64 | 2.5 | 16 | 10 | - |
c5d | $88 | 2 | x86_64 | 3.4 | 4 | 10 | 50GB |
m5 | $89 | 2 | x86_64 | 3.1 | 8 | 10 | - |
m5ad | $96 | 2 | x86_64 | 2.2 | 8 | 10 | 75GB |
c5n | $98 | 2 | x86_64 | 3.4 | 5.25 | 25 | - |
r5a | $99 | 2 | x86_64 | 2.5 | 16 | 10 | - |
m5d | $105 | 2 | x86_64 | 3.1 | 8 | 10 | 75GB |
r5 | $109 | 2 | x86_64 | 3.1 | 16 | 10 | - |
m5n | $110 | 2 | x86_64 | 3.1 | 8 | 25 | - |
r5ad | $114 | 2 | x86_64 | 2.2 | 16 | 10 | 75GB |
r5d | $125 | 2 | x86_64 | 3.1 | 16 | 10 | 75GB |
m5dn | $126 | 2 | x86_64 | 3.1 | 8 | 25 | 75GB |
r5n | $130 | 2 | x86_64 | 3.1 | 16 | 25 | - |
r5b | $130 | 2 | x86_64 | 3.1 | 16 | 10 | - |
i3 | $132 | 2 | x86_64 | 2.3 | 15.25 | 10 | 475GB |
r5dn | $146 | 2 | x86_64 | 3.1 | 16 | 25 | 75GB |
m5zn | $154 | 2 | x86_64 | 4.5 | 8 | 25 | |
z1d | $163 | 2 | x86_64 | 4 | 16 | 10 | 75GB |
i3en | $192 | 2 | x86_64 | 3.1 | 16 | 25 | 1250GB |
※料金目安はオンデマンド / 東京リージョン / Linux / 常時稼働×30日で算出しております。別途EBSやNW転送料金等の費用が掛かります。
本記事では触れませんが、EC2インスタンスの複数年の一括契約や、AWS内の空きEC2 キャパシティーを割安契約可能なスポットインスタンス利用は、コスト削減に非常に大きな効果があります。是非ご活用ください。
Savings Plans
https://aws.amazon.com/jp/savingsplans/
リザーブドインスタンス
https://aws.amazon.com/jp/ec2/pricing/reserved-instances/
スポットインスタンス
https://aws.amazon.com/jp/ec2/spot/
インスタンスタイプは結局どう選択したらよいか
ワークロードの特徴によって勿論異なりますが、
基本は、現在だと汎用タイプのmシリーズを基準にして、重視が必要な点、逆に考慮は必要ない点を増減し、選択する方法がわかりやすいです。
選択肢自体は多いですが、シンプルに考えると、結局はどれだけ過剰なリソースで構築せず、コストを抑えられるかという点が大きなポイントになるかと考えます。
インスタンスタイプは動作検証結果を踏まえ、最終的に変更することも可能です。
そのため、スモールスタートから初め、リソースが不足していたらインスタンスタイプを変更する等、クラウドのメリットを生かした進め方も宜しいかと思います。
参考:現行世代のインスタンスタイプについて
最後に、現行世代インスタンスタイプについてどんなものがあるかご参考に明記します。
あくまで記載は仕様の一部となりますので詳細はAWSサイトをご参照ください。
インスタンスタイプ - Amazon EC2 | AWS
分類 | ファミリー /世代 | CPU | メモ | 最小サイズ |
---|---|---|---|---|
汎用 | T3 | Intel Skylake E5 2686 v5 | クレジットタイプ/バースト可能 | .nano |
汎用 | T3a | AMD EPYC 7000 シリーズ | クレジットタイプ/バースト可能 | .nano |
汎用 | T4g | AWS Graviton2 | クレジットタイプ/バースト可能 | .nano |
汎用 | A1 | AWS Graviton | .medium | |
汎用 | M5a | AMD EPYC 7000 シリーズ | .large | |
汎用 | M5 | Intel Xeon Platinum 8175 | .large | |
汎用 | M5n | Intel Xeon Platinum 8259 | ・NW帯域幅 最大100 Gbps | .large |
汎用 | M5zn | Intel Xeon Platinum 8252 | ・高周波数CPU 最大4.5Ghz ・NW帯域幅 最大100 Gbps |
.large |
汎用 | M6g | AWS Graviton2 | .medium | |
汎用 | Mac | Intel Core i7-8700B | macOS | .metal |
コンピューティング最適化 | C5 | インスタンスサイズに応じて複数選択可 | .large | |
コンピューティング最適化 | C5a | AMD EPYC 7R32 | .large | |
コンピューティング最適化 | C5n | Intel Xeon Platinum 8124M | ・NW帯域幅 最大100 Gbps | .large |
コンピューティング最適化 | C6g | AWS Graviton2 | .medium | |
コンピューティング最適化 | C6gn | AWS Graviton2 | NW帯域幅 最大100 Gbps | .medium |
メモリ最適化 | R5 | Intel Xeon Platinum 8175 | 最大メモリ 768 GiB | .large |
メモリ最適化 | R5a | AMD EPYC 7000 シリーズ | 最大メモリ 768 GiB | .large |
メモリ最適化 | R5b | Intel Xeon Platinum 8259 | ・R5の3倍のEBSパフォーマンス ・最大メモリ 768 GiB |
.large |
メモリ最適化 | R5n | Intel Xeon Platinum 8259 | ・NW帯域幅 最大100 Gbps ・最大メモリ 768 GiB |
.large |
メモリ最適化 | X1e | Intel Xeon E7-8880 v3 | ・メモリは1 GB 換算だと料金が最も安価 ・最大 3,904 GiB の DRAM ベースのインスタンスメモリ |
.xlarge |
メモリ最適化 | X1 | Intel Xeon E7-8880 v3 | ・メモリは1 GB 換算だと料金が最も安価 ・最大 1,952 GiB の DRAM ベースのインスタンスメモリ |
.16xlarge |
メモリ最適化 | ハイメモリ | 搭載メモリにより異なる | ・最大24 TiB のインスタンスメモリ ・SAP HANA インメモリデータベースの本番デプロ可 |
.metal |
メモリ最適化 | Z1d | Intel Xeon Platinum 8151 | ・高周波数CPU 最大 4.0 GHz ・最大 1.8 TB のインスタンスストレージ ・384 GiB の RAM を備えたハイメモリインスタンス |
.large |
ストレージ最適化 | I3 | Intel Xeon E5-2686 v4 | ・ローカルストレージ(NVMe SSD) ・NW帯域幅 最大25 Gbps |
.large |
ストレージ最適化 | I3en | Intel Xeon Platinum 8175 | ・ローカルストレージ(NVMe SSD) ・NW帯域幅 最大100 Gbps |
.large |
ストレージ最適化 | D3 | Intel Xeon Platinum 8259 | ・ローカルストレージ(HDD) ・NW帯域幅 最大25 Gbps |
.xlarge |
ストレージ最適化 | D3en | Intel Xeon Platinum 8259 | ・ローカルストレージ(HDD) ・NW帯域幅 最大75 Gbps |
.xlarge |
高速コンピューティング | P3 | Intel Xeon E5-2686 v4 | ・機械学習/HPC ・最大 8 個の NVIDIA V100 Tensor Core GPU ・NW帯域幅 最大100 Gbps |
.2xlarge |
高速コンピューティング | P4d | Intel Xeon Platinum 8275L | ・機械学習/HPC・最大 8 個の 最新世代 NVIDIA A100 Tensor Core GPU ・NW帯域幅 最大400 Gbps |
.24xlarge |
高速コンピューティング | G4ad | AMD EPYC 7R32 | ・グラフィック向け ・GPUインスタンス ・AMD Radeon Pro V520 GPU ・ローカルストレージ(NVMe SSD) |
.4xlarge |
高速コンピューティング | G4dn | Intel Xeon Family | ・機械学習推論/グラフィック向け ・GPUインスタンス ・NVIDIA T4 Tensor Core GPU ・NWスループット最大 100 Gbps ・ローカルストレージ(NVMe SSD) |
.xlarge |
高速コンピューティング | Inf1 | Intel Xeon Platinum 8275CL | ・Machine Learning ASIC ・ハイパフォーマンス機械学習推論チップ AWS Inferentia ・AWS Neuron SDK対応 ・NW帯域幅 最大100 Gbps |
.xlarge |
高速コンピューティング | F1 | Intel Xeon E5-2686 v4 | ・FPGA インスタンス ・ローカルストレージ(NVMe SSD) |
.2xlarge |
さいごに
フォージビジョン エンジニアブログをご覧頂き、ありがとうございました。
今一度整理の記事はシリーズ化し、AWSの他サービスもどんどん整理していきたいと思います!
■今一度整理シリーズ
techblog.forgevision.com
■その他EC2関連等のおすすめ記事
techblog.forgevision.com