AWS EC2にアタッチしているEBSボリュームのサイズを拡張する

はじめに

本記事ではEC2上で利用しているUbuntu OSにおいて、EC2を再起動させることなくEBSボリュームのサイズを拡張する方法について説明します。

AWSコンソール上でEBSボリュームのサイズを変更することはそれほど難しくありませんが、その後の順序がよくわからない、という方向けの記事となります。

基本的にはAWSのこちらのページの内容となりますので、ご自身でも必ず内容の確認をお願い致します。

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/recognize-expanded-volume-linux.html

実施方法

EC2のバックアップの取得

バックアップを取っておけば、何か手順に誤りがあった時にでもリカバリーが出来ますので、必ず取得しておくようにしておきましょう。EBSのスナップショットで良いですが、EC2毎バックアップする場合にはこちらの記事を参考にして頂くのが良いかと思います。

AWSコンソールからEBSボリュームの拡張

まず拡張したいEBSボリュームIDをEC2にアタッチしているストレージのページから確認しましょう。

次にEBSのボリュームページに移動し、該当のボリュームを探してください。

該当のボリュームが見つかったらアクションのメニューから「ボリュームの変更」を選択・クリックして下さい。

開くメニューの中にサイズという項目がありますので、こちらの値を変更したいサイズにし、右下の変更ボタンをクリックして下さい。尚、サイズは増やすことが出来ますが、減らすことは出来ませんのでご注意下さい。

ここで、本当に変更するかどうかの確認が入ります。はい、をクリックするとAWS内で変更の作業が開始されます。

ここでサイズの拡張が完了するのを待ちます。ステータスはEBSボリュームの「状態」という項目で確認が可能です。この「状態」が緑色の"in-use"になるまで待ちましょう。

これでAWSコンソール上での作業は完了です。

EC2シェルからパーティションの拡張

少し順番が前後しますが、以下がAWSコンソール上でEBSのボリュームサイズを変更する前の状態となります。ファイルシステムのサイズ(/dev/root)が7.7G、EBSボリュームのサイズが8Gとなっていることがわかります。

以下が上記で説明した、AWSコンソールでEBSのボリュームサイズを変更した後の状態となります。"df -hT"のコマンド結果は変わっていませんが、"lsblk"で見える結果が異なっていることに気が付けるかと思います。

この"lsblk"のコマンド結果により、ボリュームは拡張されているが、パーティションが拡張されていないということが確認出来ます。xvdaがボリューム、xvda1がパーティション名と考えて頂くのが良いと思います。

この時、拡張すべきパーティションは/dev/xvda1となりますので、以下のコマンドを使ってパーティションを拡張します。ここで、ご使用されている環境のEBSがnvmeと呼ばれるタイプのものかどうかでコマンドが異なりますのでご注意下さい。

コマンド

sudo growpart /dev/xvda 1

コマンドを打った後、"df -hT"のコマンド結果は変わっていませんが、"lsblk"のコマンド結果により、パーティションのサイズが拡張されていることが確認出来るかと思います。

パーティション拡張の説明は以上となります。次はファイルシステムの拡張です。

EC2シェルからファイルシステムの拡張

ここではファイルシステムの拡張を実施します。最初にファイルシステムの種類を確認します。"df -hT"のコマンド結果の中のrootボリュームが"ext4″であることがわかります。こちらもご使用されている環境により、実行するコマンドが変わってきますので、必ず確認してください。

ext4のファイルシステムの場合は以下のコマンドを実行します。

コマンド

sudo resize2fs /dev/xvda1

コマンドを実行した後、"df -hT"のコマンド結果でもファイルシステムのサイズが拡張されていることが確認できます。

こちらでEBSボリュームのサイズの拡張方法の説明は以上となります。

さいごに

本記事ではEC2を再起動させることなく、EBSボリュームのサイズ拡張の実施方法について説明致しました。環境により少しずつコマンドが異なりますので、少し悩んでしまう部分もありますよね。

実施前には必ず、バックアップを取得しておきましょう!

ではまた。