【AWS】EBSボリュームの拡張方法

EC2でインスタンスを立ち上げる時にデフォルトのままだとEBSのボリュームサイズは8GBになります。簡単なアプリならこれで十分なのですが、少し足りなくなってきたので16GBに拡張してみました。

はじめに

拡張手順としては3ステップありました。(ほぼ公式のマニュアル手順通り)

  1. ボリュームの変更をリクエストする
  2. パーティションを拡張する
  3. ファイルシステムを拡張する

パソコンのHDDのフォーマットやパーティションをいじったことがある方ならわかると思いますが、HDD全体のボリュームはパーティションで区切られ、その中にファイルシステム(NTFSやFAT32など)が構築されています。

なので、まず一番外側であるボリュームを先に拡張、次にパーティションを拡張し、最後にファイルシステムを拡張という手順になります。

1. ボリュームの変更をリクエストする

これはEC2のコンソールから簡単にできます。

拡張したいインスタンスを選択して、右上の「アクション」ボタンから「ボリュームの変更」を選択します。すると以下のような画面が出て来るので、ボリュームタイプとサイズを入力して「変更」ボタンを押します。

EC2 Management Console

その後すぐには反映されず、しばらく時間がかかります。進捗状況はインスタンスのステータスで確認できます。

2. パーティションを拡張する

反映されたら次にパーティションの拡張をします。

その前にファイルシステムの確認

ファイルシステムの表示

$ df -hT

hオプション:読みやすく単位を付ける。
Tオプション:タイプも表示する。

Filesystem    Type    Size    Used    Avail    Use%    Mounted on
/dev/xvda1    xfs      8.0G    7.2G    860M    90%     /

上記のように表示されます。Typeのところを確認しておきましょう。後のコマンドで使います。

ブロックデバイスの表示

$ lsblk

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

ボリュームxvdaが16Gなのにパーティションxvda1はまだ8Gになってますね。

パーティション拡張

以下のコマンドで拡張できます。

$ sudo growpart /dev/xvda 1

デバイス名とパーティション番号の間にスペースがあるので注意。

確認

$ lsblk

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

パーティションが拡張されました。では、ファイルシステムはどうなってるかもう一度確認してみましょう。

$ df -hT

Filesystem    Type    Size    Used    Avail    Use%    Mounted on
/dev/xvda1    xfs      8.0G    7.2G    860M    90%     /

まだ8GBのままですね。ファイルシステムの拡張をしましょう。

3. ファイルシステムを拡張する

ファイルシステムによってコマンドが変わります。df -hTコマンドで表示された「Type」を確認します。

CentOS7以降ではxfs、それ以前ではext4がデフォルトらしいです。

XFSの場合

$ sudo xfs_growfs -d /

dオプション:サポートされる最大サイズまで拡張する

「/」のところは、df -hTコマンドで表示されたマウントポイントを入力します。

ext4の場合

$ sudo resize2fs /dev/xvda1

確認

$ df -hT

Filesystem    Type    Size    Used    Avail    Use%    Mounted on
/dev/xvda1    xfs      16G    7.2G      2.9G    45%     /

16GBになりました!