What is the AWS Nitro system, and what does running on Nitro-based EC2 instance types change for the operating system and AMI you boot?
answer
- offload to dedicated cards
- thin KVM hypervisor left over
- hardware root of trust
- volumes appear as NVMe
- never mount by device path
basics
~20 sNitro is the hardware and hypervisor platform behind current EC2 instances: dedicated cards take over networking, storage and management so nearly all host resources go to the guest. Practically, volumes appear as NVMe devices and the AMI needs ENA and NVMe drivers.
solid answer
~50 sNitro is the platform AWS built to replace the classic Xen-based EC2 host. Purpose-built **Nitro cards** offload the work a hypervisor used to do — VPC networking, remote block storage, local NVMe, and host management — onto dedicated hardware, leaving a very thin KVM-based hypervisor and handing almost all CPU and memory to the guest. A **Nitro security chip** anchors the boot integrity of the host. Because it removes the software layer between guest and hardware, it is also what makes bare-metal (`.metal`) instance types and Nitro Enclaves possible. What you notice as an operator: block devices are presented as **NVMe** devices, so they appear as `/dev/nvme1n1` rather than the `/dev/sdf` you asked for, and attachment order is not guaranteed — mount by UUID or label, never by device path. The AMI must carry the ENA network driver and NVMe drivers, which every current Amazon Linux, Ubuntu and Windows image does; ancient custom images are where this bites.
code
bash · 6 lineslsblk -o NAME,SIZE,FSTYPE,UUID,MOUNTPOINT
sudo blkid /dev/nvme1n1
sudo /sbin/ebsnvme-id /dev/nvme1n1
# In /etc/fstab, key the mount to the filesystem, not the device node:
# UUID=1a2b3c4d-5e6f-7890-abcd-ef1234567890 /var/lib/data xfs defaults,nofail 0 2go deeper
Know that Nitro is the hardware platform current EC2 instances run on, and that block devices show up as NVMe devices rather than the names you requested.
Explain what is offloaded to Nitro cards and why that gives the guest nearly the whole host, plus the two practical consequences: NVMe device naming and the ENA/NVMe driver requirement in the AMI.
Diagnose the failures it causes — an old AMI failing status checks on a modern type, an fstab keyed to a device path breaking after a reboot — and specify images and mount configuration so neither can happen.
Frame it as an isolation and trust argument: hardware-rooted tenant separation and a minimal hypervisor surface are what let regulated workloads run on shared infrastructure, and Nitro Enclaves extend that to sensitive data inside your own instance.
## What Nitro replaced EC2 originally ran on a modified Xen hypervisor. That hypervisor did a great deal of work on the host CPU: emulating network devices, translating block-storage requests, handling management operations. Every cycle it spent was a cycle you paid for and did not get, and the software surface between tenants was large. The Nitro system moves that work off the main processor and onto **purpose-built hardware cards**, with three broad pieces: 1. **Nitro cards** — separate hardware handling VPC networking, remote block storage, local NVMe storage, and instance monitoring and management. From the guest's point of view these appear as ordinary PCI devices. 2. **The Nitro security chip** — integrated into the motherboard, it takes over hardware access control and establishes a hardware root of trust for the host's firmware, so host firmware cannot be modified by anyone, including AWS operators, without detection. 3. **The Nitro hypervisor** — a very thin KVM-based component whose only remaining job is memory and CPU allocation. Since the devices are real hardware rather than emulations, it has almost nothing to do at steady state. The result is that a Nitro instance delivers essentially all of the host's compute and memory to guests, with performance close to bare metal. ## What it enables Several EC2 features exist only because of this design: - **Bare-metal instance types** (`.metal`). If the network and storage devices are already real hardware, you can hand a customer the whole machine with no hypervisor at all and they still get VPC networking and remote block storage. That is what makes nested virtualisation and per-socket-licensed software possible on EC2. - **Nitro Enclaves** — isolated compute environments carved out of an instance with no persistent storage, no interactive access and no external networking, for processing sensitive data. - **Higher device performance** generally: enhanced networking through the Elastic Network Adapter (ENA) and storage presented over NVMe. As of 2025, effectively all current-generation instance types are Nitro-based, so "is it Nitro?" is mostly a question about how old the type you are considering is. ## What actually changes for you The abstraction is good enough that most people never think about it — until one of these bites. **Device naming.** Block devices are exposed as NVMe devices. You may request an attachment at `/dev/sdf`, but inside the guest it shows up as `/dev/nvme1n1`, and **the numbering follows attachment order, which is not guaranteed across reboots**. Any `/etc/fstab` entry or automation keyed on a device path is a latent failure. Mount by filesystem UUID or label instead: ```bash lsblk -o NAME,SIZE,FSTYPE,UUID,MOUNTPOINT blkid /dev/nvme1n1 # /etc/fstab: use the UUID, never the device node # UUID=1a2b3c4d-... /var/lib/data xfs defaults,nofail 0 2 ``` On Amazon Linux the `ebsnvme-id` helper maps an NVMe device back to the volume and the name you originally requested, which is how you correlate what the guest sees with what the API says. **Drivers in the AMI.** The image must include the ENA driver for networking and NVMe drivers for storage. Every current Amazon Linux, Ubuntu, Windows and RHEL image ships them. The failure mode appears when someone migrates a hand-built or long-lived custom image forward onto a modern instance type: the instance launches and then fails its status checks or comes up with no network, because the kernel has no driver for the devices Nitro presents. **Reboot and maintenance behaviour.** Because so much lives on separate cards, AWS can update host software with far less disruption than the old model required — one reason live-update maintenance notices are rarer than they used to be. ## How to answer this in an interview Most candidates can say "Nitro is AWS's hypervisor." The distinguishing answer explains **why the offload matters** — more of the host goes to the guest, the isolation boundary is hardware rather than software, and bare metal becomes possible — and then names one concrete operational consequence, which is almost always the NVMe device-naming trap. That combination shows you have both read about it and run something on it.
- Why does an instance come up with a volume attached at an unexpected device path, and how do you make mounts reliable?Nitro presents block devices over NVMe, and the `/dev/nvmeXn1` numbering follows attachment order rather than the name you requested, so it can differ across reboots. Reference filesystems by UUID or label in `/etc/fstab` — with `nofail` so a missing volume does not block boot — and use `lsblk`, `blkid` or `ebsnvme-id` to correlate a device with the volume it belongs to.
- What breaks when a very old custom AMI is launched on a current-generation instance type?Missing drivers. Nitro exposes networking through ENA and storage through NVMe; a kernel without those drivers boots into an instance with no reachable network or no visible root device, which surfaces as failed status checks. The fix is to install and enable the drivers in the image — or, better, rebuild the image on a current base rather than carrying an old one forward.
- What does a .metal instance type give you that a normal virtualised one does not?Direct access to the physical processor with no hypervisor in between: hardware performance counters, nested virtualisation, and the ability to run software licensed per physical socket or core. It is not a general performance upgrade — virtualised Nitro instances already run close to bare metal — so choosing metal without one of those specific needs mostly just buys a large fixed unit of capacity.
saying these in an interview costs you the question
- Says Nitro is just a rebranded Xen hypervisor
- Thinks Nitro is an instance family you select
- Assumes requested device names appear unchanged in the guest
- Believes any AMI boots on any instance type
- Calls bare metal universally faster than virtualised instances