¿Cómo detectar la arquitectura AWS EC2 desde dentro?

¿Cómo detectar la arquitectura AWS EC2 desde dentro?

Suponiendo que tenemos una instancia en ejecución, ¿qué podemos ejecutar en esa instancia para detectar si está x86_64basada en gravitones o ARM?

Lo pensé curl -s http://169.254.169.254/latest/meta-data/...pero no encontré nada útil en este caso. Además, es posible detectar el uso del tipo de instancia (por ejemplo, t4g.*vs t3.*), pero me gustaría tener una forma más sencilla.

¿Hay alguna?

Respuesta1

Comprobación rápida y sencilla:uname -m

Intel/AMD:

t3a.large:~ $ uname -m
x86_64

Gravitón / BRAZO:

t4g.large:~ $ uname -m
aarch64

Mostrar más detalles:lscpu

Por ejemplo para CPU AMD:

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

También puede mostrar la salida en formato JSON para facilitar su consumo en scripts (aquí para 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"},
      ...
   ]
}

Espero que ayude :)

información relacionada