Amazon EBS を EC2 インスタンスから使用するための設定
[History] [Last Modified] (2015/05/10 01:48:15)
ここは
趣味のプログラミングを楽しむための情報共有サービス。記事の一部は有料設定にして公開できます。 詳しくはこちらをクリック📝
Recent posts
Popular pages

概要

EC2 インスタンスは OS などを格納するファイルシステムのために最低限一つの EBS (Elastic Block Store) ボリュームを必要とします。これを Root ボリュームとよびます。本ページでは Root EBS に加えてデータ格納用の EBS を EC2 インスタンスから利用するための設定をまとめます。

参考ページ

Amazon EBS ボリュームを使用できるようにする

ボリュームのアタッチ

EC2 インスタンス起動時または EC2 の Volumes メニューにある「Create Volume」から新規に EBS を作成します。Root デバイスとしては使用しないため作成時に Snapshot は指定しません。「Create Volume」から作成した場合は Actions → Attach でインスタンスに接続します。

$ lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0   8G  0 disk
└─xvda1 202:1    0   8G  0 part /
xvdb    202:16   0   8G  0 disk /mydata
xvdf    202:80   0   1G  0 disk  ← 今回 Attach した。'/' や '/data' にマウントされていない

上記コマンドで EC2 に接続されて認識できることを確認します。これは AWS コンソール上で確認できるデバイス名のエイリアスです。

$ ls -l /dev/sdf
lrwxrwxrwx 1 root root 4 May  6 04:32 /dev/sdf -> xvdf

ファイルシステムの作成 (危険)

過去のバックアップから作成した EBS ボリュームであったり Root デバイスの EBS ボリュームであったりする場合、本手順を実行するとデータが失われます。本手順は空の EBS ボリュームをデータ格納用に新規作成して Attach した直後に一回だけ行います。

確認方法

以下のコマンドで data とだけ表示されることを確認します。既存のファイルシステムが存在しないことを意味します。

$ sudo file -s /dev/xvdf
/dev/xvdf: data

ファイルシステムの作成

$ sudo mkfs -t ext4 /dev/xvdf

上記コマンドを実行すると以下の通りファイルシステムが作成されました。

$ sudo file -s /dev/xvdf
/dev/xvdf: Linux rev 1.0 ext4 filesystem data, UUID=7c0606a8-89c4-4ff6-9360-6a1f8aa65047 (extents) (large files) (huge files)

EBS ボリュームのマウント

マウントポイントを作成して mount コマンドを実行します。

$ sudo mkdir /data
$ sudo mount /dev/xvdf /data

使用できるようになりました。

$ ls /data
lost+found

アンマウントするためには以下のコマンドを実行します。'u'mount であって 'un'mount ではないことに注意してください。

$ sudo umount /data

起動時に自動でマウントされるように設定

EC2 インスタンスを停止すると EBS ボリュームがアンマウントされます。これは次回起動時に自動ではマウントされません。自動でマウントされるようにするためには /etc/fstab を編集します。

$ sudo cp /etc/fstab /etc/fstab.orig
$ sudo vi /etc/fstab

/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/xvdf   /data       ext4    defaults,nofail  0   2  ← これを追記して保存

以下のコマンドを実行してエラーが出力されなければ正常に設定されています。

$ sudo mount -a

補足

ボリュームをアタッチしていない状態で EC2 インスタンスを起動するとエラーになります。/etc/fstab に nofail を記載することでマウントせずにエラーなく起動できます。

Related pages
    概要 t2.micro に限らず AWS EC2 のインスタンスにはスワップ領域が確保されていません。コスト削減のために必要最小限の性能を備えたインスタンスタイプを選択してしまうと、メモリが不足して OOM Killer によってプロセスが kill されてしまう可能性が高い状態が継続して危険です。そこで、非常事態にはスワップできるように設定を行います。今回 t2.micro を利用していますが
    概要 HTTP の拡張である WebDAV を利用すると、サーバ上のファイルシステムを HTTP で外部に公開できます。Debian9 を利用した設定例を記載します。HTTP サーバとしては Apache を利用します。 Apache の設定 必要なパッケージをインストールします。 sudo apt install apache2