概要
EC2を立てたあと、稼働中であろうとEBSは増強することが可能である。
しかしコンソールから設定しただけではEBSを増強したことにはならない。OSに増えた分を認識させる必要がある。
インスタンスタイプt2.microを必要最低限の設定で立ち上げたEC2を題材として、EBSの追加方法を記す。
結論
以下の通りにコマンドを打てばよい。
# 0.増分前の容量を確認
$ df -h
$ lsblk
# 1.コンソール画面でボリューム増加
# 2.起動時のパーティション設定
$ sudo growpart /dev/xvda 1
# 3.ボリューム拡張
# EC2第四世代の場合
$ sudo resize2fs /dev/xvda1
# EC2第五世代の場合
$ sudo xfs_growfs /
# 4.増分後の確認
$ df -h
$ lsblk
手順
0. 現時点のボリュームサイズを確認する。
dfコマンドはマウントされている各ディスク上の空きディスク容量を表示してくれる。
(-hは--human-readableの略オプションで、人間に見やすい単位で表記してくれるようにするもの)
lsblkコマンドは現在使用可能なブロックデバイス一覧を表示するコマンド。
パーティションの状態やストレージの構成、デバイス番号等を把握するためのもの。
$ df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
devtmpfs 475M 0 475M 0% /dev
tmpfs 492M 0 492M 0% /dev/shm
tmpfs 492M 408K 492M 1% /run
tmpfs 492M 0 492M 0% /sys/fs/cgroup
/dev/xvda1 8.0G 3.3G 4.8G 41% /
tmpfs 99M 0 99M 0% /run/user/1000
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 8G 0 disk
└─xvda1 202:1 0 8G 0 part /
1. コンソールでEBSそのものを増強する。
AWSのコンソールからEC2の画面を開き、左メニューからボリュームを選択。
その後増やしたいボリュームを選択し、アクション▶︎ボリュームの変更を選択。

次に増やしたい量だけボリュームの値を入力する。今回はデフォルトの8から100へと変更した。
Volume Typeという、EBSの種類を変更することも可能。
Volume Type一覧はこちらから。

ディスクサイズを確認してみる。
lsblkの結果では一段目のSIZE列が8G->100Gに変更になっている。
# 変更無し
$ df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
devtmpfs 475M 0 475M 0% /dev
tmpfs 492M 0 492M 0% /dev/shm
tmpfs 492M 408K 492M 1% /run
tmpfs 492M 0 492M 0% /sys/fs/cgroup
/dev/xvda1 8.0G 3.3G 4.8G 41% /
tmpfs 99M 0 99M 0% /run/user/1000
# 一段目のSIZE列が8G->100Gに変更になっている。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 100G 0 disk
└─xvda1 202:1 0 8G 0 part /
2. 起動時のパーティション設定
growpartコマンドでOS起動時にEBSのサイズに合わせてパーティションサイズを変更することが可能となる。
$ sudo growpart /dev/xvda 1
CHANGED: partition=1 start=4096 old: size=16773087 end=16777183 new: size=209711071 end=209715167
# 両者ともSIZE列が100Gになっている。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 100G 0 disk
└─xvda1 202:1 0 100G 0 part /
3. ボリューム拡張
EC2の世代によって打つべきコマンドが変わる。
第四世代の場合
$ sudo resize2fs /dev/xvda1
第五世代以降の場合
(Cent OS7からデフォルトになったXFSはresize2fsが使えないため以下を使う。)
$ sudo xfs_growfs /
meta-data=/dev/xvda1 isize=512 agcount=4, agsize=524159 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1 spinodes=0
data = bsize=4096 blocks=2096635, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 2096635 to 26213883
# 五行目のサイズ列が8.0G->100Gに変化しているのが確認された。
$ df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
devtmpfs 475M 0 475M 0% /dev
tmpfs 492M 0 492M 0% /dev/shm
tmpfs 492M 412K 492M 1% /run
tmpfs 492M 0 492M 0% /sys/fs/cgroup
/dev/xvda1 100G 3.4G 97G 4% /
tmpfs 99M 0 99M 0% /run/user/1000
おしまい