AWS EC2でEBSを利用(Ubuntu)

Pocket

アマゾンの公式フィファレンスです。
Amazon EBS

EC2インスタンスへはubuntuユーザーでログインすると仮定します。

EBSはブロックデバイスとしてEC2インスタンスへマウントします。
ブロックデバイスはlsblk(list block device)で確認できます。

$ lsblk

NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0   8G  0 disk 
└─xvda1 202:1    0   8G  0 part /

上記例ではxvda1のMOUNTPOINTが/です。
つまりxvda1がルートデバイスとしてマウントされています。
t2.smallのルートデバイス(/dev/xvda1)のサイズは8Gです。

デバイスのファイルシステムはfileコマンドで表示できます。

$ sudo file -s /dev/xvda1

/dev/xvda1: Linux rev 1.0 ext4 .....(省略)

xvda1のファイルシステムはext4です。

EBSのアタッチとマウント

EC2インスタンスへubuntuユーザーでログインします。
カレントディレクトリはホームディレクトリ(/home/ubuntu)とします。

AWS マネジメントコンソール
EC2 > ELASTIC BLOCK STORE > ボリュームの作成

  1. AWS マネジメントコンソールで新規ボリューム作成します。
  2. AWS マネジメントコンソールでボリュームをEC2インスタンスへアタッチします。
  3. シェルのlsblk(list block device)コマンドでアタッチされていることを確認します。
    新しくアタッチしたボリュームのデバイス名はEC2により命名されます(例 xvdf)。
  4. シェルのfileコマンドでファイルシステムを確認します。
    新規にアタッチしたデバイスはファイルシステムがまだ作成されておらず/dev/xvdf: dataと表示されます。
  5. シェルのmkfsコマンドでファイルシステムを作成します。
    $sudo mkfs -t ext4 /dev/xvdf
  6. シェルのmkdirコマンドでデバイスをマウントするディレクトリを作成します。
    例では/dataディレクトリを作成します(以下 /dataを作成したとして進めます)。
    作成したディレクトリをデバイスのエンドポイントと言います。
    $ sudo mkdir /data
  7. シェルで/dataの所有者、グループ、アクセス権を変更します。
    $ sudo chown ubuntu /data
    $ sudo chgrp ubuntu /data
    $ sudo chmod 755 /data
  8. シェルのmountコマンドでデバイスをマウントします。
    $ sudo mount /dev/xvdf /data
  9. システムブート時に常にEBSボリュームをマウントするよう、
    /etc/fstabファイルを編集します(編集前にコピーを作成してください)。
    fstab(file system table)ファイルへ/dev/xvdfを追加します(※)。
  10. mount -aコマンドでfstabの編集が正しいことを確認します。
    fstabの編集に誤りがあるとブートできなくなる可能性があります。
    $ sudo mount -a
  11. EC2 インスタンスを再起動します。

(※)下記のように追加しました。

/dev/xvdf       /data   ext4    defaults,nofail,nobootwait        0       2 

注意

EC2のデフォルトのfstabは以下の記載があります。

/dev/xvdb       /mnt    auto    defaults,nobootwait,comment=cloudconfig 0       2

そのため mount -aコマンドを実行するとエラーが出ますがブートできました。

mount: special device /dev/xvdb does not exist

EBS アンマウント

$ umount /dev/xvdf

人気記事 はてなブックマーク

この日記のはてなブックマーク数