AWS
EC2
AmazonLinux

EC2インスタンスに追加でEBSボリュームをアタッチする。

はじめに

稼働中のEC2インスタンスにEBSボリュームを追加したい場合の方法をまとめました。

事前確認

まずは作業前の状態を確認しておきます。

lsblk
$ lsblk 
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0   8G  0 disk 
└─xvda1 202:1    0   8G  0 part /
df
$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
devtmpfs         236M   60K  236M    1% /dev
tmpfs            245M     0  245M    0% /dev/shm
/dev/xvda1       7.8G  1.2G  6.6G   15% /
file
$ sudo file -s /dev/xvdf 
/dev/xvdf: data

EBSボリュームの作成

管理コンソールの「ELASTIC BLOCK STORE > ボリューム」から「ボリュームの作成」をクリックします。

作成したいボリュームタイプやサイズを指定します。
ここでポイントがアベイラビリティゾーンです。今回アタッチしたいインスタンと同じアベイラビリティゾーンを指定します。

スクリーンショット 2018-03-08 11.17.18.png

「ボリュームの作成」をクリックします。

スクリーンショット 2018-03-08 11.17.29.png

作成したボリュームがavailableになれば作成完了です。

スクリーンショット 2018-03-08 11.18.01.png

EBSボリュームのアタッチ

先ほど作成したボリュームを指定し、「アクション > ボリュームのアタッチ」をクリックします。

スクリーンショット 2018-03-08 11.20.10.png

ボリュームのアタッチで対象インスタンスを指定し「アタッチ」します。

スクリーンショット 2018-03-08 11.21.13.png

ステータスがin-useになったらアタッチ完了です。

スクリーンショット 2018-03-08 11.21.43.png

コマンドで確認すると先ほどアタッチしたxvdfという名前のデバイスが追加されているのが確認できます。

lsblk
$ lsblk 
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvda    202:0    0    8G  0 disk 
└─xvda1 202:1    0    8G  0 part /
xvdf    202:80   0  100G  0 disk 

ファイルシステムの作成

アタッチされているのが確認できたらファイルシステムを作成します。

ファイルシステム作成
$ sudo mkfs -t ext4 /dev/xvdf
mke2fs 1.42.12 (29-Aug-2014)
Creating filesystem with 26214400 4k blocks and 6553600 inodes
Filesystem UUID: 1f00fbb1-7f0f-40d4-a189-10e8291ad8dd
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000, 7962624, 11239424, 20480000, 23887872

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done   

成功するとfileコマンドで確認ができます。

$ sudo file -s /dev/xvdf 
/dev/xvdf: Linux rev 1.0 ext4 filesystem data, UUID=1f00fbb1-7f0f-40d4-a189-10e8291ad8dd (extents) (large files) (huge files)

EBSボリュームのマウント

マウントポイントを作成しマウントします。

マウントポイント作成
$ sudo mkdir /data
マウント
$ sudo mount /dev/xvdf /data
マウント確認
$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
devtmpfs         236M   60K  236M    1% /dev
tmpfs            245M     0  245M    0% /dev/shm
/dev/xvda1       7.8G  1.2G  6.6G   15% /
/dev/xvdf         99G   60M   94G    1% /data

以上で追加したEBSボリュームが利用できるようになりました。

自動マウント設定

最後の仕上げとして起動時に自動でマウントするように設定します。

アンマウント
$ sudo umount /data

/etc/fstab に以下の内容を追記します。

/etc/fstabに追加
/dev/xvdf   /data       ext4    defaults,nofail   0   2

追記したら確認です。

マウント
$ sudo mount -a
マウント確認
$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
devtmpfs         236M   60K  236M    1% /dev
tmpfs            245M     0  245M    0% /dev/shm
/dev/xvda1       7.8G  1.2G  6.6G   15% /
/dev/xvdf         99G   60M   94G    1% /data

以上で自動マウント設定も完了です。

おわりに

EBSボリュームの追加を行う場合は対象となるインスタンスが稼働しているアベイラビリティゾーンを確認しておきましょう。違うアベイラビリティゾーンで作成してしまうとアタッチする際に対象となるインスタンスが表示されないからです。