ハマログ

株式会社イーツー・インフォの社員ブログ

AWSのインスタンスストアボリューム(エフェメラルストレージ)

はじめに
AWSでEC2インスタンスを停止する時に表示されるこれ。
いつも雰囲気でチラ見して、深く考えずにそのまま「停止する」ボタンを押していました。

で、ちょっと気になったので調べてみました。
AWSのエフェメラルストレージとは

エフェメラルストレージで検索して表示されたAWSのサイトがこちらです。
Amazon EC2 インスタンスストア

どうやら、エフェメラルストレージは、「インスタンスストア」という領域に存在する「インスタンスストアボリューム」のことらしいです。何のことだかわからないので下の図を見ましょう。

画像は上記のURLより引用。アルファベット表記だとephemeralらしいです。
さて、インスタンス作成時にアタッチできるとのことでやってみましたが、以下の通りEBSしか選択できません。
おおー。どうやらインスタンスタイプよって選択できる/できないが決まっているようです。いつも使ってるインスタンスだと意外と使えない。
m5d.largeで進めてみます。ephemeral0が表示されました。
ありゃしねぇ
devの下かもしれない
[root@ip-10-0-1-33 /]# cd /dev
[root@ip-10-0-1-33 dev]# ls -la | grep ">"
lrwxrwxrwx  1 root root           7 Feb 20 14:18 xvda -> nvme0n1
lrwxrwxrwx  1 root root           9 Feb 20 14:18 xvda1 -> nvme0n1p1
lrwxrwxrwx  1 root root          11 Feb 20 14:18 xvda128 -> nvme0n1p128


[root@ip-10-0-1-33 dev]# fdisk -l
Disk /dev/nvme1n1: 69.9 GiB, 75000000000 bytes, 146484375 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

(略)
とりあえずフォーマットして、
[root@ip-10-0-1-33 dev]# mkfs.ext4 /dev/nvme1n1
mke2fs 1.42.9 (28-Dec-2013)
Discarding device blocks: done
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
4579328 inodes, 18310546 blocks
915527 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2166358016
559 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
確認
[root@ip-10-0-1-33 dev]#  file -s /dev/nvme1n1
/dev/nvme1n1: Linux rev 1.0 ext4 filesystem data, UUID=442ecf31-d864-4fe2-b0c0-bc39740939f3 (extents) (64bit) (large files) (huge files)
mount
sudo mkdir /test
sudo mount /dev/nvme1n1 /test
できた!
[root@ip-10-0-1-33 dev]# df
Filesystem     1K-blocks    Used Available Use% Mounted on
devtmpfs         3915784       0   3915784   0% /dev
tmpfs            3933724       0   3933724   0% /dev/shm
tmpfs            3933724     364   3933360   1% /run
tmpfs            3933724       0   3933724   0% /sys/fs/cgroup
/dev/nvme0n1p1   8376300 1336400   7039900  16% /
tmpfs             786748       0    786748   0% /run/user/1000
/dev/nvme1n1    71961288   53272  68229524   1% /test
再起動するとなくなるらしいのでやってみます
[root@ip-10-0-1-33 /]# cd /test
[root@ip-10-0-1-33 test]# mkdir test.txt
[root@ip-10-0-1-33 test]# ls
lost+found  test.txt
[root@ip-10-0-1-33 test]#reboot

/// reboot

[ec2-user@ip-10-0-1-33 ~]$ sudo mount /dev/nvme1n1 /test
[ec2-user@ip-10-0-1-33 ~]$ cd /test
[root@ip-10-0-1-33 test]# mkdir test.txt
[root@ip-10-0-1-33 test]# ls
lost+found  test.txt
なくなりませんでした。rebootとインスタンス停止は違うようです。
AWSコンソールからインスタンスを停止後、起動して確認してみます。フォーマット前の状態にもどりました。
[root@ip-10-0-1-33 ~]#  file -s /dev/nvme1n1
/dev/nvme1n1: data
ここまでで、エフェメラルストレージがインスタンス停止に対して揮発するということがわかりました。
使いみちですが、AWSの方の資料が参考になりそうです。

EC2のストレージどう使う? -Instance Storageを理解して高速IOを上手に活用!-
https://www.slideshare.net/imaifactory/ephemeral-ssd
資料によると、ポイントは、高速・高帯域であること。追加料金がかからないこと。あたりのようです。

以下のような用途に利用できそうです。
・バッチ処理の一時ディスク
・キャッシュ
・一時ログ
・ダンプデータ置き場
うまく活用したいです。
AWSEC2Ephemeral DiskInstanceInstance Storeインスタンスストアインスタンスストアボリュームエフェメラルストレージ

  kaneko tomo   2019年2月20日


関連記事

IAMユーザー名を変更する(AWS CLI)

IAMユーザー名を変更しようと思いましたが、AWSマネジメントコンソールから変更…

AWS CDKで作った定期的なタスク起動がたまに失敗するのでStep Functionsを導入したお話

昔々あるところに、毎日起動しているはずのAmazon ECSのタスクが起動しなか…

AWS上にWindows+OWASP Zap環境を作る

OWASP Zapでの脆弱性検査を、開発者PCもしくはオフィスの共有PCから実行…


← 前の投稿

次の投稿 →