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

2026年6月10日

はじめに

「AWSコンソール上でEBSボリュームのサイズを変更する操作自体は難しくないけれど、その後にOS側で何をすればいいのか分からない」——そう感じたことはないでしょうか。EBSボリュームのサイズ拡張は、コンソールでの操作とEC2シェル側での作業がセットになっており、片方だけでは反映されません。

本記事では、EC2上のUbuntuを再起動させることなくEBSボリュームのサイズを拡張する手順を、コンソール操作からパーティション・ファイルシステムの拡張までまとめて解説します。

本記事は以下のAWS公式ドキュメントの内容をベースにしています。正確な手順は必ず公式ドキュメントもあわせてご確認ください。

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

EC2のEBSボリュームを拡張する4つの手順

EBSボリュームのサイズ拡張は、バックアップの取得AWSコンソールでのボリューム拡張パーティションの拡張ファイルシステムの拡張、という4つの手順で進めます。

1. EC2のバックアップを取得する

課題:ボリューム拡張の手順を誤ると、データを失うリスクがある。
解決策:作業前に必ずEC2のバックアップ(スナップショット)を取得しておく。

バックアップを取っておけば、手順に誤りがあった場合でもリカバリーができます。EBSのスナップショットだけでも構いませんが、EC2ごとバックアップする場合は以下の記事を参考にしてください。

2. AWSコンソールからEBSボリュームを拡張する

課題:AWSコンソール上でボリュームサイズを変更する操作自体は難しくないが、どの画面を操作すればいいのか分かりにくい。
解決策:EC2のストレージページでボリュームIDを確認し、EBSのボリュームページから「ボリュームの変更」でサイズを変更する。

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

EC2インスタンスにアタッチされているEBSボリュームIDを確認する画面

次に、EBSのボリュームページに移動し、該当のボリュームを探します。

EBSボリューム一覧から該当のボリュームを探す画面

該当のボリュームが見つかったら、アクションメニューから「ボリュームの変更」を選択します。

EBSボリュームのアクションメニューから「ボリュームの変更」を選択する画面

開いたメニューの中にある「サイズ」の値を変更したいサイズにし、右下の変更ボタンをクリックします。サイズは増やすことはできますが、減らすことはできない点に注意してください。

EBSボリュームの変更画面でサイズを入力する

変更内容を確認するダイアログが表示されるので、「はい」をクリックするとAWS内で変更作業が開始されます。

EBSボリュームのサイズ変更を確認するダイアログ

サイズの拡張が完了するまで待ちます。ステータスはEBSボリュームの「状態」欄で確認でき、緑色の “in-use" になれば完了です。これでAWSコンソール上での作業は完了です。

EBSボリュームの状態が「in-use」になり拡張が完了したことを示す画面

3. EC2シェルからパーティションを拡張する

課題:AWSコンソールでボリュームサイズを変更しても、OS側のパーティションサイズは自動的には変わらない。
解決策:“growpart" コマンドでパーティションを拡張する。利用しているEBSがnvmeタイプかどうかでコマンドが異なる点に注意する。

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

ボリューム拡張前の df -hT と lsblk の実行結果(8GBの状態)

以下が、AWSコンソールでEBSボリュームのサイズを変更した後の状態です。"df -hT" の結果は変わっていませんが、"lsblk" で見える結果が変化していることが分かります。

ボリューム拡張後の df -hT と lsblk の実行結果(ボリュームのみ拡張されパーティションは未拡張)

“lsblk" の結果から、ボリュームは拡張されているものの、パーティションはまだ拡張されていないことが分かります。xvdaがボリューム、xvda1がパーティション名です。

拡張すべきパーティションは /dev/xvda1 なので、以下のコマンドでパーティションを拡張します。利用している環境のEBSがnvmeタイプかどうかでコマンドが異なるため、必ず確認してください。

sudo growpart /dev/xvda 1

コマンドを実行すると、"df -hT" の結果は変わりませんが、"lsblk" の結果からパーティションのサイズが拡張されていることが確認できます。

growpart実行後のlsblkの実行結果(パーティションが拡張された状態)

4. EC2シェルからファイルシステムを拡張する

課題:パーティションを拡張しても、ファイルシステムのサイズはまだ反映されていない。
解決策:ファイルシステムの種類に応じたコマンド(ext4なら"resize2fs")でファイルシステムを拡張する。

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

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

sudo resize2fs /dev/xvda1

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

resize2fs実行後のdf -hTの実行結果(ファイルシステムが拡張された状態)

まとめ:EBSボリュームの拡張は「コンソール+OS側」のセット作業

本記事で紹介した手順をまとめます。

  • 作業前には必ずEC2のバックアップ(スナップショット)を取得する
  • AWSコンソールの「ボリュームの変更」でEBSボリュームのサイズを増やす(縮小は不可)
  • “growpart" コマンドでパーティションを拡張する(nvmeタイプかどうかでコマンドが異なる)
  • “resize2fs"(ext4の場合)などファイルシステムに応じたコマンドで拡張する

環境によって実行するコマンドが少しずつ異なるため迷いやすい部分ですが、流れを押さえておけばEC2を再起動せずにディスク容量を拡張できます。実施前には必ずバックアップを取得しておきましょう。