EC2を普段から使っている人にとっては今更かなと思いましたが、ここ1〜2年で多くのインスタンスタイプが発表されていて、その辺りのアップデートが追いついていなかったので改めて調べてみました。
目次
インスタンスファミリー
インスタンスファミリーは汎用、コンピューティング最適化、メモリ最適化、ストレージ最適化、高速コンピューティングの5種類に分けられます。
- 汎用
- A1、T3、M5、M6g
- コンピューティング最適化
- C5、C6g
- メモリ最適化
- R5、R6g、X1、U1、Z1(z1d)
- ストレージ最適化
- I3、H1、D2
- 高速コンピューティング
- G3、G4dn、P3、F1
EC2 インスタンスタイプの命名規則
c5d.large
を例にします。
- c・・・インスタンスタイプ
- 5・・・世代
- d・・・追加能力
- d(disk)・・・ NVMe ベースの SSD がインスタンスストアとしてアタッチ
- 例)c5d.large, r5d.large
- e(extended memory)・・・ 拡張メモリ
- 例)x1e.xlarge
- n(network)・・・ 最大 100Gbps ネットワーク帯域幅と最大 14Gbps の EBS 専用帯域幅
- 例)r5n.large
- a(amd)・・・ AMD EPYC プロセッサを搭載
- 例)t3a.large
- s(small?)・・・ 少量の CPU とメモリ
- 例)g3s.xlarge
- g(graviton2)・・・ Arm ベースの Graviton2 プロセッサを搭載
- 例)m6g.large、c6g.large、r6g.large
- 複数つくこともある
- 例)r5dn.large、g4dn.xlarge
- d(disk)・・・ NVMe ベースの SSD がインスタンスストアとしてアタッチ
- large・・・サイズ
- 最小がnano(t3.nano)、最大が32xlarge(x1.32xlarge)
- 2、4、8 と2の倍数であることが多いが、9xlarge もある
- 例)c5.9xlarge
- ベアメタルインスタンスは上の規則に従っていない
- U1・・・ u-6tb1.metal, u-9tb1.metal, u-12tb1.metal, u-18tb1.metal, u-24tb1.metal
- 6、9とかの数字はメモリ搭載量(TB)を表す
- サフィックスに「.metal」がつく
- 例)a1.metal, m5.metal, m5d.metal, c5.metal, c5d.metal, c5n.metal, r5.metal, r5d.metal, z1d.metal, i3.metal, i3en.metal
- U1・・・ u-6tb1.metal, u-9tb1.metal, u-12tb1.metal, u-18tb1.metal, u-24tb1.metal
インスタンス世代
新しい世代になるほど数字が大きくなり、ハイパフォーマンスかつ低コストになります。
例)東京リージョン、Linux
インスタンスタイプ | vCPU | ECU | Memory | 料金 |
---|---|---|---|---|
c3.large | 2 | 7 | 3.5GiB | $0.128/h |
c4.large | 2 | 8 | 3.75GiB | $0.126/h |
c5.large | 2 | 10 | 4GiB | $0.107/h |
c6g.large | 2 | - | 4GiB | $0.0856/h |
C3、C4、C5、C6と世代が新しくなるにつれて、同じインスタンスサイズでも ECU やメモリが多くなり、料金が下がっています。特に C5 以降は Nitoro システムを採用しているため、パフォーマンスが大きく改善されています。
Nitro システム
Nitro System はEC2インスタンスの基盤となるプラットフォームです。EC2インスタンスのホストサーバ(物理サーバ)で実行されていたネットワーク、ストレージ、セキュリティのソフトウェアを AWS が独自に開発したハードウェアにオフロードする(処理を任せる)ことでパフォーマンス向上やセキュリティ強化、コスト削減が実現しました。
対象となるインスタンスタイプは C5、C5d、C6g、M5、M5d、M6g、P3dn、A1、R5、R5a、R6g などがあります。最新情報はドキュメントから確認できます。
Instance types - Amazon Elastic Compute Cloud
ECU
- AWS 独自の CPU 評価指標
- EC2 インスタンスの整数処理能力を相対的に測定
- 異なるインスタンスタイプの CPU 性能の比較を容易にするため
- x86 アーキテクチャベースのインスタンスのみ
- Arm アーキテクチャベースのインスタンスタイプに ECU の表記がない
例)c5.xlarge、m5.xlarge、r5.xlarge(いずれも4 vCPU)
インスタンスタイプ | ECU |
---|---|
c5.xlarge | 20 |
m5.xlarge | 16 |
r5.xlarge | 19 |
プロセッサアーキテクチャ
EC2 を起動するための AMI はプロセッサのアーキテクチャに固有であるため、インスタンスタイプに合わせたプロセッサアーキテクチャの AMI を選択する必要があります。Arm ベース AMI と 32 ビット AMI で互換性に注意が必要です。
Arm
Arm アーキテクチャベースのインスタンスタイプ(A1、C6g、M6g、R6g)では arm64
の AMI である必要があります。例えば、Amazon Linux 2の場合は amzn2-ami-hvm-2.0.20200520.1-arm64-gp2 (ami-01e7d6c28d99b213c)
となります。
32ビット
32ビットをサポートするインスタンスタイプは以下のように限定されます。
- t2.nano、t2.micro、t2.small、t2.medium、c3.large、t1.micro、m1.small、m1.medium、c1.medium