Amazon EC2インスタンスにAmazon EBSストレージをマウントする

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Amazon EBS(Elastic Block Store)とは

Amazon Elastic Block Store(EBS)は、Amazon EC2 インスタンスで使用するためのブロックレベルのストレージボリュームです。今回は、インスタンスにボリュームをアタッチし、マウントします。

Amazon EC2インスタンスを起動する

AWS Management ConsoleからAmazon Linux AMIのインスタンスを起動してみましょう。t1.microインスタンスを指定しました。ディスクの状態を確認します。

$ df
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/xvda1             8256952    920980   7252112  12% /
tmpfs                   305624         0    305624   0% /dev/shm

次に、Amazon EBSボリュームを作成して、このインスタンスにアタッチします。全てAWS Managemant Consoleから操作できます。

ファイルシステムを決める

新しくアタッチされたボリュームは、ファイルシステムが決まっていません。そこで、mkfsコマンドを使って指示をします。

$ sudo yum install xfsprogs -y
$ sudo mkfs.xfs /dev/sdt -f
meta-data=/dev/sdt               isize=256    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

ファイルシステムをマウントする

mountコマンドでファイルシステムをマウントします。

$ sudo mount -t xfs /dev/sdt /mnt/sdt
$ df
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/xvda1             8256952    924268   7248824  12% /
tmpfs                   305624         0    305624   0% /dev/shm
/dev/xvdt              1038336     32928   1005408   4% /mnt/sdt

もし、mountコマンドを実行した際に「mount: /dev/xvdt は マウント済か /mnt/sdt が使用中です」など表示されたらマウント先が何かしら使用中だと思いますので確認してみてください。1回ログアウトして再ログインすればプロセスが消えるかもしれません。

$ fuser -va /mnt/sdt/
                     USER        PID ACCESS COMMAND
/mnt/sdt/:           ec2-user   1153 ..c.. bash

使用中のプロセスが見えなくなったら問題なくマウントできると思います。

fstabで自動マウントする

新たにマウントしたファイルシステムは、そのままでは再起動時にリセットされてしまうため、起動時に自動的にマウントされるようにします。

$ sudo vi /etc/fstab

最後の行に追記します。

/dev/sdt /mnt/sdt xfs defaults 0 0

これでインスタンスを再起動(リブート)しても最初からマウント状態で使う事ができます。

アンマウントする

アンマウントも簡単です。

$ sudo umount /mnt/sdt
$ df
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/xvda1             8256952    924344   7248748  12% /
tmpfs                   305624         0    305624   0% /dev/shm

確かに一覧から消えました。fstabからも記述を消せば自動的にマウントされなくなります。その後、デタッチすれば、他のインスタンスにアタッチして使う事もできます。

まとめ

Amazon EC2を動かしながら、追加でAmazon EBSを動的に割り当てられることが分かりました。インスタンスに何かしら問題があって落ちてしまっても、追加のAmazon EBSを使うよって永続データとして保持することができ、必要に応じて他のインスタンスに移動して使う事ができることが分かりました。Amazon EBSの使い方と使いどころを理解して、Amazon EBSマエストロを目指しましょう!

参考資料

Amazon Elastic Block Storage(EBS)