Amazon EBS~ボリュームサイズを小さくしてみよう。ボリュームサイズダウン編~

こんにちは!中の人です。

今回は『Amazon EBS~ボリュームサイズを小さくしてみよう。ボリュームサイズダウン編~』と題して、一度作成したEBSボリュームのサイズを小さくする方法について紹介します。

その他のEBSに対する操作は以下を参考にして下さい。
ボリュームサイズを大きくする: Amazon EC2編~EBSボリュームサイズを変更してみよう!~
ボリュームをマウント(追加)する:Amazon EC2編~EBSボリュームを追加してみよう!~

・ サイズダウン前のEBSボリュームを作成
・ サイズダウン後となる空のEBSボリュームの作成
・ 上記2つを別のEC2にマウント
・ 「サイズダウン前」⇒「サイズダウン後」にrsyncでデータコピー
という流れとなります。

サイズ変更するデータによりrsyncにかかる時間が大きく時間が変わってきます。
数十GB以上ある場合は数時間かかる事を見込んでやって下さい。

それでは実際に、EBSボリュームのサイズダウンを行っていきましょう!
今回は120GBのEBSを100GBに変更します。

Management Console

◯サイズダウン前のEBSボリュームを作成

1.サイズダウン前のEC2からスナップショットを作成します。
EC2 > Volumesから対象となるインスタンスのVolumeを選択し、右クリックメニューから「Create Snapshot」をクリックします。
20131112_04_001

20131112_04_002

2.EC2 > Snapshotへ移動し、作成されたSnapshotからイメージを作ります。
20131112_04_003

3.この時には100GBを入力しても登録できないことが確認できます。
20131112_04_004

◯サイズダウン後のEBSボリュームを作成

4.EC2 > Volumesへ移動し、100GBの空のEBSを作成します。
Snapshotを選択しないことで空のEBSを作成することが出来ます。
20131112_04_005

5.2つのアタッチされていないボリュームが作成できたことを確認して下さい。
20131112_04_006

◯上記2つのEBSボリュームを別のEC2にマウント

6.ボリュームをマウントするためのEC2を立ち上げます。
rsyncを行うことが目的なので、既に起動しているEC2でも問題はありません。

7.起動したEC2に対して、作成済みの2つのボリュームをアタッチします。
20131112_04_007

20131112_04_008

「Note: Newer linux kernels may rename your devices to /dev/xvdf through /dev/xvdp internally, even when the device name entered here (and shown in the details) is /dev/sdf through /dev/sdp.」という注意書きの通り、ここでは/dev/sd*というDevice名で登録しますが、サーバ上では/dev/xvd*の様に表示されます。

サーバにログインして操作

◯「サイズダウン前」⇒「サイズダウン後」にrsyncでデータコピー

8.上記のEC2に対してログインして下さい。
以後の操作はsuper userで行うか、sudo を付けて実行して下さい。

ログイン時には1つ(/dev/xvda1)しかボリュームがありません。

9.「サイズダウン前」「サイズダウン後」をマウントするためのディレクトリを作成します。

10.ダウンサイズ後のEBSにはファイルシステムが無いので、既存と同じEXT4でファイルシステムを作成します。

※/dev/xvdfでも問題ありません。

11.作成したファイルシステムを/small側にマウントします。

12.ダウンサイズ前のEBSもマウントします。

13.ボリュームがマウントされているか確認します。

100GBと120GBのボリュームがマウントされていることが確認できます。

14.ダウンサイズ前のファイルシステムのラベルを確認し、ダウンサイズ後のラベルを変更します。

15.※この操作は非常に時間がかかります。容量によりかなりの時間がかかりますので、気長に本でも読みましょう。
rsyncを使ってマウントした2つのディレクトリを複製します。

-a -rlptgoD と同義で、属性やグループなどを維持する
-x ファイルシステムの境界を横断しない
※-vをつけると非常に膨大なログとなるためつけていません。

16.rsyncが完了したら2つのEBSをアンマウントします。

Management Console

17.Management Consoleにログインし、EC2 > Volumesへ移動し先ほどアタッチした2つのボリュームをdetachします。
20131112_03_009

18.detachしたボリュームから「Create Snapshot」をクリックします。
20131112_03_010

19.EC2 > Snapshotに移動し、作成したスナップショットから「Create Image from Snapshot」を選択します。
20131112_03_011

20.EC2 > AMI に移動し、作成したイメージから起動します。

いかがでしたでしょうか?

サイズアップに比べると面倒ではありますが、不要なボリュームはサイズダウンすることによってコストダウンできるので、必要に応じて実施しましょう。

——————————————————————————————————
ナレコムクラウドのFacebookに『いいね!』をクリックして頂くと
最新のお役立ちレシピが配信されます★


┏━━━━━━━━━━━━━┓

┃ナレコムクラウド Facebook┃
┗━━━━━━━━━━━━━┛
——————————————————————————————————

この記事を書いた人

aws-recipe-user