Introduction
Storage architecture decisions have a direct impact on cost, performance, and system resilience. In this project, I deployed and tested AWS EC2 Instance Store — a high-speed, temporary storage option physically attached to EC2 hosts. This article documents the setup, use case, implementation, and key considerations involved, all based on hands-on work in a real AWS environment.
What Is EC2 Instance Store?
EC2 Instance Store is a non-persistent, high-performance storage medium directly attached to the physical host of an EC2 instance. Unlike EBS (Elastic Block Store), data stored on instance store is lost if the instance is stopped, terminated, or crashes.
Key Characteristics:
Speed: Extremely fast (NVMe SSD)
Persistence: No — data is lost when the instance stops
Cost: Included with some EC2 instance types (e.g., i3.large)
Use Cases: Temporary cache, buffer, or high-speed scratch space
Why I Chose to Explore It
While EBS is the default choice for most EC2 storage, Instance Store offers performance advantages in scenarios where:
Speed is more important than persistence
The data can be recreated, re-fetched, or discarded
Storage costs should be minimized for temporary workloads
I wanted to test and validate this through implementation — not just theory.
Project Setup
Cloud: AWS
EC2 Instance Type: i3.large (includes 475 GB NVMe SSD instance store)
AMI: Amazon Linux 2023
Key Pair Name: my-best-Key
Security Group: SSH (port 22) allowed
Expected Outcome: Validate that instance store behaves as fast but ephemeral storage
Implementation Steps
1. Instance Deployment
From the EC2 dashboard:
Selected Amazon Linux 2023
Chose instance type i3.large (supports NVMe instance store)
Attached key pair my-best-Key
Verified 1 x 475 GB NVMe SSD was listed under "Instance Store"
Opened port 22 for SSH access
Launched the instance
Note: i3.large is not Free Tier eligible. I terminated the instance after testing to avoid unnecessary costs.
2. SSH Access
bash
chmod 400 my-best-Key.pem
ssh -i my-best-Key.pem ec2-user@
Note: Before you run the above command on gitbash ensure to have change directory by running the command
cd downloads
thats if the keypair you downloaded is in download, but if its in desktop, that means you would have to cd to desktop and also list to be sure by running the command
ls
3. Identifying the Instance Store
lsblk
Expected output:
pgsql
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
xvda 202:0 0 8G 0 disk /
nvme0n1 259:0 0 442.4G 0 disk
4. Formatting and Mounting
bash
sudo mkfs -t ext4 /dev/nvme0n1
sudo mkdir /mnt/tempdrive
sudo mount /dev/nvme0n1 /mnt/tempdrive
5. Writing and Verifying Data
bash
echo "Hello from instance store" | sudo tee /mnt/tempdrive/test.txt
cat /mnt/tempdrive/test.txt
6. Verifying Ephemeral Nature
Stopped the instance
Restarted it
Reconnected and ran:
bash
ls /mnt/tempdrive
Result: File is gone. Instance store is not persistent.
Outcome and Insights
Successfully tested a non-persistent high-speed storage scenario
Validated the use case for short-term, high-I/O workloads
Gained hands-on experience managing NVMe-backed instance volumes
Use Cases in Real Workflows
CI/CD caching
ML training scratch space
Log processing before aggregation
Video rendering pipelines
Next Step
In my next article, I’ll explore Amazon EBS — persistent block storage with snapshotting, scaling, and failover. Stay tuned.
Let’s Connect
Dev.to: https://dev.to/peter_samuel_052b9056e236
LinkedIn: www.linkedin.com/in/peter-samuel-
GitHub: https://github.com/sampchinonso