Amazon EC2(AWS) EBSボリューム(HDDの容量)の変更
良くありがちな手違いとして、新規でインスタンスを作成した場合、EBSの容量をデフォルトの7GBで作成してしまうことがあります。ある程度、構築が進んでから気付くなんてことも。ここでは、EBSボリュームの増やし方を説明します。
手順は下記になります。
- Apache、MySQLなどサービスの停止
- インスタンスの停止
- EBS(7GB)からスナップショットの作成
- スナップショットからEBS(50GB)を作成
- インスタンスに紐づいているEBS(7GB)をDetach
- スナップショットから作成したEBS(50GB)をAttach
- インスタンスの起動
- resize2fsコマンドでファイルシステムのサイズを変更する
1.Apache、MySQLなどサービスの停止
インスタンスを停止するため、稼働中のサービスを停止させます。他に稼働中のサービスがあったら、念のため停止しておいたほうが良いと思います。
2.インスタンスの停止
EBSの容量を拡張する為には、いったんインスタンスに紐づいているEBSをDetachする必要があります。EBSのDetachはインスタンスが停止している状態でないと行えません。
- AWS Management Consoleにログイン
- Instancesをクリック
- EBSの容量を変更したいインスタンスを選択し、右クリック
- Instance Lifecycleで「Stop」を選択
3.スナップショットの作成
- Volumesをクリック
- Create Snapshotをクリック
- NameにSnapshotの名前、Discriptionに説明を入れ、「Yes,Create」をクリック
4.Snapshotsから新しいEBSの作成
スナップショットの作成後、しばらくすると、「Snapshots」メニューに「Snapshots」が作成されます。
- Snapshotsをクリック
- Cleate Volume from Snapshotをクリック
- Sizeに希望する容量(50GBなど)を入力
- Availability Zone(ap-northeast-1*)には現在のEBS(7GB)が選択しているAvailability Zoneと同じものを選択
- 「Yes,Create」をクリック
5.インスタンスに紐付けるEBSの変更
インスタンスに紐づいているEBS(7GB)を外し[Detach]、新しく作成したEBS(50GB)を紐付けます[Attach]
- Volumesをクリック
- EBS(7GB)を選択し、Attachmentに表示されている内容をメモ(i-***** (test):/dev/sda1)
- Detach Volumeをクリック
- Yes, Detachをクリック
※Detachは削除ではなく、インスタンスとの紐付けを外すだけです。DetachしたEBSはavailableといったステータスで残ります。
- EBS(50GB)を選択し、Attach Volumeをクリック
- 紐付けるインスタンスをプルダウンから選ぶ
- Deviceには先ほどメモしたAttachmentの内容を記入(デフォルトの状態から操作をしていなければ、基本sda1)
- Yes,Attachをクリック
6.インスタンスの起動
- Instancesをクリック
- Instance Lifecycleで「Start」でインスタンスを起動
7.インスタンスの再起動で外れたElastic IPの紐付け
Elastic IPが外れているので、Elastic IPを紐付け直す。
8.resize2fsコマンドでファイルシステムのサイズを変更する
起動したインスタンスのサーバーへSSH接続。この状態でdf -hを実行しても、まだ容量は拡張されていません。
リサイズを実行する
[root@ip-**-***-*-*** ~]# resize2fs /dev/sda1
容量を再度確認する
[root@ip-**-***-*-*** ~]# df -h
以上でEBSが拡張されました。