내부에서 AWS EC2 아키텍처를 감지하는 방법은 무엇입니까?

내부에서 AWS EC2 아키텍처를 감지하는 방법은 무엇입니까?

x86_64인스턴스가 실행 중이라고 가정할 때 해당 인스턴스에서 중력 기반/ARM 인지 여부를 감지하기 위해 무엇을 실행할 수 있습니까 ?

나는 생각해 보았지만 curl -s http://169.254.169.254/latest/meta-data/...이 경우에는 유용한 것이 아무것도 발견하지 못했습니다. 또한 인스턴스 유형(예: t4g.*vs ) 을 사용하여 감지하는 것도 가능 t3.*하지만 더 간단한 방법을 사용하고 싶습니다.

있어요?

답변1

빠르고 쉬운 확인:uname -m

인텔/AMD:

t3a.large:~ $ uname -m
x86_64

중력자/ARM:

t4g.large:~ $ uname -m
aarch64

자세한 내용 표시:lscpu

예를 들어 AMD CPU의 경우:

t3a.large:~ $ lscpu
Architecture:                    x86_64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
Address sizes:                   48 bits physical, 48 bits virtual
CPU(s):                          2
On-line CPU(s) list:             0,1
Thread(s) per core:              2
Core(s) per socket:              1
Socket(s):                       1
NUMA node(s):                    1
Vendor ID:                       AuthenticAMD
CPU family:                      23
Model name:                      AMD EPYC 7571
CPU MHz:                         2199.880
BogoMIPS:                        4399.76
Hypervisor vendor:               KVM
Virtualization type:             full
L1d cache:                       32 KiB
L1i cache:                       64 KiB
L2 cache:                        512 KiB
L3 cache:                        8 MiB
NUMA node0 CPU(s):               0,1
...

스크립트에서 더 쉽게 사용할 수 있도록 출력을 JSON 형식으로 표시할 수도 있습니다(여기서는 Graviton의 경우).

t4g.large:~ $ lscpu -J
{
   "lscpu": [
      {"field":"Architecture:", "data":"aarch64"},
      {"field":"CPU op-mode(s):", "data":"32-bit, 64-bit"},
      {"field":"Byte Order:", "data":"Little Endian"},
      {"field":"CPU(s):", "data":"2"},
      {"field":"On-line CPU(s) list:", "data":"0,1"},
      {"field":"Thread(s) per core:", "data":"1"},
      {"field":"Core(s) per socket:", "data":"2"},
      {"field":"Vendor ID:", "data":"ARM"},
      {"field":"Model name:", "data":"Neoverse-N1"},
      ...
   ]
}

도움이 되었기를 바랍니다 :)

관련 정보