EC2のEBSボリュームをresize2fsせずに拡張する

  • 1
    いいね
  • 0
    コメント

概要

EC2のEBSボリュームを拡張する(10G -> 90G)
EC2はすでに起動済みのものとする。

背景

EBSのボリュームを拡張したので、ファイルシステム拡張のコマンドを実行!

$ sudo resize2fs /dev/xvda1
The filesystem is already 8972864 blocks long.  Nothing to do!

パーティションの容量が少ないためディスクの拡張ができず、怒られてしまいました・・・。
Linux パーティションの拡張が必要そうですが、ちょっと手順が多い。

しかし、サイズをEBSのサイズをあらかじめ拡張し、スナップショットから新規作成することで
コマンドを実行せずともwebコンソールからディスクを拡張できたので手順をメモ。

事前準備

  • EC2で使用してるEBSのID、ルートデバイスの名前を控える。

スクリーンショット 2017-04-19 20.14.28.png

  • EC2のインスタンスID、アベイラビリティーゾーンを控える。

手順

EBSボリュームサイズを拡張する

※EC2を停止しなくても拡張できますが、拡張中は不安定になります。

ELASTIC BLOCK STORE > ボリューム > アクション > Modify Volume
Sizeの値を変更します。

スクリーンショット 2017-04-19 21.38.05.png

EBSボリュームのスナップショットを作成する

※EC2を停止しなくてもスナップショットを作成できますが、停止したほうが安全です。

ELASTIC BLOCK STORE > ボリューム > アクション > スナップショットの作成

EC2を停止する

以降の作業はEC2を停止しないと行えません。

EBSボリュームをEC2からデタッチする

ELASTIC BLOCK STORE > ボリューム > アクション > ボリュームのデタッチ

既存のEBSをデタッチします。

EBSボリュームのスナップショットから新しいボリュームを作成する

ELASTIC BLOCK STORE > スナップショット > アクション > ボリュームの作成

EC2と同じアベイラビリティゾーンにする必要があります。

スクリーンショット 2017-04-19 20.11.33.png

新規作成したEBSボリュームをEC2にアタッチ

ELASTIC BLOCK STORE > ボリューム > アクション > ボリュームのアタッチ

アタッチしたいEC2のインスタンスを選択します。
事前に控えておいたデバイスを入力します。

スクリーンショット 2017-04-19 20.24.48.png

EC2を起動

これで作業完了です!

ディスクボリュームが拡張されているか確認する

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

$ df -h
ファイルシス       サイズ  使用  残り 使用% マウント位置
/dev/xvda1            89G   84G   5G   18% /

最後に

使用していないEBSは削除しましょう!
EC2にアタッチしていなくても、料金がかかってしまいます。