EC2インスタンスに新しいEBSボリュームを作成し、アタッチしてみた

2021.08.06

こんにちは。イムチェジョンです。
EC2インスタンスを使うといつかEBSボリュームが足りなくなる時が来ると思います。
そんな時にはEBSボリュームを追加する必要があるでしょう。
なので、今回のブログではEC2インスタンスにEBSボリュームを追加してみました。

アジェンダ

  1. EC2インスタンスとEBSボリュームを作成
  2. EBSボリュームをEC2インスタンスにアタッチ
  3. まとめ

1. EC2インスタンスとEBSボリュームを作成

EC2インスタンス作成

まず、EC2インスタンスを作成します。

以下の設定で作成します。
Amazon マシンイメージ (AMI) : Amazon Linux 2 AMI
インスタンスタイプ : t2.micro
ボリューム : default(基本)
セキュリティグループ : SSH TCP 22 マイIP
キーペア : 既存キーペア及び新しいキーペアの中で選択

作成したEC2インスタンスのEBSボリュームが確認されます。

インスタンスでも確認してみるとEBSボリュームが一つアタッチされています。
ボリューム名をみるとManagement Consoleで確認したデバイス名と同じです。

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

EBSボリュームを作成

次にEC2に追加する新しいEBSボリュームを作成しましょう。

以下の設定で作成しました。
ボリュームタイプ:汎用 SSD (gp2)
サイズ:5GB(任意)
アベイラビリティーゾーン:(EC2のアベイラビリティーゾーンと同じゾーン)
タグ:Name - ebs_new

作成されたのを確認できます。

2. EBSボリュームをEC2インスタンスにアタッチ

EC2インスタンスにEBSボリュームをアタッチ

次に作成したEBSボリュームをEC2インスタンスに追加します。
追加するEBSボリュームを選択してアクションボリュームのアタッチの順にクリックします。

上で作成したインスタンスを選択します。

インスタンスで確認をしてみると二つのボリュームになりました。

インスタンスにSSHで接続して確認してもボリュームは二つになりました。

$ 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   5G  0 disk

新しいパーティション作成

アタッチしたEBSボリュームに新しいパーティション作成します。

$ fdisk /dev/xvdf
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier **********.
Command (m for help): [n]

p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): [p]

Partition number (1-4, default 1): [1]

First sector (2048-10485759, default 2048):

Last sector, +sectors or +size{K,M,G,T,P} (2048-10485759, default 10485759):

Command (m for help): [w]
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

デバイスを確認してみるとパーティションが作成されました。

$ 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   5G  0 disk
└─xvdf1 202:81 0   5G  0 part

EBSボリュームにファイルシステム作成

現在、コンソール上ではEBSボリュームを追加されましたが、サーバ上にはEBSボリュームが追加されてないので、マウントする必要があります。
df -hコマンドで確認してみると/dev/xvdf1がありません。

$ df -h
Filesystem  Size  Used Avail Use% Mounted on
devtmpfs    482M     0  482M   0%  /dev
tmpfs       492M     0  492M   0%  /dev/shm
tmpfs       492M  464K  492M   1%  /run
tmpfs       492M     0  492M   0%  /sys/fs/cgroup
/dev/xvda1  8.0G  1.5G  6.6G  19%  /
tmpfs       99M      0   99M   0%  /run/user/1000
tmpfs       99M      0   99M   0%  /run/user/0

そのため、EBSボリュームにファイルシステムを作成します。

$ mkfs.xfs /dev/xvdf1

確認してみるとファイルシステムがよく作成されました。

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

EBSボリュームのマウント

最後にマウントをしましょう。

$ mkdir ebs_data
$ mount /dev/xvdf1 /ebs_data

df -hコマンドで確認してみると/dev/xvdf1が成功的に追加されました。

$ df -h
Filesystem  Size  Used Avail Use% Mounted on
devtmpfs    482M     0  482M   0%  /dev
tmpfs       492M     0  492M   0%  /dev/shm
tmpfs       492M  464K  492M   1%  /run
tmpfs       492M     0  492M   0%  /sys/fs/cgroup
/dev/xvda1  8.0G  1.5G  6.6G  19%  /
tmpfs       99M      0   99M   0%  /run/user/1000
tmpfs       99M      0   99M   0%  /run/user/0
/dev/xvdf1  4.8G   11M  4.6G   1%  /ebs_data

これで新しいEBSボリュームを使えるようになりました。

3. まとめ

今回はEC2インスタンスに新しいEBSボリュームを作成し、アタッチしてみました。