AWS EC2のEBSボリューム拡張　（Amazon Linux 2）

# はじめに

AWSでEC2のインスタンスを作成する際、EBSのボリュームを使うことが多いかと思います。
インスタンスを運用しているうちに、EBSのボリュームを消費し、空き容量が不足することがあると思います。

そこで、EBSのボリュームを拡張し、空き容量を確保する方法をまとめます。
なお、ここでは、EC2作成時のイメージで、`Amazon Linux 2`を選択して作成したインスタンスでの方法をまとめています。

# 手順
## 空き容量の確認

`df`コマンドで、パーティションの容量を調べます。

```bash
[user@host ~]$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
devtmpfs         960M     0  960M    0% /dev
tmpfs            978M     0  978M    0% /dev/shm
tmpfs            978M   18M  960M    2% /run
tmpfs            978M     0  978M    0% /sys/fs/cgroup
/dev/nvme0n1p1    20G  8.1G   12G   41% /
tmpfs            196M     0  196M    0% /run/user/62100
tmpfs            196M     0  196M    0% /run/user/61000
```

```bash
/dev/nvme0n1p1    20G  8.1G   12G   41% /
```

`/dev/nvme0n1p1` が、EBSのボリュームです。
この例では、20GB中8GBを使っています。

ここでは、

## AWSマネジメントコンソールでEBS拡張

マネジメントコンソールで、`EC2`を開き、左ペインの`ボリューム`を選択、右側のリストから拡張したいボリュームを選択（チェック）します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/232077/e6b46a94-1240-3ace-8d95-e412dee9687e.png)

続いて、`アクション`→`ボリュームの変更`を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/232077/092ba4b5-577e-116b-40d5-246bd5f669cd.png)

ボリュームのサイズを変更し、「変更」ボタンで保存します。
※ここでは、もともと20GBだったものを、50GBに拡張します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/232077/dc94ba0f-d00f-1293-04e7-b1beac982cca.png)

## SSHでインスタンスにログインし、拡張
### パーティションの確認

```bash
[user@host ~]$ lsblk 
NAME          MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1       259:0    0  50G  0 disk 
├─nvme0n1p1   259:1    0  20G  0 part /
└─nvme0n1p128 259:2    0   1M  0 part 
[user@host ~]$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
devtmpfs         960M     0  960M    0% /dev
tmpfs            978M     0  978M    0% /dev/shm
tmpfs            978M   18M  960M    2% /run
tmpfs            978M     0  978M    0% /sys/fs/cgroup
/dev/nvme0n1p1    20G  8.1G   12G   41% /
tmpfs            196M     0  196M    0% /run/user/62100
tmpfs            196M     0  196M    0% /run/user/61000
```

まだ拡張されていない様子です。

### `growpart`コマンド

```bash
[user@host ~]$ sudo growpart /dev/nvme0n1 1
CHANGED: partition=1 start=4096 old: size=41938911 end=41943007 new: size=104853471 end=104857567
```

### `xfs_growfs`コマンド

```bash
[user@host ~]$ sudo xfs_growfs /dev/nvme0n1p1
meta-data=/dev/nvme0n1p1         isize=512    agcount=26, agsize=524159 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1 spinodes=0
data     =                       bsize=4096   blocks=13106683, 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 5242363 to 13106683
```

### パーティション確認

```bash
[user@host ~]$ lsblk 
NAME          MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1       259:0    0  50G  0 disk 
├─nvme0n1p1   259:1    0  50G  0 part /
└─nvme0n1p128 259:2    0   1M  0 part 
[user@host ~]$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
devtmpfs         960M     0  960M    0% /dev
tmpfs            978M     0  978M    0% /dev/shm
tmpfs            978M   18M  960M    2% /run
tmpfs            978M     0  978M    0% /sys/fs/cgroup
/dev/nvme0n1p1    50G  8.1G   42G   17% /
tmpfs            196M     0  196M    0% /run/user/62100
tmpfs            196M     0  196M    0% /run/user/61000
```

これで、`/dev/nvme0n1p1`が50GBに拡張されました。