本記事は
【Advent Calendar 2023】
4日目の記事です。
🎄
3日目
▶▶ 本記事 ▶▶
5日目
🎅
こんにちは、西内です。
突然ですが、皆さんはAmazon Elastic Compute Cloud(EC2)のインスタンスタイプが何を表しているかご存知でしょうか?(t2.microとかのアレ)
私は今年9月からTECH AND DESIGN STUDYのサービスアップデート担当していて、その中で新たにリリースされたインスタンスをご紹介しているのですが、種類が多すぎてよく頭がこんがらがります。
今回の記事ではインスタンスタイプについてご説明しつつ、最後に現行のインスタンスタイプの一覧を掲載したいと思います。
インスタンスタイプに関しては佐々木さんも過去に記事を書かれていますが、今回はインスタンスファミリー部分をより詳細に調査いたしました。
また、記事の最後にインスタンスタイプの一覧を記載し、随時更新するので、インスタンスタイプ整理の拠り所としていただけたら幸いです。
なお、今回の記事を執筆するにあたり、下記の公式ドキュメントを参考にしました。
より詳細内容はそちらをご参照いただければと思います。
docs.aws.amazon.com aws.amazon.com
- インスタンスタイプの表記
- Instance family
- Instance generation
- Processor family
- Additionnal capacity
- Instance size
- 補足:RDSのインスタンスタイプとの違いについて
- インスタンスタイプ一覧
- さいごに
インスタンスタイプの表記
インスタンスタイプの表記は、以下のような命名規則に従っています。
画像で言うところの、先頭の"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は、プロセッサとして何が使われているかを表しています。
例えば、R6a、R6g、R6iの3種類のインスタンスが存在しますが、これらは使用されているプロセッサが異なることを意味しています。
Additionnal capacity
Additionnal capacityは、先述の内容以外に機能が付加されているものを表します。
例えば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日更新
さいごに
今回は自分の思考整理も兼ねて執筆させていただきました。
改めてインスタンスタイプの一覧を眺めると非常に多くの種類が存在しますね。
また、インスタンスタイプはほぼ毎月といって良いほど、新たなインスタンスタイプが発表されたり、既存インスタンスタイプの利用可能リージョンの追加が行われたりします。
今回整理した内容を元に、サービスアップデートでどのインスタンスタイプの新バージョンが発表されたのか・類似しているインスタンスタイプは何が違うのかといった点の理解が深まれば幸いです。