EBSボリュームの増加方法



# 概要
EC2を立てたあと、稼働中であろうとEBSは増強することが可能である。
しかしコンソールから設定しただけではEBSを増強したことにはならない。OSに増えた分を認識させる必要がある。
インスタンスタイプt2.microを必要最低限の設定で立ち上げたEC2を題材として、EBSの追加方法を記す。

# 結論
以下の通りにコマンドを打てばよい。

```add_EBS.sh
# 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コマンドは現在使用可能なブロックデバイス一覧を表示するコマンド。
パーティションの状態やストレージの構成、デバイス番号等を把握するためのもの。

```check_before_add_volume.sh
$ 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の画面を開き、左メニューからボリュームを選択。
その後増やしたいボリュームを選択し、アクション▶︎ボリュームの変更を選択。

<img width="732" alt="1.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/550851/37e13fb7-b6f3-55c6-e61a-0df7dd772e42.png">

次に増やしたい量だけボリュームの値を入力する。今回はデフォルトの8から100へと変更した。

Volume Typeという、EBSの種類を変更することも可能。
Volume Type一覧は[こちら](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ebs-volume-types.html)から。

<img width="689" alt="“ここに好きな文言を設定” 2020-01-16 1.33.06.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/550851/1978e6a6-a9d1-96a4-c40a-9c842d30badd.png">

ディスクサイズを確認してみる。
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の世代によって打つべきコマンドが変わる。

第四世代の場合

```add_volume.sh
$ sudo resize2fs /dev/xvda1
```

第五世代以降の場合
(Cent OS7からデフォルトになったXFSはresize2fsが使えないため以下を使う。)

```add_volume.sh
$ 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
```

おしまい