EBSボリュームをEC2インスタンスに接続する方法

起動中のEC2インスタンスにEBSボリュームをアタッチとマウントをする方法をご紹介します。


1. EBSボリュームをEC2インスタンスにアタッチ(Attach)を行う

AWS Management Console(GUI)での方法:

a. EC2のタブを開いて、左のメニューからVolumesを選択
b. アタッチしたいEBSボリュームをメインメニューから選択し、右クリックからAttach Volumeを選択
c. Instancesの枠からボリュームをアタッチする先のインスタンスを選ぶ
d. Devicesの枠ではアタッチするボリュームのデバイス名をつける。(/dev/sdf から /dev/sdp の間が有効)

EC2 API Tools(CLI)での方法:

a. 下記のコマンドでボリュームをインスタンスにアタッチすることになる
ec2-attach-volume (ボリュームID) –instance (インスタンスID) –device (デバイス名)

これでEC2インスタンスにEBSボリュームがアタッチされました。しかしこのままだとインスタンスにアクセスしてもEBSボリュームにアクセスすることはできません。マウント作業を行う必要があります。

注意点:最新のAmazon Linuxに/dev/sd[f-p]としてアタッチした場合、実際には/dev/xvd[f-p]というデバイス名に切り替わります。

2. EBSボリュームをEC2インスタンスにマウント(Mount)する

a. インスタンスにsshでログインする
b. fdiskのコマンドでボリュームがデバイスとして認識されているか確認する
sudo fdisk -l
c. mountのコマンドでデバイスを特定のディレクトリにマウントする
mkdir /mnt/data
sudo mount /dev/xvdf /mnt/data
注意点:
新しく作成したEBSボリュームを使っている場合、ボリュームがフォーマットされていないため、下記のようなエラーが出てマウントできません。なので、まずはmkfsを使ってボリュームのフォーマットを行いましょう。
$ sudo mount /dev/xvdf /mnt/data
mount: you must specify the filesystem type

$ sudo yum install xfsprogs

Running Transaction
Installing : xfsprogs-3.1.3-1.7.amzn1.i686 1/1
Installed:
xfsprogs.i686 0:3.1.3-1.7.amzn1

Complete!

$ sudo mkfs.xfs /dev/xvdf meta-data=/dev/xvdf isize=256 agcount=4, agsize=1966080 blks
= sectsz=512 attr=2
data = bsize=4096 blocks=7864320, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0
log =internal log bsize=4096 blocks=3840, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0

$ sudo mkfs.ext3 -b 4096 /dev/xvdf mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1966080 inodes, 7864320 blocks
393216 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
240 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 34 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

$ sudo mount /dev/xvdf /mnt/data
$
これで ls -l /mnt/data をすると、EBSボリュームの中身が表示されるかと思います。

この状態でインスタンスに再起動又はstop/startが起きると、マウントしていない状態で立ち上がってくることになります。これを今後自動的にマウントされるためにfstabファイルに記入する必要があります。

3. fstabファイルにマウント情報を記入する

a. まずmountコマンドでボリュームのフォーマットタイプを確認します
# mount
/dev/xvda1 on / type ext4 (rw,noatime)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/xvdf on /mnt/main type ext4 (rw)
/dev/xvdg on /mnt/data type xfs (rw)
/dev/xvdi on /mnt/data2 type ext3 (rw)
/dev/xvdj on /mnt/data3 type ext3 (rw)
/dev/xvdl1 on /mnt/data4 type ext4 (rw)
b. fstabファイルに下記のような情報を記入すれば、Linux再起動後も自動的にマウントされて起動されます。
# vi /etc/fstab
#
LABEL=/     /           ext4    defaults,noatime  1   1
tmpfs       /dev/shm    tmpfs   defaults        0   0
devpts      /dev/pts    devpts  gid=5,mode=620  0   0
sysfs       /sys        sysfs   defaults        0   0
proc        /proc       proc    defaults        0   0
/dev/sda3       none    swap    sw,comment=cloudconfig  0       0
/dev/xvdf   /mnt/data   ext4    noatime         0   0

About tkobayashi

#aws #cloud #programming #web #ninja #gym #movies #scuba #twoandahalfmen http://www.koba206.com
This entry was posted in amazon web services and tagged , . Bookmark the permalink.

Comments are closed.