EC2の小さいサーバーを利用していると容量が逼迫しやすいので、EBSでボリューム拡張をするときの手順を記載します。 この手順はAWSドキュメントを参考に作成されています。

AWS EC2のボリューム拡張方法

3年以上前に更新されました。情報が古い可能性があります。
更新日 : 2020年08月07日

EC2の小さいサーバーを利用していると容量が逼迫しやすいので、EBSでボリューム拡張をするときの手順を記載します。

この手順はAWSドキュメントを参考に作成されています。

1. ボリューム自体を拡張するためにAWSコンソールで操作

ボリューム変更
ボリューム変更

EC2のEBS設定ページヘ行き、変更したいボリュームストレージを選択してアクション→ボリュームの変更を選択します。

ボリューム設定
ボリューム設定

ボリュームサイズを指定するフォームが表示されるので、変更したいサイズを指定して変更を進めましょう。

変更リクエストが送信されると、状態が「in-use」から「in-use optimizing」に変更されます。in-useになるまで待機して完了を待ちましょう。

2. サーバーにアクセスしてパーティションの拡張

ボリュームの拡張が完了していれば、サーバーにアクセスしてパーティションの拡張ができるか確認します。

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

このようにサイズにずれが起きていればパーティションの拡張が可能な状態となっています。上の例では、物理的な容量は12GBだが、OSが利用しているパーティションが8GBのままの状態になります。

以下コマンドでパーティションの拡張を行いましょう。

$sudo growpart /dev/xvda 1
CHANGED: partition=1 start=4096 old: size=16773087 end=16777183 new: size=62910431 end=62914527

CHANGEDと表示されていれば問題ありません。再度上のlsblkコマンドを実行して容量にずれがないことを確認しましょう。

3. ファイルシステムの拡張

パーティションを拡張しただけでは、拡張した容量の分のストレージは使えません。最後にファイルシステムの拡張を行います。まずは現在のOS上のストレージを確認してみましょう。

$df -hT
ファイルシス   タイプ   サイズ  使用  残り 使用% マウント位置
devtmpfs       devtmpfs   475M     0  475M    0% /dev
tmpfs          tmpfs      492M   64K  492M    1% /dev/shm
tmpfs          tmpfs      492M  452K  492M    1% /run
tmpfs          tmpfs      492M     0  492M    0% /sys/fs/cgroup
/dev/xvda1     xfs        8.0G  5.0G  3.1G   63% /
tmpfs          tmpfs       99M     0   99M    0% /run/user/1000

/dev/xvda1 xfs 8.0G 5.0G 3.1G 63% /が今回拡張したいファイルシステムです。まだ変更後の容量になっていないことがわかります。

ここで重要な情報がxfsです。これが利用しているファイルシステムなので、表示されているファイルシステムに応じて拡張コマンドが異なります。上記のxfsの場合には以下のコマンドで拡張が可能です。

$sudo xfs_growfs /dev/xvda1
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 7863803

色々表示されますが、一番下のdata blocks changedが表示されれば成功です。
もう一度df -hTコマンドで確認してみましょう。

$df -hT
ファイルシス   タイプ   サイズ  使用  残り 使用% マウント位置
devtmpfs       devtmpfs   475M     0  475M    0% /dev
tmpfs          tmpfs      492M   64K  492M    1% /dev/shm
tmpfs          tmpfs      492M  452K  492M    1% /run
tmpfs          tmpfs      492M     0  492M    0% /sys/fs/cgroup
/dev/xvda1     xfs         30G  5.0G   25G   17% /
tmpfs          tmpfs       99M     0   99M    0% /run/user/1000

サイズが変更されていることが確認できます。お疲れさまでした。

注意点

最後のファイルシステムの拡張コマンドですが、インストール済みでない場合には、yumで以下のようにインストールしましょう。

$sudo yum -y install xfsprogs

また、xfs以外のファイルシステムを利用している場合にはxfs_growfsではなく他のコマンドを利用します。詳しくはAWSのドキュメントを参考にしてください。