CentOS 7でAmazon EBSのボリュームを拡張する

Amazon EC2インスタンスとしてCentOS 7を選んだ場合にAmazon Elastic Block Store（EBS）のボリュームを拡張する方法です。

本稿では以下の手順に従ってその方法を説明します。

1. Amazon EBSボリュームを拡張する
2. ブロックデバイス（/dev/xvda1）のサイズを拡張する

**確認した動作環境**

- OS（EC2インスタンス）: CentOS Linux release 7.3.1611 (Core)

## 前提条件
ファイルシステムは **CentOS 7標準の「XFS」** であることを前提とします。

ファイルシステムの種類は以下のコマンドを入力することで確認することができます。

```
$ df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/xvda1     xfs        16G   16G   0G  99% /
...
...
...
```

#### `df`コマンド

> df コマンドは、システムのディスク領域の使用量についての詳しいレポートを表示します。

[18.4. ブロックデバイスとファイルシステムの表示 - Red Hat Customer Portal](https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/system_administrators_guide/s1-sysinfo-filesystems)

`-T`はファイルシステムの種類を表示するオプションです。

## Amazon EBSボリュームを拡張する


### Amazon EBSボリュームの料金体系を確認する

Amazon EBSボリュームを拡張した場合、どれくらいの費用がかかるのかを事前に確認しておきましょう。

リージョンが「アジアパシフィック（東京）」の場合（2017年11月27日現在）

ボリューム                                 | 料金（ドル） | 料金（円） | 単位
--------------------------------------- | ------ | ----- | ------------------------------
Amazon EBS 汎用 SSD (gp2) ボリューム           | $0.12  | 12.6円（105円/ドルとした場合） | 1 か月にプロビジョニングされたストレージ 1 GB あたり

「Amazon EBS 汎用 SSD (gp2) ボリューム」の場合、I/Oはボリュームの料金に含まれているため、 **プロビジョニングした各ストレージのGBに対してのみ課金されます。**

最新の料金体系は「[料金 - Amazon Elastic Block Store（ブロックストレージ）｜AWS](https://aws.amazon.com/jp/ebs/pricing/)」から確認することができます。

### 「Amazon EC2 コンソール」からEBSのボリュームサイズを変更する

コンソールからEBSのボリュームサイズを変更する手順は
「[コンソールからの EBS ボリュームの変更 - Amazon Elastic Compute Cloud](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/console-modify.html)」から確認することができます。

これまでの手順でEBSのボリュームサイズを変更することができますが、続いてブロックデバイスのサイズを拡張する必要があります。

## ブロックデバイス（/dev/xvda1）のサイズを拡張する

### ブロックデバイスのサイズを確認する

以下のコマンドを入力してブロックデバイスのサイズを確認しましょう。

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

上記の例では`xvda1`のサイズが16Gであることが分かります。


#### `lsblk`コマンド

>lsblk コマンドを使用すると、利用可能なブロックデバイスの一覧を表示できます。

> 一覧表示された各ブロックデバイスについて lsblk コマンドが表示するのは次のとおりです。デバイス名 (NAME)、メジャーおよびマイナーデバイス番号 (MAJ:MIN)、リムーバブルデバイスかどうか (RM)、そのサイズ (SIZE)、読み取り専用デバイスかどうか (RO)、そのタイプ (TYPE)、デバイスのマウント先 (MOUNTPOINT) です。

[18.4\. ブロックデバイスとファイルシステムの表示 - Red Hat Customer Portal](https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/system_administrators_guide/s1-sysinfo-filesystems)

### ブロックデバイスを拡張する

それでは以下のコマンドを入力してブロックデバイスを拡張しましょう。

```
$ sudo xfs_growfs /dev/xvda1
```

#### `xfs_growfs`コマンド

> xfs_growfs コマンドを使用すると、マウント中の XFS ファイルシステムを拡大することができます。

> -D size オプションでファイルシステムを指定の size (ファイルシステムのブロック数) まで大きくします。 -D size オプションを指定しない場合、xfs_growfs はデバイスで対応できる最大サイズにファイルシステムを拡大します。

[6.4. XFS ファイルシステムのサイズの拡大 - Red Hat Customer Portal](https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/storage_administration_guide/xfsgrow)

もう一度以下のコマンドを入力してブロックデバイスのサイズを確認しましょう。

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

`xvda1`のサイズが16Gから32GBに変更されたことが分かります。

---

<a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="クリエイティブ・コモンズ・ライセンス" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/88x31.png" /></a><br />この 作品 は <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">クリエイティブ・コモンズ 表示 4.0 国際 ライセンス</a>の下に提供されています。