Amazon EC2 上の Ubuntu 22.02 のディスクを拡張する方法

Amazon EC2 のサーバのディスク拡張

Amazon EC2 で開発用のサーバを設置することはよくありますが、目的が当初のものからどんどん変化し、ディスクが圧迫することがよくあります。
テストに使用する画像ファイルを大量に配置する必要があったり、開発サーバなのでログもサーバ内にファイルとして残しておくこともあります。結果としてディスクの残量が徐々に減っていき、いつの間にかコマンドが通らなくなることも。。。

そのためディスクを拡張する必要がありますが、私の記憶が古すぎるのか以前は EC2 に立てたサーバのディスク拡張は多くの手順を踏み、結構面倒だったように思うのですが、つい最近実施すると、サーバを止めることなくコンソールの操作とコマンド数回であっけなく終わったので、備忘録として書き留めておきます。

ボリュームの容量確認

ubuntu@ip-172-31-12-110:~$ lsblk
NAME     MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0      7:0    0  25.1M  1 loop /snap/amazon-ssm-agent/5656
loop1      7:1    0  55.6M  1 loop /snap/core18/2560
loop2      7:2    0  63.2M  1 loop /snap/core20/1623
loop3      7:3    0   103M  1 loop /snap/lxd/23541
loop4      7:4    0    47M  1 loop /snap/snapd/16292
loop5      7:5    0     4K  1 loop /snap/bare/5
loop6      7:6    0  91.7M  1 loop /snap/gtk-common-themes/1535
loop7      7:7    0 143.4M  1 loop /snap/chromium/2136
loop8      7:8    0 346.3M  1 loop /snap/gnome-3-38-2004/119
xvda     202:0    0     8G  0 disk 
├─xvda1  202:1    0   7.9G  0 part /
├─xvda14 202:14   0     4M  0 part 
└─xvda15 202:15   0   106M  0 part /boot/efi
ubuntu@ip-172-31-12-110:~$

現在の容量は「xvda」が「8G」と表示されています。

再度ボリュームの容量確認

ubuntu@ip-172-31-12-110:~$ lsblk
NAME     MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0      7:0    0  25.1M  1 loop /snap/amazon-ssm-agent/5656
loop1      7:1    0  55.6M  1 loop /snap/core18/2560
loop2      7:2    0  63.2M  1 loop /snap/core20/1623
loop3      7:3    0   103M  1 loop /snap/lxd/23541
loop4      7:4    0    47M  1 loop /snap/snapd/16292
loop5      7:5    0     4K  1 loop /snap/bare/5
loop6      7:6    0  91.7M  1 loop /snap/gtk-common-themes/1535
loop7      7:7    0 143.4M  1 loop /snap/chromium/2136
loop8      7:8    0 346.3M  1 loop /snap/gnome-3-38-2004/119
xvda     202:0    0    32G  0 disk 
├─xvda1  202:1    0   7.9G  0 part /
├─xvda14 202:14   0     4M  0 part 
└─xvda15 202:15   0   106M  0 part /boot/efi
ubuntu@ip-172-31-12-110:~$

再度確認すると「xvda」が「32G」と表示されています。
ディスクサイズが大きくなったことを確認できたので、ルートパーティションのサイズも変更します。

ubuntu@ip-172-31-12-110:~$ sudo growpart /dev/xvda 1
CHANGED: partition=1 start=227328 old: size=16549855 end=16777183 new: size=66881503 end=67108831
ubuntu@ip-172-31-12-110:~$

次にファイルシステムもリサイズします。

ubuntu@ip-172-31-12-110:~$ sudo resize2fs /dev/xvda1
resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/xvda1 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 4
The filesystem on /dev/xvda1 is now 8360187 (4k) blocks long.

ubuntu@ip-172-31-12-110:~$

これで作業は完了です。

最終確認

ubuntu@ip-172-31-12-110:~$ lsblk
NAME     MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0      7:0    0  25.1M  1 loop /snap/amazon-ssm-agent/5656
loop1      7:1    0  55.6M  1 loop /snap/core18/2560
loop2      7:2    0  63.2M  1 loop /snap/core20/1623
loop3      7:3    0   103M  1 loop /snap/lxd/23541
loop4      7:4    0    47M  1 loop /snap/snapd/16292
loop5      7:5    0     4K  1 loop /snap/bare/5
loop6      7:6    0  91.7M  1 loop /snap/gtk-common-themes/1535
loop7      7:7    0 143.4M  1 loop /snap/chromium/2136
loop8      7:8    0 346.3M  1 loop /snap/gnome-3-38-2004/119
xvda     202:0    0    32G  0 disk 
├─xvda1  202:1    0  31.9G  0 part /
├─xvda14 202:14   0     4M  0 part 
└─xvda15 202:15   0   106M  0 part /boot/efi
ubuntu@ip-172-31-12-110:~$

ルートパーティションもサイズが増えていることが判ります。念のため異なる方法でも確認しておきましょう。

ubuntu@ip-172-31-12-110:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        31G  3.3G   28G  11% /
tmpfs           484M     0  484M   0% /dev/shm
tmpfs           194M  904K  193M   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
/dev/xvda15     105M  5.3M  100M   5% /boot/efi
tmpfs            97M  4.0K   97M   1% /run/user/1000
ubuntu@ip-172-31-12-110:~$

「/dev/root」の容量が大きくなってます。これで OK です。

まとめ

今回はAmazon EC2 上の Ubuntu 22.02 のディスクを拡張する方法について紹介しました。
あっさりとディスク容量を拡張できたのでビックリしました。次回からは難なくできそうです。