AWS EC2へボリュームを追加する方法

AWS EC2へボリュームを追加する方法をご紹介します。

空の EBS ボリュームの作成

ボリューム作成画面に遷移します。

EC2 ダッシュボード > Elastic Block Store > ボリューム

ボリュームの作成ボタンをクリックします。

次の選択肢が表示されますので適切な選択をします。

・ボリュームタイプ
・サイズ
・アベイラビリティーゾーン
・このボリュームを暗号化する
・タグ

スナップショットの項目もありますが、今回は空にします。この項目は、スナップショットを元にしてボリュームを作成したい場合に選択します。

選択したらボリュームの作成ボタンをクリックします。

インスタンスにアタッチ

ボリュームをインスタンスにアタッチしていきます。

作成したボリュームを選択した状態で、アクション ボタンをクリックします。選択肢が表示されるので、ボリュームのアタッチ ボタンをクリックします。

ここでインスタンスを選択し、アタッチ ボタンをクリックします。

これでアタッチ完了です。

アタッチしたボリュームがどのような名称で存在しているか、CLIで確認します。

$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:0 0 500G 0 disk 
|-nvme0n1p1 259:1 0 1M 0 part 
`-nvme0n1p2 259:2 0 500G 0 part /
nvme1n1 259:3 0 100G 0 disk

次のような場合、ルートデバイスは /dev/nvme0n1p2 です。今アタッチされたボリュームは /dev/nvme1n1 で、まだマウントされていません。

フォーマット

ボリュームにファイルシステムがあるか確認します。ファイルシステムがあればファイルシステムの情報が表示され、無ければ次のように表示されます。

$ sudo file -s /dev/nvme1n1
/dev/nvme1n1: data

ファイルシステムが無ければ、フォーマットしてファイルシステムを作成します。

$ sudo mkfs -t xfs /dev/nvme1n1

もう一度確認します。

$ sudo file -s /dev/nvme1n1
/dev/nvme1n1: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)

無事にフォーマットできました。

マウント

$ sudo mount /dev/nvme1n1 /data

永続化

再起動してもマウントされた状態を維持するようにします。

rootユーザーになります。

$ sudo su -

接続されているボリュームのUUIDを確認します。

# blkid

永続化の設定をします。

# vi /etc/fstab

例(UUIDは先ほど確認したものにします)

UUID=aebf131c-6957-451e-8d34-ec978d9581ae /data xfs defaults,nofail 0 2

設定が正しく出来ているか確認します。次のコマンドでエラーが出なければ正しく設定できています。

コマンドの内容は、アンマウントして全部マウントです。

$ sudo umount /data
$ sudo mount -a

これで再起動しても接続を維持するようになりました。

参考

Amazon EBS ボリュームの作成

インスタンスへの Amazon EBS ボリュームのアタッチ

Linux で Amazon EBS ボリュームを使用できるようにする