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
EC2のストレージどう使う? -Instance Storageを理解して高速IOを上手に活用!-
https://www.slideshare.net/imaifactory/ephemeral-ssd
資料によると、ポイントは、高速・高帯域であること。追加料金がかからないこと。あたりのようです。
以下のような用途に利用できそうです。
・バッチ処理の一時ディスク
・キャッシュ
・一時ログ
・ダンプデータ置き場
以下のような用途に利用できそうです。
・バッチ処理の一時ディスク
・キャッシュ
・一時ログ
・ダンプデータ置き場
うまく活用したいです。
kaneko tomo 2019年2月20日
関連記事
Amazon Linux 2 x86_64 standard: 3.0のCodeBuild環境でPHP8.0を使う方法。
『今度の開発はPHP8.0環境にLaravel8でソース組んでるんでインフラもそ…