システム開発 /

AWSでEBSのルートボリュームサイズを拡張する方法

AWSのEC2インスタンスを利用時、ルートボリュームサイズを拡張したい場面が意外とあります。Amazon LinuxのAMIや現行世代のインスタンスタイプを使っていれば、AWSマネージドコンソール上からボリュームサイズを変更するだけで自動的にファイルシステム上の容量を拡張できます。

■ AWSマネージドコンソールのボリューム変更画面

20170910_01

しかし、旧世代のインスタンスAmazon Linux以外のAMIを使っていると、AWSマネージドコンソール上の操作のほか手作業が必要になります。今回は、ルートボリュームサイズを拡張するまでの手順をご紹介します。

 

■ 今回拡張したOSやインスタンス

OS CentOS release 6.2 (Final)
インスタンスタイプ

t1.microなどの旧世代インスタンスを使用
現行世代のインスタンスタイプについて

容量 AWSマネージドコンソールから10Gから20Gにボリュームを拡張済み
 

■ 作業の流れ

STEP1 lsblkコマンドで現在の情報を確認

STEP2 cloud-utils-growpartをインストール

STEP3 growpartコマンドを実行

STEP4 OSを再起動

STEP5 resize2fsコマンドでファイルシステムのサイズを変更

STEP1 lsblkコマンドでブロックデバイスの情報を表示

上記は、スナップショットを利用して、ボリュームサイズを10Gから20Gに変更してインスタンスにアタッチした結果です。ディスクデバイスのxvdeは20Gと表示されていますが、ルートパーテーションのxvde1は10Gなので、OSにこの容量を20Gと認識させる必要があります。

STEP2 cloud-utils-growpartをインストール

cloud-utils-growpartは、OS起動時にEBSのサイズに合わせてパーティションサイズを変更できる便利なツールです。Amazon LinuxのAMIには標準でインストールされていますが、今回はそれ以外のAMIを使っているので手動でインストールします。

※「STEP3 growpartコマンドを実行後」で必要になります。

上記モジュールをインストールしているにも関わらず「STEP3 growpartコマンドを実行後」でエラーになる場合は、以下のパッケージをインストールしてSTEP3をお試しください。

STEP3 growpartコマンドを実行

STEP4 OSを再起動

growpartコマンド実行後は、OSを再起動する必要があります。

STEP5 resize2fsコマンドでファイルシステムのサイズを変更

resize2fsコマンド を実行して以下のエラーが表示されるときは、「STEP4 OSを再起動」に戻った後、resize2fsコマンドを再度実行してみてください。

■ resize2fsコマンドでエラー

The filesystem is already 2620595 blocks long. Nothing to do!
 

■ lsblkコマンドとdf -hコマンドで構成とファイルシステムを確認

 

ブロックデバイス、ファイルシステム共に、20Gと認識されるようになりました。

この記事を書いた人

堀孝文

PAGE TOP