炊きたてのご飯が食べたい

定時に帰れるっていいね。自宅勤務できるっていいね。子どもと炊きたてのご飯が食べられる。アクトインディでは積極的にエンジニアを募集中です。

Amazon EC2(AWS) EBSボリューム(HDDの容量)の変更


良くありがちな手違いとして、新規でインスタンスを作成した場合、EBSの容量をデフォルトの7GBで作成してしまうことがあります。ある程度、構築が進んでから気付くなんてことも。ここでは、EBSボリュームの増やし方を説明します。

手順は下記になります。

  1. ApacheMySQLなどサービスの停止
  2. インスタンスの停止
  3. EBS(7GB)からスナップショットの作成
  4. スナップショットからEBS(50GB)を作成
  5. インスタンスに紐づいているEBS(7GB)をDetach
  6. スナップショットから作成したEBS(50GB)をAttach
  7. インスタンスの起動
  8. resize2fsコマンドでファイルシステムのサイズを変更する

1.ApacheMySQLなどサービスの停止

インスタンスを停止するため、稼働中のサービスを停止させます。他に稼働中のサービスがあったら、念のため停止しておいたほうが良いと思います。

2.インスタンスの停止

f:id:t-namikata:20160130130056p:plain

EBSの容量を拡張する為には、いったんインスタンスに紐づいているEBSをDetachする必要があります。EBSのDetachはインスタンスが停止している状態でないと行えません。

  • AWS Management Consoleにログイン
  • Instancesをクリック
  • EBSの容量を変更したいインスタンスを選択し、右クリック
  • Instance Lifecycleで「Stop」を選択

3.スナップショットの作成

f:id:t-namikata:20160130130120p:plain

  • Volumesをクリック
  • Create Snapshotをクリック
  • NameにSnapshotの名前、Discriptionに説明を入れ、「Yes,Create」をクリック

4.Snapshotsから新しいEBSの作成

f:id:t-namikata:20160130130133p:plain

スナップショットの作成後、しばらくすると、「Snapshots」メニューに「Snapshots」が作成されます。

  • Snapshotsをクリック
  • Cleate Volume from Snapshotをクリック
  • Sizeに希望する容量(50GBなど)を入力
  • Availability Zone(ap-northeast-1*)には現在のEBS(7GB)が選択しているAvailability Zoneと同じものを選択
  • 「Yes,Create」をクリック

5.インスタンスに紐付けるEBSの変更

f:id:t-namikata:20160130130146p:plain

インスタンスに紐づいている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.インスタンスの起動

7.インスタンスの再起動で外れたElastic IPの紐付け

Elastic IPが外れているので、Elastic IPを紐付け直す。

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

起動したインスタンスのサーバーへSSH接続。この状態でdf -hを実行しても、まだ容量は拡張されていません。

リサイズを実行する

[root@ip-**-***-*-*** ~]# resize2fs /dev/sda1

容量を再度確認する

[root@ip-**-***-*-*** ~]# df -h

以上でEBSが拡張されました。