0

EBSをバックアップとして使う

EC2のインスタンスのバックアップは前回の通りS3にイメージ化して保存しておくのがいいと思うけど、/mnt以下のイメージ化の対象外ファイルをバックアップするにはEBSの方が便利です。
EC2とS3の関係はそんな密なものでもなく、EC2にS3を直接マウントすることができません。(擬似的には可能かも)
しかもS3へのアクセスはhttp経由ということでrsyncも使えず速度が遅い。

そもそもEBSが何かというと外付け可能な永続的ブロックストレージです。わかりやすく言うとUSB接続の外付けハードディスクみたいなものです。
料金はインスタンスにマウントするしないに関わらず、EBSを借りた時点で1Gにつき一ヶ月当たり$0.1 + 100万リクエストにつき$0.1です。

一度マウントしてしまうと後はローカルドライブ同様に扱えます。
EBSの素晴らしいところは、一旦アンマウントして別のインスタンスにデータはそのままマウントすることが可能ということ。
これで万が一カーネルパニックでインスタンスが動かなくなってもデータの救出が可能です。
但し、一つ残念なのが同時に複数からのマウントはできません。これができたらNFSとも決別できて、かなり幸せになれそうだけど現時点では不可能です。
直接データをEBSに保存してもいいと思うけど、私の場合、データは/mntに保存しておいて定期的にEBSにrsyncしてバックアップストレージとして使っています。

使い方

扱い方は以下の通り。今回はAWS management consoleを使ってます。
ELASTIC BLOCK STORE→ Volumes → create Volumeを選択
Sizeは1G以上、Availability ZoneはEC2のインスタンスのゾーンと合わしておく。

しばらくしてStatusが「available」になれば使用可能です。

次の作成したこのボリュームをインスタンスに関連付けします。
上メニューのAttach Volumeを選択するだけです。

Instancesを関連付けたインスタンスをDeviceを適当なものに(本例では/dev/sdb)を選択。

これでAWS management consoleの設定が終了。
残念ながらこの時点ではマウントする準備が出来ただけです。
続けてECのインスタンスでの作業です。

# mkfs -t ext3 /dev/sdb
ke2fs 1.40.4 (31-Dec-2007)
/dev/sdb is entire device, not just one partition!
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
26214400 inodes, 52428800 blocks
2621440 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
1600 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872
 
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.

ディレクトリを生成
# mkdir /vol

マウント実行
# mount /dev/sdb /vol

確認
# df -h
Filesystem サイズ 使用 残り 使用% マウント位置
/dev/sda1 9.9G 5.8G 3.6G 62% /
/dev/sda2 147G 38G 102G 27% /mnt
none 854M 0 854M 0% /dev/shm
/dev/sdb 197G 188M 187G 1% /vol

これでマウントは完了です。
あとは必要に応じてバックアップ用rsyncのcron設定する。
0 */3 * * * rsync -avz --delete /mnt /vol/backup/ 1> /dev/null

大阪のWEB屋です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です