ハマログ

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

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日


関連記事

Amazon Simple Queue Service をPHPで使ってみる

皆様、お疲れ様です。 uminchuです 今回は前回軽く触れたAWSの機能の一つ…

AWS Developer Associate 試験を受験した件

先日 AWS Developer Associate(以下 「DVA」)を受験し…

Amazon Linux 2のPHP5サポート

現時点で、PHP5系のサポートはすべて終了しています。 PHP5系のセキュリティ…


← 前の投稿

次の投稿 →