ちょっと話題の記事

「M7a」最新 AMD CPUを搭載した 汎用EC2インスタンスがリリースされました

第4世代 のAMD EPYC (Genoa) を搭載した 新しいEC2インスタンスファミリー「M7a」が北米リージョンなどで利用可能になりました。
2023.08.16

2023年8月15日、第4世代 のAMD EPYC (Genoa) を搭載した 新しいEC2インスタンスファミリー「M7a」が正式リリース、 米国東部 (バージニア北部)、米国東部 (オハイオ)、米国西部 (オレゴン)、および欧州 (アイルランド) リージョンで利用可能となりました。

前世代、第3世代の AMD EPYC (Milan)と比較し、50%の性能向上が期待できるとされる、m7aのインスタンス。その起動と、従来インスタンスとのスペック、価格比較を試みる機会がありましたので、紹介させて頂きます。

起動確認

AmazonLinux2023 のAMIを利用。 オレゴン(us-west-2)リージョンで、「m7a.large」 インスタンスの起動を試みました。

dmesg

m7a.large

sh-5.2$ sudo dmesg
[    0.000000] Linux version 6.1.41-63.114.amzn2023.x86_64 (mockbuild@ip-10-0-38-43) (gcc (GCC) 11.3.1 20221121 (Red Hat 11.3.1-4), GNU ld version 2.39-6.amzn2023.0.7) #1 SMP PREEMPT_DYNAMIC Tue Aug  1 20:47:25 UTC 2023
[    0.000000] Command line: BOOT_IMAGE=(hd0,gpt1)/boot/vmlinuz-6.1.41-63.114.amzn2023.x86_64 root=UUID=985fb096-4ab0-476d-a220-d46fd6bcaa23 ro console=tty0 console=ttyS0,115200n8 nvme_core.io_timeout=4294967295 rd.emergency=poweroff rd.shell=0 selinux=1 security=selinux quiet
[    0.000000] KASLR enabled
[    0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x020: 'AVX-512 opmask'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x040: 'AVX-512 Hi256'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x080: 'AVX-512 ZMM_Hi256'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x200: 'Protection Keys User registers'
[    0.000000] x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
[    0.000000] x86/fpu: xstate_offset[5]:  832, xstate_sizes[5]:   64
[    0.000000] x86/fpu: xstate_offset[6]:  896, xstate_sizes[6]:  512
[    0.000000] x86/fpu: xstate_offset[7]: 1408, xstate_sizes[7]: 1024
[    0.000000] x86/fpu: xstate_offset[9]: 2432, xstate_sizes[9]:    8
[    0.000000] x86/fpu: Enabled xstate features 0x2e7, context size is 2440 bytes, using 'compacted' format.
[    0.000000] signal: max sigframe size: 3376
[    0.000000] BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009ffff] usable
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000bbd0cfff] usable
[    0.000000] BIOS-e820: [mem 0x00000000bbd0d000-0x00000000bbf8cfff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000bbf8d000-0x00000000bbf9cfff] ACPI data
[    0.000000] BIOS-e820: [mem 0x00000000bbf9d000-0x00000000bc01cfff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000bc01d000-0x00000000bff7bfff] usable
[    0.000000] BIOS-e820: [mem 0x00000000bff7c000-0x00000000bfffffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000100000000-0x00000002333fffff] usable
[    0.000000] BIOS-e820: [mem 0x0000000233400000-0x000000023fffffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000240100000-0x0000000242afffff] reserved
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] e820: update [mem 0xb9efd018-0xb9f05e57] usable ==> usable
[    0.000000] e820: update [mem 0xb9efd018-0xb9f05e57] usable ==> usable
[    0.000000] extended physical RAM map:
[    0.000000] reserve setup_data: [mem 0x0000000000000000-0x000000000009ffff] usable
[    0.000000] reserve setup_data: [mem 0x0000000000100000-0x00000000b9efd017] usable
[    0.000000] reserve setup_data: [mem 0x00000000b9efd018-0x00000000b9f05e57] usable
[    0.000000] reserve setup_data: [mem 0x00000000b9f05e58-0x00000000bbd0cfff] usable
[    0.000000] reserve setup_data: [mem 0x00000000bbd0d000-0x00000000bbf8cfff] reserved
[    0.000000] reserve setup_data: [mem 0x00000000bbf8d000-0x00000000bbf9cfff] ACPI data
[    0.000000] reserve setup_data: [mem 0x00000000bbf9d000-0x00000000bc01cfff] ACPI NVS
[    0.000000] reserve setup_data: [mem 0x00000000bc01d000-0x00000000bff7bfff] usable
[    0.000000] reserve setup_data: [mem 0x00000000bff7c000-0x00000000bfffffff] reserved
[    0.000000] reserve setup_data: [mem 0x0000000100000000-0x00000002333fffff] usable
[    0.000000] reserve setup_data: [mem 0x0000000233400000-0x000000023fffffff] reserved
[    0.000000] reserve setup_data: [mem 0x0000000240100000-0x0000000242afffff] reserved
[    0.000000] efi: EFI v2.70 by EDK II
[    0.000000] efi: SMBIOS=0xbbea9000 ACPI=0xbbf9c000 ACPI 2.0=0xbbf9c014 MEMATTR=0xba669198
[    0.000000] SMBIOS 2.7 present.
[    0.000000] DMI: Amazon EC2 m7a.large/, BIOS 1.0 10/16/2017
[    0.000000] Hypervisor detected: KVM
[    0.000000] kvm-clock: Using msrs 4b564d01 and 4b564d00
[    0.000001] kvm-clock: using sched offset of 1959126455 cycles
[    0.000002] clocksource: kvm-clock: mask: 0xffffffffffffffff max_cycles: 0x1cd42e4dffb, max_idle_ns: 881590591483 ns
[    0.000003] tsc: Detected 2599.998 MHz processor

m6a.large

sh-5.2$ sudo dmesg
[    0.000000] Linux version 6.1.41-63.114.amzn2023.x86_64 (mockbuild@ip-10-0-38-43) (gcc (GCC) 11.3.1 20221121 (Red Hat 11.3.1-4), GNU ld version 2.39-6.amzn2023.0.7) #1 SMP PREEMPT_DYNAMIC Tue Aug  1 20:47:25 UTC 2023
[    0.000000] Command line: BOOT_IMAGE=(hd0,gpt1)/boot/vmlinuz-6.1.41-63.114.amzn2023.x86_64 root=UUID=985fb096-4ab0-476d-a220-d46fd6bcaa23 ro console=tty0 console=ttyS0,115200n8 nvme_core.io_timeout=4294967295 rd.emergency=poweroff rd.shell=0 selinux=1 security=selinux quiet
[    0.000000] KASLR enabled
[    0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
[    0.000000] x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
[    0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'compacted' format.
[    0.000000] signal: max sigframe size: 1776
[    0.000000] BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009ffff] usable
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000bbccdfff] usable
[    0.000000] BIOS-e820: [mem 0x00000000bbcce000-0x00000000bbf4dfff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000bbf4e000-0x00000000bbf5dfff] ACPI data
[    0.000000] BIOS-e820: [mem 0x00000000bbf5e000-0x00000000bbfddfff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000bbfde000-0x00000000bff7bfff] usable
[    0.000000] BIOS-e820: [mem 0x00000000bff7c000-0x00000000bfffffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000100000000-0x00000002333fffff] usable
[    0.000000] BIOS-e820: [mem 0x0000000233400000-0x000000023fffffff] reserved
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] e820: update [mem 0xb9ebe018-0xb9ec6e57] usable ==> usable
[    0.000000] e820: update [mem 0xb9ebe018-0xb9ec6e57] usable ==> usable
[    0.000000] extended physical RAM map:
[    0.000000] reserve setup_data: [mem 0x0000000000000000-0x000000000009ffff] usable
[    0.000000] reserve setup_data: [mem 0x0000000000100000-0x00000000b9ebe017] usable
[    0.000000] reserve setup_data: [mem 0x00000000b9ebe018-0x00000000b9ec6e57] usable
[    0.000000] reserve setup_data: [mem 0x00000000b9ec6e58-0x00000000bbccdfff] usable
[    0.000000] reserve setup_data: [mem 0x00000000bbcce000-0x00000000bbf4dfff] reserved
[    0.000000] reserve setup_data: [mem 0x00000000bbf4e000-0x00000000bbf5dfff] ACPI data
[    0.000000] reserve setup_data: [mem 0x00000000bbf5e000-0x00000000bbfddfff] ACPI NVS
[    0.000000] reserve setup_data: [mem 0x00000000bbfde000-0x00000000bff7bfff] usable
[    0.000000] reserve setup_data: [mem 0x00000000bff7c000-0x00000000bfffffff] reserved
[    0.000000] reserve setup_data: [mem 0x0000000100000000-0x00000002333fffff] usable
[    0.000000] reserve setup_data: [mem 0x0000000233400000-0x000000023fffffff] reserved
[    0.000000] efi: EFI v2.70 by EDK II
[    0.000000] efi: SMBIOS=0xbbe6a000 ACPI=0xbbf5d000 ACPI 2.0=0xbbf5d014 MEMATTR=0xba610118
[    0.000000] SMBIOS 2.7 present.
[    0.000000] DMI: Amazon EC2 m6a.large/, BIOS 1.0 10/16/2017
[    0.000000] Hypervisor detected: KVM
[    0.000000] kvm-clock: Using msrs 4b564d01 and 4b564d00
[    0.000001] kvm-clock: using sched offset of 1863181077 cycles
[    0.000003] clocksource: kvm-clock: mask: 0xffffffffffffffff max_cycles: 0x1cd42e4dffb, max_idle_ns: 881590591483 ns
[    0.000005] tsc: Detected 2649.988 MHz processor

lscpu

m7a.large、 vCPU数と同数の実コア (Core(s) per socket ) が認識している事、キャッシュの増量や命令セットの強化も確認できました。

m7a.large m6a.large
Model name: AMD EPYC 9R1 AMD EPYC 7R13 Processor
Thread(s) per core 1 2
Core(s) per socket 2 1
Caches(L1) 64 KiB 32 KiB
Caches(L2) 2 MiB 512 KiB
Caches(L3) 8 MiB 4 MiB

M7a.large

sh-5.2$ lscpu
Architecture:            x86_64
  CPU op-mode(s):        32-bit, 64-bit
  Address sizes:         48 bits physical, 48 bits virtual
  Byte Order:            Little Endian
CPU(s):                  2
  On-line CPU(s) list:   0,1
Vendor ID:               AuthenticAMD
  Model name:            AMD EPYC 9R14
    CPU family:          25
    Model:               17
    Thread(s) per core:  1
    Core(s) per socket:  2
    Socket(s):           1
    Stepping:            1
    BogoMIPS:            5199.99
    Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf tsc_k
                         nown_freq pni pclmulqdq monitor ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy cr8_legacy abm sse4a misalignsse 3dnowprefetch topoext perfctr_core invpcid_s
                         ingle ssbd perfmon_v2 ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 invpcid avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves avx512_bf16
                          clzero xsaveerptr rdpru wbnoinvd arat avx512vbmi pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid flush_l1d
Virtualization features:
  Hypervisor vendor:     KVM
  Virtualization type:   full
Caches (sum of all):
  L1d:                   64 KiB (2 instances)
  L1i:                   64 KiB (2 instances)
  L2:                    2 MiB (2 instances)
  L3:                    8 MiB (1 instance)
NUMA:
  NUMA node(s):          1
  NUMA node0 CPU(s):     0,1
Vulnerabilities:
  Gather data sampling:  Not affected
  Itlb multihit:         Not affected
  L1tf:                  Not affected
  Mds:                   Not affected
  Meltdown:              Not affected
  Mmio stale data:       Not affected
  Retbleed:              Not affected, RAS-Poisoning: Vulnerable
  Spec store bypass:     Mitigation; Speculative Store Bypass disabled via prctl
  Spectre v1:            Mitigation; usercopy/swapgs barriers and __user pointer sanitization
  Spectre v2:            Mitigation; Retpolines, IBPB conditional, IBRS_FW, STIBP disabled, RSB filling, PBRSB-eIBRS Not affected
  Srbds:                 Not affected
  Tsx async abort:       Not affected

M6a.large

sh-5.2$ lscpu
Architecture:            x86_64
  CPU op-mode(s):        32-bit, 64-bit
  Address sizes:         48 bits physical, 48 bits virtual
  Byte Order:            Little Endian
CPU(s):                  2
  On-line CPU(s) list:   0,1
Vendor ID:               AuthenticAMD
  Model name:            AMD EPYC 7R13 Processor
    CPU family:          25
    Model:               1
    Thread(s) per core:  2
    Core(s) per socket:  1
    Socket(s):           1
    Stepping:            1
    BogoMIPS:            5299.97
    Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf tsc_k
                         nown_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy cr8_legacy abm sse4a misalignsse 3dnowprefetch topoext invpcid_single ssbd ibrs ibpb
                         stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 clzero xsaveerptr rdpru wbnoinvd arat npt nrip_save vaes vpclmulqdq rdpid
Virtualization features:
  Hypervisor vendor:     KVM
  Virtualization type:   full
Caches (sum of all):
  L1d:                   32 KiB (1 instance)
  L1i:                   32 KiB (1 instance)
  L2:                    512 KiB (1 instance)
  L3:                    4 MiB (1 instance)
NUMA:
  NUMA node(s):          1
  NUMA node0 CPU(s):     0,1
Vulnerabilities:
  Gather data sampling:  Not affected
  Itlb multihit:         Not affected
  L1tf:                  Not affected
  Mds:                   Not affected
  Meltdown:              Not affected
  Mmio stale data:       Not affected
  Retbleed:              Not affected, RAS-Poisoning: Vulnerable
  Spec store bypass:     Mitigation; Speculative Store Bypass disabled via prctl
  Spectre v1:            Mitigation; usercopy/swapgs barriers and __user pointer sanitization
  Spectre v2:            Mitigation; Retpolines, IBPB conditional, IBRS_FW, STIBP conditional, RSB filling, PBRSB-eIBRS Not affected
  Srbds:                 Not affected
  Tsx async abort:       Not affected

スペック比較

北米(オレゴン)リージョンのオンデマンド料金(Unix・1時間)と、

M7a/M7i

  • m7aの オンデマンド料金(Unix)は、同等スペックの m7iと比較し 約15% 高額な料金設定でした。

オンデマンド料金比較

インスタンスタイプ m7a料金(USD) m7i料金(USD) vCPU メモリ (GiB) ネットワークパフォーマンス
m7a.medium - 0.05796 - 1 4 Up to 12.5 Gigabit
m7a.large m7i.large 0.11592 0.1008 2 8 Up to 12.5 Gigabit
m7a.xlarge m7i.xlarge 0.23184 0.2016 4 16 Up to 12.5 Gigabit
m7a.2xlarge m7i.2xlarge 0.46368 0.4032 8 32 Up to 12.5 Gigabit
m7a.4xlarge m7i.4xlarge 0.92736 0.8064 16 64 Up to 12.5 Gigabit
m7a.8xlarge m7i.8xlarge 1.85472 1.6128 32 128 12.5 Gigabit
m7a.12xlarge m7i.12xlarge 2.78208 2.4192 48 192 18.75 Gigabit
m7a.16xlarge m7i.16xlarge 3.70944 3.2256 64 256 25 Gigabit
m7a.24xlarge m7i.24xlarge 5.56416 4.8384 96 384 37.5 Gigabit
m7a.32xlarge - 7.41888 - 128 512 50 Gigabit
m7a.48xlarge m7i.48xlarge 11.12832 9.6768 192 768 50 Gigabit
m7a.metal-48xl - 11.12832 - 192 768 50 Gigabit

M7a/M6a

  • 前世代、2021年11月にリリースされた同等スペックの m6aとの比較では、 約34%高額な料金設定でした。
インスタンスタイプ m7a料金 (USD) m6a料金 (USD) vCPU メモリ (GiB) ネットワークパフォーマンス
m7a.medium - 0.05796 - 1 4 Up to 12.5 Gigabit
m7a.large m6a.large 0.11592 0.0864 2 8 Up to 12.5 Gigabit
m7a.xlarge m6a.xlarge 0.23184 0.1728 4 16 Up to 12.5 Gigabit
m7a.2xlarge m6a.2xlarge 0.46368 0.3456 8 32 Up to 12.5 Gigabit
m7a.4xlarge m6a.4xlarge 0.92736 0.6912 16 64 Up to 12.5 Gigabit
m7a.8xlarge m6a.8xlarge 1.85472 1.3824 32 128 12.5 Gigabit
m7a.12xlarge m6a.12xlarge 2.78208 2.0736 48 192 18.75 Gigabit
m7a.16xlarge m6a.16xlarge 3.70944 2.7648 64 256 25 Gigabit
m7a.24xlarge m6a.24xlarge 5.56416 4.1472 96 384 37.5 Gigabit
m7a.32xlarge m6a.32xlarge 7.41888 5.5296 128 512 50 Gigabit
m7a.48xlarge m6a.48xlarge 11.12832 8.2944 192 768 50 Gigabit
m7a.metal-48xl m6a.metal 11.12832 8.2944 192 768 50 Gigabit

スポットインスタンス料金比較

  • 2023年8月時点、m7a の スポットインスタンス料金は、高い割引率で利用できる状態でした。
インスタンスタイプ 時間あたりの平均コスト 平均節約額
m7a.xlarge $0.1313 43.37%
m7i.xlarge $0.1373 31.88%
m6a.xlarge $0.1309 24.41%

※2023年8月16日時点、us-west-2c Unix プラットフォームの価格

まとめ

最新 AMD EPYC プロセッサーを搭載する 「M7a」、オンデマンド料金は従来の「m6a」、「m7i」と比較すると、高額な設定となっていますが、 CPUの実コア数は2倍、ハイパースレッドが有効に機能しないワークロードでは、費用対効果に優れた利用が期待できます。

また、安定したシングルスレッド性能でスモールスタートが望まれるワークロードでは、「m7a.meduim」は有効な選択となる可能性もありそうです。

2023年8月時点、「M7a」を利用できるリージョンは限定されていますが、CPU性能に依存するワークロードで 海外リージョンでの性能評価が可能な場合には、ぜひその性能をお確かめ頂ければと思います。