2013-03-05

Amazon EC2 ファースト・トライ (3) Amazon EBS にファイルを保存

上記の続き。Amazon EC2 ではインスタンスを停止すると、ファイルが消えるという。これに対して Amazon は EBS と S3 という二種類の外部ストレージ・サービスを持つ。上記スライドでは EBS が使われていたので、これを使ってみる。

EBS とは...

EBS は Elastic Block Store の略。Amazon S3 が単体で使えるストレージなのに対して、EBS は EC2 と一緒に使うことが前提なストレージか。EBS の特徴は Amazon の公式ページに詳しい。

ボリューム・タイプは 2 つ。「スタンダード・ボリューム」と「プロビジョンド IOPS ボリューム」。前者はコスト重視、後者はパフォーマンス重視。

費用はスタンダード・モデルで 1 GB ごとに月 0.1 ドル。ただし、値段は「リージョン」によって徴妙に変わる。米国バージニアでは $0.1 だけども、アジアパシフィック (東京) では $0.12 になる。微々たる違いだけど、あんまり言及してるサイトがなかった。

ぼくが使ってる無料利用枠では EBS が 30 GB 提供される。無料期間が終わると、30 * 0.12 = $3.6/月 となるので注意が必要かな。まだ Amazon Web Service を使い初めたばかりで右も左も分からない。一年後には何が最良なのか分かる様になってる... といいな。

ログインして確認

前のエントリーでインストールした Apache がまだあるかどうか確認。

$ ls /etc/init.d/httpd
/etc/init.d/httpd

あれ、あるね。

試しにホーム・ディレクトリーに foo.txt を作成して、インスタンスを停止・開始してみる。

$ touch foo.txt

EC2 のダッシュボードから、インスタンスを停止。その後、開始。再ログイン。

$ ls
foo.txt

う〜ん、これは、どういうことかな? スライドの説明を読むと

今回立ち上げたEC2インスタンスのAMIは、仮想外部ディスク(EBS)を伴うAMI(EBS-bootと呼ばれる)なので...

というあたりが肝かな? 最初から EBS を使ってる?!

そうじゃないモデルを選んだ場合は、ファイルが消えるのかな。後でまた調べよう。

EBS のアタッチ

EC2 のダッシュボードから「Volumes」タブを選択。すると、一つ何か Volume が動いてる。スライドの説明だと、ここから State が Available な Volume をアタッチするんだけど、ぼくの手元では State が既に in-use になっていて「Attach Volume」なる選択肢が出ない。

テストなんで、新しくボリュームを作ってみる。

左上の「Create Volume」をクリック。最小 1 GB のボリュームを作る。

新しく作ったボリュームは State が available なまま。右クリックから「Attach Volume」を選択。古い Volume のチェックを外すのがコツ。そうしないと、右クリックしても「Attach Volume」が現れない。

インスタンスを指定。Device が /dev/sdf なことを確認。「Yes, Attach」をクリック。

State がすぐに in-use になった。

インスタンスから作成したボリュームにアクセスできるようにする。手順は次の通り:

  1. ファイル・システムの作成
  2. マウント用ディレクトリーの作成
  3. マウント
$ sudo mkfs -t ext4 /dev/sdf
mke2fs 1.42.3 (14-May-2012)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376

Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

$ sudo mkdir /ebs
$ sudo mount /dev/sdf /ebs

/dev/sdf を ext4 でフォーマット。/ebs にアクセス・ポイントを作って、mount コマンドでマウント。

これで EBS で作った新しいボリュームに /ebs からアクセスできる。EBS が壊れない限り、/ebs 以下に置いたファイルは削除されない。

あとがき

EBS の正体が分からずに困った。今も、実は良く分かっていない。とりあえず、無料期間は最大 30 GB のファイル・ストレージを持てたということで納得しよう。

No comments:

Post a Comment