ForgeVision Engineer Blog

フォージビジョン エンジニア ブログ

EC2 インスタンスタイプの種類や選び方!AWS初心者向けに今一度整理

クラウドインテグレーション事業部のにゃんなか(中川)です!!

フォージビジョン エンジニアブログを参照頂き、ありがとうございます!

 

本記事の内容

● テーマ

AWSのAmazon EC2は年々アップデートされ、嬉しいことにインスタンスタイプも様々な種類が増えてきました。

本記事では、
EC2のインスタンスタイプの見方を整理
してみようと思います。

● 本記事の主な対象の方

・AWS初心者の方
・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インスタンスタイプは非常に多くの種類があり、それぞれ以下図のような書式にて表記されています。

AWS EC2 インスタンスタイプの見方
ではそのインスタンスタイプの見方について4つに分け整理していきます。

 ①インスタンスファミリー

 ②インスタンス世代

 ③追加機能

 ④インスタンスサイズ



①インスタンスファミリー

まずは図のとおり、先頭部分のインスタンスファミリーについてです。

f:id:fv-nakagawa:20200905171533p:plain

インスタンスファミリーは特性に応じて大きく分類すると、現時点では5種類となります。

AWS EC2 インスタンスファミリー 一覧


それぞれ以下のような特徴があります。

ファミリー 特徴
汎用 ・CPU、メモリ、ネットワークのリソースバランスが取れた基本的なタイプです。

・tシリーズ(t2 / t3)はまず安価です。ただしCPUの利用方法が非常に独特で、CPU使用率が一定以上必要な際はCPUクレジット(※1)が必要となります。特定の時間帯以外は負荷が低いワークロードに向いています。

※1. インスタンス稼働中はAWS側でCPUクレジット値が蓄積され、必要時クレジットを消化する仕組みとなります。つまり負荷の低い時間帯でCPUクレジットをため、特定の負荷の高い時間帯でそれを消化することになり、常時負荷が高いサーバには不向きです
t2, t3, m5, m6, a1 等
コンピューティング最適化 ・汎用タイプと比較して高性能の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, h1 等
高速コンピューティング ・ハードウェアアクセラレータ搭載モデルがカテゴライズされます。

例:G3ではGPUが搭載され動画エンコードなどグラフィック処理に対してCPUより高速に処理可能です。

例:F1の場合、FPGAが搭載されています。ゲノム研究等、CPUの既定の命令セットでは非効率となる複雑な依存関係をもつデータに対するワークロードに最適です。
p3, Inf1, g4, f1 等


上記の特徴を踏まえた、各インスタンスファミリーの主なユースケースは以下となります。

ファミリー ユースケース
汎用 他のインスタンスファミリーの特徴を要するような、尖らない要件ではない限り全般的に利用可能です。
ただし、 t2 / t3については前述の特徴から開発環境や一定の時間帯のみリソース負荷がスパイクするユースケースに適しています
コンピューティング最適化 バッチ処理、高性能/高負荷なWebサーバ、動画エンコード、ゲームサーバなど
メモリ最適化 高性能/高負荷なデータベース、キャッシュサーバ、ビッグデータ分析など
ストレージ最適化 NoSQL データベース、インメモリデータベース、データウェアハウスなど
高速コンピューティング インスタンスタイプによりハードウェアアクセラレータは異なります。
・P3:機械学習/深層学習、HPC、計算流体力学 等
・G4:機械学習のトレーニングと推論、ビデオトランスコーディング 等
・Inf1:レコメンデーションエンジン、画像/動画分析 等(機械学習推論に対しては最も低コスト)
・F1:ゲノム研究、財務分析、リアルタイムのビデオ処理 等




②インスタンス世代

f:id:fv-nakagawa:20200905171639p:plain

続いて2つ目のインスタンス世代ですが、こちらはシンプルで、

・数字が大きい方が新しい世代です。
 (例:m5とm4であれば、m5のほうが新世代)

なお、
新世代のほうが基本的に性能は高く、価格も安い傾向があります。
特別な理由がない限り、最新世代をご利用頂くことを推奨します。


例:m4とm5の比較 (東京/Linux)
 ・m5.large(ECU 10):$ 0.124/h
 ・m4.large (ECU 6.5) :$ 0.129/h
⇒ m4よりm5の方がCPU性能が高いにも関わらず、料金はm5が安い



③追加機能

f:id:fv-nakagawa:20200905171318p:plain

続いて追加機能ですが、追加機能無しタイプに対し、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製と比較しコストメリット高)
m6g / c6g / r6g 等
n ネットワークを強化 m5n / c5n / r5n 等
d NVMe ベースのローカルSSDストレージ(高速なIOのインスタンスストア)を追加
z1d 等
e メモリ搭載量を強化 (x1の場合) x1e



④インスタンスサイズ

最後尾のインスタンスサイズについてです。
f:id:fv-nakagawa:20200905170727p:plain

vCPU / メモリ / ネットワーク帯域上限等のキャパシティは予め決められたセットから選択する必要があります。
(ただし、ディスクとなるEBSはユーザ側で容量指定可能)

そのセットをインスタンスサイズといい、
最小のnanoから →micro medium small 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




インスタンスタイプ別のコストを比較してみよう

f:id:fv-nakagawa:20200905225127p:plain

「インスタンスサイズ 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 -
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 -
i3 $132 2 x86_64 2.3 15.25 10 475GB
r5dn $146 2 x86_64 3.1 16 25 75GB
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/



インスタンスタイプは結局どう選択したらよいか

f:id:fv-nakagawa:20200905224923p:plain
ワークロードの特徴によって勿論異なりますが、

基本は、現在だと汎用タイプのmシリーズを基準にして、重視が必要な点、逆に考慮は必要ない点を増減し、選択する方法がわかりやすいです。


選択肢自体は多いですが、シンプルに考えると、結局はどれだけ過剰なリソースで構築せず、コストを抑えられるかという点が大きなポイントになるかと考えます。

インスタンスタイプは動作検証結果を踏まえ、最終的に変更することも可能です。

そのため、スモールスタートから初め、リソースが不足していたらインスタンスタイプを変更する等、クラウドのメリットを生かした進め方も宜しいかと思います。



参考:現行世代のインスタンスタイプについて

最後に、現行世代インスタンスタイプについてどんなものがあるかご参考に明記します。

あくまで記載は仕様の一部となりますので詳細はAWSサイトをご参照ください。
インスタンスタイプ - Amazon EC2 | AWS

分類 ファミリー /世代 CPU メモ 最小サイズ
汎用 T3 Intel Skylake E5 2686 v5 クレジットタイプ/バースト可能 .nano
汎用 T3a AMD EPYC 7000 シリーズ クレジットタイプ/バースト可能 .nano
汎用 A1 AWS Graviton .medium
汎用 M5a AMD EPYC 7000 シリーズ .large
汎用 M5 Intel Xeon Platinum 8175 .large
汎用 M5n Intel Xeon Platinum 8259 ・ネットワーク帯域幅 25~100 Gbps .large
汎用 M6g AWS Graviton2 .medium
コンピューティング最適化 C6g AWS Graviton2 .medium
コンピューティング最適化 C5 インスタンスサイズに応じて複数選択可 .large
コンピューティング最適化 C5a AMD EPYC 7R32 .large
コンピューティング最適化 C5n Intel Xeon Platinum 8124M ・ネットワーク帯域幅が最大 100 Gbps拡張 .large
コンピューティング最適化 R6g AWS Graviton2 .medium
メモリ最適化 R5 Intel Xeon Platinum 8175 ・最大メモリが 768 GiB .large
メモリ最適化 R5a AMD EPYC 7000 シリーズ ・最大メモリが 768 GiB .large
メモリ最適化 R5n Intel Xeon Platinum 8259 ・ネットワーク帯域幅 25~100 Gbps .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 ・ENA:最大 25 Gbps のネットワーク帯域幅 .large
ストレージ最適化 I3en Intel Xeon Platinum 8175 ・最大 60 TB の NVMe SSD インスタンスストレージ
・ENA:最大 100 Gbps のネットワーク帯域幅
.large
高速コンピューティング P3 Intel Xeon E5-2686 v4 ・汎用 GPU インスタンス
・最大 8 個の NVIDIA V100 Tensor Core GPU
・最大 100 Gbps の集約ネットワーク帯域幅
.2xlarge
高速コンピューティング G4 Intel Xeon Family ・機械学習推論とグラフィックス向けに費用対効果が高いGPUインスタンス
・NVIDIA T4 Tensor Core GPUs
・ネットワークスループット最大 100 Gbps
・ローカル NVMe ストレージ最大 1.8 TB
.xlarge
高速コンピューティング Inf1 Intel Xeon Platinum 8275CL ・Machine Learning ASIC
・ハイパフォーマンス機械学習推論チップ AWS Inferentia
・AWS Neuron SDK対応
・最大 100 Gbps のネットワーキング"
.xlarge
高速コンピューティング F1 Intel Xeon E5-2686 v4 ・FPGA インスタンス
・NVMe SSD ストレージ
.2xlarge



さいごに

フォージビジョン エンジニアブログをご覧頂き、ありがとうございました。

今一度整理の記事はシリーズ化し、AWSの他サービスもどんどん整理していきたいと思います!

■今一度整理シリーズ techblog.forgevision.com

techblog.forgevision.com



■その他EC2関連等のおすすめ記事 techblog.forgevision.com

techblog.forgevision.com

techblog.forgevision.com