NRIネットコム Blog

NRIネットコム社員が様々な視点で、日々の気づきやナレッジを発信するメディアです

EC2インスタンスタイプの整理

本記事は  【Advent Calendar 2023】  4日目の記事です。
🎄  3日目  ▶▶ 本記事 ▶▶  5日目  🎅

こんにちは、西内です。
突然ですが、皆さんはAmazon Elastic Compute Cloud(EC2)のインスタンスタイプが何を表しているかご存知でしょうか?(t2.microとかのアレ)
私は今年9月からTECH AND DESIGN STUDYのサービスアップデート担当していて、その中で新たにリリースされたインスタンスをご紹介しているのですが、種類が多すぎてよく頭がこんがらがります。

今回の記事ではインスタンスタイプについてご説明しつつ、最後に現行のインスタンスタイプの一覧を掲載したいと思います。

インスタンスタイプに関しては佐々木さんも過去に記事を書かれていますが、今回はインスタンスファミリー部分をより詳細に調査いたしました。
また、記事の最後にインスタンスタイプの一覧を記載し、随時更新するので、インスタンスタイプ整理の拠り所としていただけたら幸いです。

tech.nri-net.com

なお、今回の記事を執筆するにあたり、下記の公式ドキュメントを参考にしました。
より詳細内容はそちらをご参照いただければと思います。

docs.aws.amazon.com aws.amazon.com

インスタンスタイプの表記

インスタンスタイプの表記は、以下のような命名規則に従っています。

引用元:https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/instance-types.html 「インスタンスタイプの命名規則」より

画像で言うところの、先頭の"c"が「Instance family」、その隣の数字が「Instance generation」、その隣の"g"が「Processor family」、さらに隣の"n"が「Additionnal capacity」、ドットを挟んだ"xlarge"が「Instance size」となります。
Instance family、Instance generation、Instance sizeは全てのインスタンスタイプで表記されますが、Processor family、Additionnal capacityについては表記の無いインスタンスタイプも存在します。

Instance family

インスタンスタイプの先頭のアルファベットは「Instance family」になります。
Instance familyは大きく6つのカテゴリに分類されます。

  • 汎用
  • コンピューティング最適化
  • メモリ最適化
  • 高速コンピューティング
  • ストレージ最適化
  • HPC(ハイパフォーマンスコンピューティング)最適化

汎用

汎用は、コンピューティングやメモリ、ストレージ等において最もバランスの取れたカテゴリになります。
具体的なインスタンスタイプとしては、M7g、Mac、T3が挙げられます。
特に、T2シリーズはハンズオンで触れたことのある方も多数おられるかと思います。
ユースケースとしては、一般的なウェブサイトやウェブアプリケーションおよび開発環境等に使われます。

なお、インスタンスファミリーのアルファベットには以下のような意味が込められています。

M・・・汎用
Mac・・・macOS
T・・・バースト可能パフォーマンス

コンピューティング最適化

コンピューティング最適化は、名前の通りコンピューティング面で特化しており、高パフォーマンスのCPUを利用することができます。
具体的なインスタンスタイプとしては、C7g、C6iが挙げられます。
ユースケースとしては、バッチ処理や動画エンコーディング、CPUベースの機械学習推論等に使われます。

なお、インスタンスファミリーのアルファベットには以下のような意味が込められています。

C・・・コンピューティング最適化

メモリ最適化

メモリ最適化も、名前の通りメモリに特化したカテゴリになります。
具体的なインスタンスタイプとしては、R7g、X2gd、u-3tb1、z1dが挙げられます。
ユースケースとしては、オープンソースデータベースやリアルタイムビッグデータ分析に使われます。

なお、インスタンスファミリーのアルファベットには以下のような意味が込められています。

R・・・メモリ最適化
X・・・メモリ集約型
U・・・ハイメモリ
z・・・高パフォーマンス

高速コンピューティング

高速コンピューティングは、ハードウェアアクセラレーターを使用して浮動小数点演算やグラフィック処理等を効率的な処理を行うことができるインスタンスのカテゴリになります。
具体的なインスタンスタイプとしては、P5、Trn1、Inf2、G5g、F1、VT1が挙げられます。
ユースケースとしては、機械学習やビデオ・画像の生成等に使われます。

なお、インスタンスファミリーのアルファベットには以下のような意味が込められています。

P・・・GPU アクセラレーション
Trn・・・AWS Trainium
Inf・・・AWS 推論
G・・・グラフィックを多用
F・・・FPGA
VT・・・ビデオトランスコーディング

ストレージ最適化

ストレージ最適化は、EBSだけでなくローカルのストレージも利用することができるインスタンスのカテゴリになります。
具体的なインスタンスタイプとしては、I4g、Im4gn、Is4gen、D3、H1が挙げられます。
ユースケースとしては、NoSQLデータベースやMapReduce、Hadoop分散型コンピューティングに使われます。

なお、インスタンスファミリーのアルファベットには以下のような意味が込められています。

I・・・ストレージ最適化
D・・・高密度ストレージ

HPC(ハイパフォーマンスコンピューティング)最適化

HPC最適化は、HPCワークロードを実行する際に最も高いコストパフォーマンスを提供してくれるインスタンスのカテゴリになります。
具体的なインスタンスタイプとしては、Hpc7g、Hpc7aが挙げられます。
ユースケースとしては、大規模かつ複雑なシミュレーションや深層学習のワークロード等に使われます。

なお、インスタンスファミリーのアルファベットには以下のような意味が込められています。

Hpc・・・ハイパフォーマンスコンピューティング

Instance generation

Instance generationはインスタンスタイプの世代を表していて、バージョンが上がるごとに数字が1つ増えるようになっています。
例えば、T3インスタンスはT2インスタンスの1つ上位のバージョンということになります。

Processor family

Processor familyは、プロセッサとして何が使われているかを表しています。

引用元:https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/instance-types.html 「インスタンスタイプの命名規則」より

例えば、R6a、R6g、R6iの3種類のインスタンスが存在しますが、これらは使用されているプロセッサが異なることを意味しています。

Additionnal capacity

Additionnal capacityは、先述の内容以外に機能が付加されているものを表します。

引用元:https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/instance-types.html 「インスタンスタイプの命名規則」より

例えばR6iとR6inという2種類のインスタンスが存在しますが、R6inではより高いネットワーク帯域幅が活用できるようになっています。

Instance size

インスタンスサイズは各インスタンスのvCPUやメモリサイズの規模を表しています。
nano→micro→small→medium→large→xlarge→2xlarge→...の順でスペックが上がります。

※T2インスタンスの場合

インスタンスタイプ vCPU メモリ(GiB) ネットワークパフォーマンス
t2.nano 1 0.5
t2.micro 1 1 低~中
t2.small 1 2 低~中
t2.medium 2 4 低~中
t2.large 2 8 低~中
t2.xlarge 4 16
t2.2xlarge 8 32

なお、提供されるインスタンスサイズはインスタンスタイプによって異なります。
例えば、上述のT2は2xlargeまでが提供されますが、R6aでは48xlargeまで提供されています。
また、現行のインスタンスタイプ全てを確認したところ、現行の中ではハイメモリ(u-3tb1,u-6tb1,u-9tb1,u-12tb1,u-18tb1,u-24tb1)インスタンスの112xlargeが最大の模様です。
次点としてはHpc7aでは96xlargeが提供されています。

また、ベアメタルインスタンスが提供されている場合、「metal」というインスタンスサイズも存在します。
例)c6g.metal

※ベアメタルインスタンス・・・仮想上のプロセッサ・メモリではなく、基盤となるサーバのプロセッサ・メモリに直接アクセスが可能なインスタンス

補足:RDSのインスタンスタイプとの違いについて

Amazon Relational Database Service(RDS)でインスタンスを選択する際は、さらに頭に「db」が付いたインスタンスタイプを選択します。
例)db.m5.large

これらは、名称としてはEC2のm5.largeと似ているように思われて、実際、公式ドキュメントによるとvCPUやメモリ等のスペックは同じ数値になっています。

インスタンスタイプ vCPU メモリ(GiB) ネットワーク帯域幅(Gbps) EBS帯域幅(Mbps)
m5.large 2 8 最大10 最大4,750
db.m5.large 2 8 最大10 最大4,750

しかし、プロセッサ構成についての記述を見ると、使われているプロセッサが異なることが分かります。

m5.largeのプロセッサについて

新しいインテル Advanced Vector Extension (AVX-512) 命令セットを内蔵した最大 3.1 GHz のインテル Xeon スケーラブルプロセッサ (Skylake 8175M または Cascade Lake 8259CL)

引用元:https://aws.amazon.com/jp/ec2/instance-types/ 「一般用途向け」より

db.m5.largeのプロセッサについて

新しいインテルの Advanced Vector Extension (AXV-512) 命令セット内蔵の 2.5 GHz インテル Xeon® Platinum 8175 プロセッサ

引用元:https://aws.amazon.com/jp/rds/instance-types/ 「汎用」より

したがって、名称こそ似ていても構成は異なるものと考えられます。

なお、Amazon SageMakerやAmazon ElastiCacheも同様にml.m5.largeやcache.m5.largeといった、頭に「ml」「cache」の付いたインスタンスタイプを選択することが可能になっています。
こちらに関しては、使用されるプロセッサについて記載されたドキュメントが見当たりませんでしたが、EC2のページに誘導していることから、EC2と同一のインスタンスが使われているのではないかと思われます。

アマゾン SageMaker Studio ノートブックは Amazon Elastic Compute Cloud (Amazon EC2) インスタンスで実行されます。Studio ノートブックでは、次の Amazon EC2 インスタンスタイプの Amazon EC2 インスタンスタイプを使用できます。使用事例に適合するインスタンスタイプとそのパフォーマンス性能については、「Amazon Elastic Compute Cloud インスタンスタイプ」を参照してください。

引用元:https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/notebooks-available-instance-types.html 「使用可能な Studio インスタンスタイプ」より

各ノードタイプのパフォーマンスの詳細の詳細については、「Amazon EC2 インスタンスタイプ」を参照してください。

引用元:https://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html 「サポートされているノードの種類」より

インスタンスタイプ一覧

以上を踏まえて、現行のインスタンスタイプの一覧をまとめます。

※インスタンスサイズ部分は割愛します

カテゴリ インスタンスタイプ
汎用 M7g
汎用 M7i
汎用 M7i-flex
汎用 M7a
汎用 Mac
汎用 M6g
汎用 M6i
汎用 M6in
汎用 M6a
汎用 M5
汎用 M5n
汎用 M5zn
汎用 M5a
汎用 M4
汎用 T4g
汎用 T3
汎用 T3a
汎用 T2
コンピューティング最適化 C7g
コンピューティング最適化 C7gn
コンピューティング最適化 C7i
コンピューティング最適化 C7i-flex
コンピューティング最適化 C7a
コンピューティング最適化 C6g
コンピューティング最適化 C6gn
コンピューティング最適化 C6i
コンピューティング最適化 C6in
コンピューティング最適化 C6a
コンピューティング最適化 C5
コンピューティング最適化 C5n
コンピューティング最適化 C5a
コンピューティング最適化 C4
メモリ最適化 R8g
メモリ最適化 R7g
メモリ最適化 R7i
メモリ最適化 R7iz
メモリ最適化 R7a
メモリ最適化 R6g
メモリ最適化 R6i
メモリ最適化 R6in
メモリ最適化 R6a
メモリ最適化 R5
メモリ最適化 R5n
メモリ最適化 R5b
メモリ最適化 R5a
メモリ最適化 R4
メモリ最適化 U7i
メモリ最適化 X2gd
メモリ最適化 X2idn
メモリ最適化 X2iedn
メモリ最適化 X2iezn
メモリ最適化 X1
メモリ最適化 X1e
メモリ最適化 ハイメモリ(u-3tb1)
メモリ最適化 ハイメモリ(u-6tb1)
メモリ最適化 ハイメモリ(u-9tb1)
メモリ最適化 ハイメモリ(u-12tb1)
メモリ最適化 ハイメモリ(u-18tb1)
メモリ最適化 ハイメモリ(u-24tb1)
メモリ最適化 z1d
高速コンピューティング P5
高速コンピューティング P4
高速コンピューティング P3
高速コンピューティング P2
高速コンピューティング G6
高速コンピューティング G5g
高速コンピューティング G5
高速コンピューティング G4dn
高速コンピューティング G4ad
高速コンピューティング G3
高速コンピューティング Trn1
高速コンピューティング Inf2
高速コンピューティング Inf1
高速コンピューティング DL1
高速コンピューティング DL2q
高速コンピューティング F1
高速コンピューティング VT1
ストレージ最適化 I4g
ストレージ最適化 Im4gn
ストレージ最適化 Is4gen
ストレージ最適化 I4i
ストレージ最適化 I3
ストレージ最適化 I3en
ストレージ最適化 D2
ストレージ最適化 D3
ストレージ最適化 D3en
ストレージ最適化 H1
HPC最適化 Hpc7g
HPC最適化 Hpc7a
HPC最適化 Hpc6id
HPC最適化 Hpc6a

※2024年7月17日更新

さいごに

今回は自分の思考整理も兼ねて執筆させていただきました。
改めてインスタンスタイプの一覧を眺めると非常に多くの種類が存在しますね。
また、インスタンスタイプはほぼ毎月といって良いほど、新たなインスタンスタイプが発表されたり、既存インスタンスタイプの利用可能リージョンの追加が行われたりします。
今回整理した内容を元に、サービスアップデートでどのインスタンスタイプの新バージョンが発表されたのか・類似しているインスタンスタイプは何が違うのかといった点の理解が深まれば幸いです。

執筆者西内 渓太

2022年ネットコム入社のクラウドエンジニア。
AWSでのマルチアカウント統制が主な担当分野。


Xアカウント:@knishiuchi0

コーポレートサイト:https://www.nri-net.com/

ソリューションサイト:https://cloud.nri-net.com/