本日も乙

ただの自己満足な備忘録。

EC2インスタンスタイプについてまとめてみた(2020年6月版)

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
  • 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

インスタンス世代

新しい世代になるほど数字が大きくなり、ハイパフォーマンスかつ低コストになります。

例)東京リージョン、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