0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS EC2のインスタンスストレージの揮発性を確認してみた

Last updated at Posted at 2025-03-20

はじめに

2024年12月からI7ieインスタンスが提供開始されています。

EC2 I7ieインスタンスはストレージ最適化インスタンスの1つであり、インスタンスストレージ(インスタンスストア)としてNitroSSDを有しています。
インスタンスストアであるゆえに、このSSDに保存したデータはインスタンスを停止するとデータが消失します。

今回、Linuxのインスタンスにて、データが消失する際の挙動を確認してみたので、参考としてメモします。
また、EC2インスタンス内からみて、どのデバイスがインスタンスストレージまたはEBSであるかを確認する方法も残しています。

いずれも基本的な操作、確認手順ですし、すでに同様の記事もあるかと思いますが、実施した一例として、どなたかの参考になれば幸いです。

結論

  • インスタンスストレージのデータは、個々のファイルが消えるだけでなく、ファイルシステムごと消える!
  • EC2内のデバイスについて、インスタンスストレージとEBSの特定は、nvmeコマンドで確認可能

I7ieインスタンスとは

詳細は以下を参照ください。

インスタンスサイズは i7ie.large(vCPU 2, Memory 16GiB, InstanceStorage 1,250GB) からi7ie.48xlarge(vCPU 192, Memory 1,536GiB,InstanceStorage 120,000GB )まであります。

Nitro SSDについて

関連して、AWS Nitro SSDについては、以下を参照ください

環境

インスタンスは以下の通り。

  • インスタンスタイプ: i7ie.large
  • AMI: al2023-ami-2023.6.20250303.0-kernel-6.1-x86_64
  • OS: Amaazon Linux 2023

ストレージについては以下の通り。

  • EC2インスタンスのルートデバイス(EBS)のサイズ: 8GB (EC2インスタンス作成時に指定)
  • インスタンスストレージのサイズ:1,250GB(largeなので)

準備

起動直後の状態

以下の手順に沿って、EC2インスタンスのストレージの様子を見ていきます。

lsblkコマンドでみると、ルートデバイスのnvme0n1の8GBは、マウントされていますが、インスタンスストレージのnvme1n1の1.1TB(≒1,250GB)はマウントされていません。

[ec2-user@ip-10-0-138-182 ~]$ lsblk
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
nvme1n1       259:0    0  1.1T  0 disk 
nvme0n1       259:1    0    8G  0 disk 
├─nvme0n1p1   259:2    0    8G  0 part /
├─nvme0n1p127 259:3    0    1M  0 part 
└─nvme0n1p128 259:4    0   10M  0 part /boot/efi
[ec2-user@ip-10-0-138-182 ~]$ 

fileコマンド、lsblkコマンドでみても、まだファイルシステムが存在していないことが確認できます。

[ec2-user@ip-10-0-138-182 ~]$ sudo file -s /dev/nvme1n1 
/dev/nvme1n1: data
[ec2-user@ip-10-0-138-182 ~]$ 
[ec2-user@ip-10-0-138-182 ~]$ sudo lsblk -f
NAME          FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
nvme1n1                                                                              
nvme0n1                                                                              
├─nvme0n1p1   xfs          /     f3225129-f7e3-4da4-90f7-5035c457993d    6.4G    20% /
├─nvme0n1p127                                                                        
└─nvme0n1p128 vfat   FAT16       9AA3-6C3B                               8.7M    13% /boot/efi
[ec2-user@ip-10-0-138-182 ~]$ 

ファイルシステムの作成

xfsでファイルシステムを作成します

[ec2-user@ip-10-0-138-182 ~]$ sudo mkfs -t xfs /dev/nvme1n1 
meta-data=/dev/nvme1n1           isize=512    agcount=4, agsize=76293946 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=1 inobtcount=1
data     =                       bsize=4096   blocks=305175781, imaxpct=5
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=149011, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
Discarding blocks...Done.
[ec2-user@ip-10-0-138-182 ~]$ 

以下の通り、lsblkコマンドおよびblkidコマンドの結果から、nvme1n1がxfsでファイルシステムを作成できていることが確認できました。

[ec2-user@ip-10-0-138-182 ~]$ sudo lsblk -f
NAME          FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
nvme1n1       xfs                3eb024c4-3288-4535-91cf-4bee232af40f    1.1T     1% /data
nvme0n1                                                                              
├─nvme0n1p1   xfs          /     f3225129-f7e3-4da4-90f7-5035c457993d    6.4G    20% /
├─nvme0n1p127                                                                        
└─nvme0n1p128 vfat   FAT16       9AA3-6C3B                               8.7M    13% /boot/efi
[ec2-user@ip-10-0-138-182 ~]$ 
[ec2-user@ip-10-0-138-182 ~]$ sudo blkid
/dev/nvme0n1p1: LABEL="/" UUID="f3225129-f7e3-4da4-90f7-5035c457993d" BLOCK_SIZE="4096" TYPE="xfs" PARTLABEL="Linux" PARTUUID="7198aae6-3d36-4761-a593-b74880056701"
/dev/nvme0n1p128: SEC_TYPE="msdos" UUID="9AA3-6C3B" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="32beaf50-f049-4a2e-9404-fb52dce87853"
/dev/nvme0n1p127: PARTLABEL="BIOS Boot Partition" PARTUUID="f21c4b92-7bdc-4d4e-be64-fdb0cedf3e5a"
/dev/nvme1n1: UUID="3eb024c4-3288-4535-91cf-4bee232af40f" BLOCK_SIZE="512" TYPE="xfs"
[ec2-user@ip-10-0-138-182 ~]$ 

インスタンスストレージ上にファイルを作成

インスタンスストレージをマウントします。

[ec2-user@ip-10-0-138-182 ~]$ sudo mkdir /data
[ec2-user@ip-10-0-138-182 ~]$ sudo mount /dev/nvme1n1 /data/
[ec2-user@ip-10-0-138-182 ~]$ 
[ec2-user@ip-10-0-138-182 ~]$ df -h
Filesystem        Size  Used Avail Use% Mounted on
devtmpfs          4.0M     0  4.0M   0% /dev
tmpfs             7.7G     0  7.7G   0% /dev/shm
tmpfs             3.1G  620K  3.1G   1% /run
/dev/nvme0n1p1    8.0G  1.6G  6.4G  20% /
tmpfs             7.7G     0  7.7G   0% /tmp
/dev/nvme0n1p128   10M  1.3M  8.7M  13% /boot/efi
tmpfs             1.6G     0  1.6G   0% /run/user/1000
/dev/nvme1n1      1.2T  8.2G  1.2T   1% /data
[ec2-user@ip-10-0-138-182 ~]$ 

適当なファイルを置きます。

[ec2-user@ip-10-0-138-182 ~]$ cd /data
[ec2-user@ip-10-0-138-182 data]$ for i in {1..9}; do   sudo  dd if=/dev/zero of=/data/file$i bs=1M count=1; done
1+0 records in
1+0 records out
1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.000597692 s, 1.8 GB/s
(中略)
1+0 records in
1+0 records out
1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.000531044 s, 2.0 GB/s
[ec2-user@ip-10-0-138-182 data]$ ls /data
file1  file2  file3  file4  file5  file6  file7  file8  file9
[ec2-user@ip-10-0-138-182 data]$ ls -l /data
total 9216
-rw-r--r--. 1 root root 1048576 Mar 20 13:41 file1
-rw-r--r--. 1 root root 1048576 Mar 20 13:41 file2
-rw-r--r--. 1 root root 1048576 Mar 20 13:41 file3
-rw-r--r--. 1 root root 1048576 Mar 20 13:41 file4
-rw-r--r--. 1 root root 1048576 Mar 20 13:41 file5
-rw-r--r--. 1 root root 1048576 Mar 20 13:41 file6
-rw-r--r--. 1 root root 1048576 Mar 20 13:41 file7
-rw-r--r--. 1 root root 1048576 Mar 20 13:41 file8
-rw-r--r--. 1 root root 1048576 Mar 20 13:41 file9
[ec2-user@ip-10-0-138-182 data]$ 
[ec2-user@ip-10-0-138-182 data]$ du -h /data
9.0M    /data
[ec2-user@ip-10-0-138-182 data]$ 

これで準備はできました。

インスタンス再起動した場合のストレージ

まずはインスタンスを再起動してみます。
以下、再起動直後の状態です。
fstabの設定をしていなかったので、マウントが外れていますが、再度マウントすればファイルは見れます。

[ec2-user@ip-10-0-138-182 ~]$ sudo lsblk -f
NAME          FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
nvme0n1                                                                              
├─nvme0n1p1   xfs          /     f3225129-f7e3-4da4-90f7-5035c457993d    6.4G    20% /
├─nvme0n1p127                                                                        
└─nvme0n1p128 vfat   FAT16       9AA3-6C3B                               8.7M    13% /boot/efi
nvme1n1       xfs                3eb024c4-3288-4535-91cf-4bee232af40f                
[ec2-user@ip-10-0-138-182 ~]$ 
[ec2-user@ip-10-0-138-182 ~]$ mount | grep data
[ec2-user@ip-10-0-138-182 ~]$ 
[ec2-user@ip-10-0-138-182 ~]$ ls /data
[ec2-user@ip-10-0-138-182 ~]$ 
[ec2-user@ip-10-0-138-182 ~]$ 
[ec2-user@ip-10-0-138-182 ~]$ 
[ec2-user@ip-10-0-138-182 ~]$ sudo mount /dev/nvme1n1 /data/
[ec2-user@ip-10-0-138-182 ~]$ mount | grep data
/dev/nvme1n1 on /data type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
[ec2-user@ip-10-0-138-182 ~]$ ls /data
file1  file2  file3  file4  file5  file6  file7  file8  file9
[ec2-user@ip-10-0-138-182 ~]$ ls -l /data
total 9216
-rw-r--r--. 1 root root 1048576 Mar 20 13:41 file1
-rw-r--r--. 1 root root 1048576 Mar 20 13:41 file2
-rw-r--r--. 1 root root 1048576 Mar 20 13:41 file3
-rw-r--r--. 1 root root 1048576 Mar 20 13:41 file4
-rw-r--r--. 1 root root 1048576 Mar 20 13:41 file5
-rw-r--r--. 1 root root 1048576 Mar 20 13:41 file6
-rw-r--r--. 1 root root 1048576 Mar 20 13:41 file7
-rw-r--r--. 1 root root 1048576 Mar 20 13:41 file8
-rw-r--r--. 1 root root 1048576 Mar 20 13:41 file9
[ec2-user@ip-10-0-138-182 ~]$ 

[ec2-user@ip-10-0-138-182 ~]$ sudo lsblk -f
NAME          FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
nvme1n1       xfs                3eb024c4-3288-4535-91cf-4bee232af40f    1.1T     1% /data
nvme0n1                                                                              
├─nvme0n1p1   xfs          /     f3225129-f7e3-4da4-90f7-5035c457993d    6.4G    20% /
├─nvme0n1p127                                                                        
└─nvme0n1p128 vfat   FAT16       9AA3-6C3B                               8.7M    13% /boot/efi
[ec2-user@ip-10-0-138-182 ~]$ 

インスタンスを停止したあとに、起動した場合のストレージ

マネジメントコンソールで、インスタンスを停止&起動しました(not 再起動)。
lsblkコマンドや、fileコマンド、blkidコマンドの結果から、xfsで作成していたファイルシステムごとなくなっています!データは消失し、完全に初期状態に戻っています!


[ec2-user@ip-10-0-138-182 ~]$ lsblk -f
NAME          FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
nvme0n1                                                                              
├─nvme0n1p1   xfs          /     f3225129-f7e3-4da4-90f7-5035c457993d    6.4G    20% /
├─nvme0n1p127                                                                        
└─nvme0n1p128 vfat   FAT16       9AA3-6C3B                               8.7M    13% /boot/efi
nvme1n1                                                                              
[ec2-user@ip-10-0-138-182 ~]$ 
[ec2-user@ip-10-0-138-182 ~]$ sudo file -s /dev/nvme1n1 
/dev/nvme1n1: data
[ec2-user@ip-10-0-138-182 ~]$ 
[ec2-user@ip-10-0-138-182 ~]$ sudo blkid 
/dev/nvme0n1p1: LABEL="/" UUID="f3225129-f7e3-4da4-90f7-5035c457993d" BLOCK_SIZE="4096" TYPE="xfs" PARTLABEL="Linux" PARTUUID="7198aae6-3d36-4761-a593-b74880056701"
/dev/nvme0n1p128: SEC_TYPE="msdos" UUID="9AA3-6C3B" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="32beaf50-f049-4a2e-9404-fb52dce87853"
/dev/nvme0n1p127: PARTLABEL="BIOS Boot Partition" PARTUUID="f21c4b92-7bdc-4d4e-be64-fdb0cedf3e5a"
[ec2-user@ip-10-0-138-182 ~]$ 

なお、ホームディレクトリ配下など、ルートデバイスに作成したデータは、停止&再起動をしても残っています。EBSなので当然ですね。

インスタンスストレージとEBSボリュームの確認方法

EC2インスタンスの内部から見ると、/dev/nvme0n1/dev/nvme1n1など複数のデバイスがあります。そのため、そもそも、どれがインスタンスストレージなのか、どれがEBSボリュームなのかを確認したくなります。
その場合は、以下のre:Postの記事が参考になります

以下、今回の環境でやってみた結果です。

nvme-cliのインストール

まずは、nvme-cliをインストールします。

[ec2-user@ip-10-0-138-182 ~]$ sudo yum search nvme-cli
Last metadata expiration check: 2:21:20 ago on Thu Mar 20 12:20:41 2025.
========================================================================================= Name Exactly Matched: nvme-cli ==========================================================================================
nvme-cli.x86_64 : NVMe management command line interface
[ec2-user@ip-10-0-138-182 ~]$ sudo yum install nvme-cli
Last metadata expiration check: 2:21:27 ago on Thu Mar 20 12:20:41 2025.
Dependencies resolved.
===================================================================================================================================================================================================================
 Package                                        Architecture                                 Version                                                       Repository                                         Size
===================================================================================================================================================================================================================
Installing:
 nvme-cli                                       x86_64                                       1.11.1-3.amzn2023.0.5                                         amazonlinux                                       360 k

Transaction Summary
===================================================================================================================================================================================================================
Install  1 Package

Total download size: 360 k
Installed size: 699 k
Is this ok [y/N]: y
Downloading Packages:
nvme-cli-1.11.1-3.amzn2023.0.5.x86_64.rpm                                                                                                                                          3.6 MB/s | 360 kB     00:00    
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                              2.4 MB/s | 360 kB     00:00     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                                           1/1 
  Installing       : nvme-cli-1.11.1-3.amzn2023.0.5.x86_64                                                                                                                                                     1/1 
  Running scriptlet: nvme-cli-1.11.1-3.amzn2023.0.5.x86_64                                                                                                                                                     1/1 
  Verifying        : nvme-cli-1.11.1-3.amzn2023.0.5.x86_64                                                                                                                                                     1/1 

Installed:
  nvme-cli-1.11.1-3.amzn2023.0.5.x86_64                                                                                                                                                                            

Complete!
[ec2-user@ip-10-0-138-182 ~]$ 

nvmeコマンドで確認

以下の通り、nvmeコマンドの結果から、/dev/nvme0n1がEBS、/dev/nvme1n1がインスタンスストレージとわかります。

[ec2-user@ip-10-0-138-182 ~]$ sudo nvme list
Node             SN                   Model                                    Namespace Usage                      Format           FW Rev  
---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1     vol002c7efadda3318d8 Amazon Elastic Block Store               1           8.59  GB /   8.59  GB    512   B +  0 B   2.0     
/dev/nvme1n1     AWSE98939B6A2F33355E Amazon EC2 NVMe Instance Storage         1           1.25  TB /   1.25  TB    512   B +  0 B   0
[ec2-user@ip-10-0-138-182 ~]$ 

デバイス名とボリュームIDの紐づけ確認

EBSの場合、nvmeコマンドのSNの列に、EBSのVolumeIDが表示されています。
今回の例では、vol002c7efadda3318d8が、EC2のルートボリュームのEBSでした。

このVolumeIDは、マネジメントコンソールからも確認できますし、CloudShellだと例えば以下のように確認できます。
EC2インスタンスi-0c145c8826c01d5d5に、ボリュームvol-002c7efadda3318d8がアタッチされており、デバイス名は/dev/xvdaであることが確認できます。
/dev/xvda/dev/nvme0n1へのシンボリックリンクになっていました。)

~ $ aws ec2 describe-instances --output=table --query 'Reservations[].Instances[].{InstanceId: InstanceId, State: State.Name, RootDeviceName: RootDeviceName, RootDeviceType: RootDeviceType, InstanceType: InstanceType, BlockDeviceMappings: BlockDeviceMappings[].{EbsVolumeId:Ebs.VolumeId,DeviceName:DeviceName}}'
----------------------------------------------------------------------------------------
|                                   DescribeInstances                                  |
+----------------------+---------------+-----------------+-----------------+-----------+
|      InstanceId      | InstanceType  | RootDeviceName  | RootDeviceType  |   State   |
+----------------------+---------------+-----------------+-----------------+-----------+
|  i-0c145c8826c01d5d5 |  i7ie.large   |  /dev/xvda      |  ebs            |  running  |
+----------------------+---------------+-----------------+-----------------+-----------+
||                                 BlockDeviceMappings                                ||
|+-----------------------------+------------------------------------------------------+|
||         DeviceName          |                     EbsVolumeId                      ||
|+-----------------------------+------------------------------------------------------+|
||  /dev/xvda                  |  vol-002c7efadda3318d8                               ||
|+-----------------------------+------------------------------------------------------+|
~ $ 

おわりに

EC2 I7ieインスタンスを例に、インスタンスストレージとEBSボリュームとで、データが保持される様子を確認してきました。他のインスタンスタイプでも、同様かと思います。

この記事がどなたかの参考になれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?