Amazon EC2、EBS(Elastic Block Store)を使ってみた

2009/04/11

ただのWebデザイナーですが、
Amazon EC2をバーチャルドメインで運用 できちゃったりしたので、
「ITコスト削減、万歳!」と唱えながら昨夜は家路につきました。

そして達成感とともに、ようやく恐怖感も芽生えてきました。
だって、Amazon EC2 のインスタンスって、
シャットダウンさせるとディスク上のデータが消滅しちゃんだよ?
普通、マシンの電源をOFFにしてもデータは残りますよね?
「全データ消去」って、どんだけーーーーーーー!!


Amazon EC2 は、99.95%のサービスレベルを保証してくれているので
万が一、0.05%の確立で何かが起きても
運が悪かったで片付けられそうな気がしますが、
あたしくらいになると、自分でうっかり
(しかも自信をもって堂々と)ポチっと削除しちゃう可能性の方が大きそう…。


そのために Amazon S3 という ストレージサービスが提供されていて、
「大事なデータは Amazon S3 に自分でバックアップしておいてね〜」
ということなんだろうけれど、この関係がとっても中途半端。


データの保存先であるハズの Amazon S3 は、Amazon EC2 の
ローカルディスクのような位置づけであってくれたらベストなのに、
ローカルディスクとして Amazon S3 を使うことができないんだもの…。


そこで登場したのが、Amazon EBS(Amazon Elastic Block Store)。
Amazon EC2 のローカルディスクとして結合できるし、
間違ってインスタンスをシャットダウンさせちゃって
Amazon EC2 側は空っぽになっても、 Amazon EBSのデータは消滅しない。


Windowsに例えてみると、
OSやアプリなどは Cドライブにインストール。
大事なデータは Dドライブに保存。
万が一、OS不調で Cドライブをフォーマットするハメになっても
Dドライブに保存しているデータは消えない
みたいな使い方が出来るってことですYO!


こりゃ早速、Amazon EBS に挑戦だ!

横浜のホームページ制作スタジオFIXの社長ブログ

AWS Management Console にアクセスして、
ページ右側の「Volumes」をクリック。



横浜のホームページ制作スタジオFIXの社長ブログ

ページ中央のの「Create Volume」をクリック。



横浜のホームページ制作スタジオFIXの社長ブログ

Size :
ディスク容量を指定します。
後からEBS自体を増やすことはできるけれど、一度作ったEBSディスク容量自体を増やすことはできないので、少し悩んでから10GBにしておきました。

Availability Zone :
EBSを置く場所を指定します。立ち上がっているインスタンスと同じ場所を指定します。

Snapshot :
「NO Snapshot」を選択。



横浜のホームページ制作スタジオFIXの社長ブログ

あっというまに、10GBのディスクをご提供いただきました。
Statusが「Available」になるまで、ちゃんと待ちましょう。



次は、EC2へログインします。

  1. EC2へSSHログイン
    # ssh -i EC2key.pem root@ec2-XXXX.amazonaws.com
  2. 最上位へ移動
    # cd /
  3. デバイスが認識されているか確認
    # ls /dev/sd*
    /dev/sda1 /dev/sda2 などが表示されれば認識されています。
  4. 上記で表示された「/dev/sda1/」にファイルシステムを作成
    「/dev/sdb」以降のデバイスを選びましょう。
    # yes | mkfs -t ext3 /dev/sda1
    # yes | mkfs -t ext3 /dev/sdf
  5. EBSをアタッチメント(結合)させるディレクトリ「vol」を作成
    # mkdir /vol
  6. EC2とEBSをマウント(結合)する
    # mount /dev/sda1 /vol
    # mount /dev/sdf /vol
  7. 「vol」ディレクトリに移動
    # cd /vol
  8. # ls
    bin boot dev etc home などがズラズラ表示されていれば成功
    「lost+found」だけが表示されていればOK
  9. EC2から脱出
    # exit


Mac OSXのターミナルに戻ってから…


  1. EC2コマンドを動かす魔法の5行を入力
    $ export EC2_HOME=~/EC2
  2. $ export PATH=$PATH:$EC2_HOME/bin
  3. $ export EC2_PRIVATE_KEY=$EC2_HOME/pk-XXXXXXXX.pem
  4. $ export EC2_CERT=$EC2_HOME/cert-XXXXXXXX.pem
  5. $ export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home
  6. EC2コマンドが動くか確認
    $ ec2ver
    1.3-34128 2009-03-01 と表示されればOK
  7. EBSが接続されているか確認
    $ ec2-describe-volumes
    VOLUME vol-XXXXX と出れば成功


これで、Amazon EBS が使えるようになりました。
そろそろ、エンジニアに転職しよーかと思う今日この頃。


関連エントリー

  1. こんなにスゴイぞ、Amazon EC2
  2. Amazon Web Service、アカウントを取得してみた
  3. Amazon EC2/S3を申し込んでみた
  4. Amazon EC2、X.509証明書を取得してみた
  5. AWS Management Consoleで Key Pairsを取得してみた
  6. Mac OSXでAmazon EC2 Command-Line Toolsを使ってみた
  7. Amazon EC2、インスタンスを立ち上げてみた
  8. Amazon EC2、SSHでログインしてApacheを起動してみた
  9. Amazon EC2、Debianを設定してみた
  10. Amazon EC2、DebianでFTP(vsftpd)設定
  11. Amazon EC2のイメージファイルをS3に保存する
  12. Amazon EC2で固定IPを取得する
  13. Amazon EC2を独自ドメインで使う
  14. Amazon EC2をバーチャルドメインで運用する
  15. Amazon EC2、EBS(Elastic Block Store)を使ってみた
  16. Amazon EBSで Apache2とmysqlを動かしてみた
  17. Amazon CloudFront でちょっぱやを実装してみた
  18. Amazon EC2、AMIを共有する
  19. Amazon EC2上でインスタンスをオートスケールできる「Wakame」
  20. [ 非常事態宣言!!] Amazon EC2、ホームページが消えました
  21. Amazon サポートセンターに連絡を取ってみた
  22. Amazon EC2、SSH(22番ポート)の設定方法はこうすべき!

Post to Twitter

Amazon EC2、EBS(Elastic Block Store)を使ってみたへのコメント数: 5

  • コメント:名無し

    google検索できました
    ちょっと問題があるように見受けられましたのでコメントさせて下さい
    ご説明の方法ではEBSに保存されないのではないかと思います

    以下の手順で行ってみて下さい

    手順3で、10GBを確保していますが、StatusがCreatingからAvailableになるまで待ってください

    Availableになりましたら、該当Volumeのチェックボックスを付け
    Attach Volumeボタンを押します
    表示に従い、EBSを使用するインスタンスを選択し、Deviceの項目で
    インスタンス上のOSから認識されるデバイス名を指定します
    今回は/dev/sdfを指定したとします

    インスタンス上のLinuxに移ります
    作成したEBSボリューム/dev/sdfが見えるはずです
    # ls /dev/sd*
    /dev/sda1 /dev/sda2 /dev/sda3 /dev/sdf

    この/dev/sdfに対してmkfsを行い、マウントポイントにマウントします
    mkfsをした/dev/sdfは中身がフォーマットされ空になりますので
    # mkdir /vol (マウントポイントを作ります)
    # mount /dev/sdf /vol (マウントします)
    # df       (マウント状況を確認します)
    # cd /vol
    # ls
    とするとlost+found(システム上必要なディレクトリ) だけが表示されるはずです

    また、/dev/sda1に変更を加えられているようですが
    /dev/sda1はLinuxがインストールされている/ではないですか?
    この/にマウントしているデバイスはmkfs等で中身を消すとLinuxが起動しなく無ります
    どのデバイスがどのディレクトリにマウントされているかは以下コマンドでご確認下さい
    # cat /etc/fstab
    /dev/sda1 / ext3 defaults 1 1
    /dev/sda2 /mnt ext3 defaults 0 0
    /dev/sda3 swap swap defaults 0 0
    ~省略~

    詳細はこちらをご参照下さい
    http://codezine.jp/article/detail/3546

  • コメント:admin

    名無しさん、はじめまして。
    もーーー、ホントに頭が下がる思いでいっぱいです。

    通りすがりさんにも関わらず、こんなにご丁寧にご指導いただけるなんて
    どうもありがとうございます&大変恐縮でございます…。

    このようなご丁寧なご指導をいただいたのに
    どうしても今すぐに理解に費やす時間が取れない状況です…。

    きちんと理解できるのに、たぶんまた相当の時間を要すると思うので、
    時間をかっちり確保してから、きちんと学ばせていただきますね。

    こうやってご親切にスキルを惜しみなくわけ与えてくださる方のおかげで
    お利口さんになれるなんて、罰が当たりそうな気がします…。(^-^;)

    取り急ぎ、きちんとご指導いただいたことを飲み込んだ上での
    お返事ではない失礼をどうぞお許しください。
    本当にどうもありがとうございました。(:_:)ノ

  • コメント:admin

    >名無しさん
    3ヶ月以上も経ってしまいましたが、ご指摘の意味をようやく理解いたしました。
    ご指摘のとおり、超とんちんかんなことをやっていたようです。
    それが理解できたら、ご指摘いただいたことの有り難みが100倍くらい増加しました。
    本当にありがとうございました。

    後日、きちんとまとめてエントリーするようにいたしますね。
    もうお立ち寄りいただくことも無いかもしれませんが、
    改めての感謝の気持ちがどうぞ名無しさんに届きますように。
    ありがとうございました!!

  • コメント:名無し

    とどきました。
    これからもすてきなサイト作りかんばってください。

  • コメント:admin

    きゃあああああ!(◎_◎;)
    またお立ち寄りいただけるとは思っていませんでした。
    こんにちは!&ありがとうございます!

    もしやいつ「mkfs」してくれちゃうのか、
    エキサイティングさせてしまっていたのでしょうか…。(笑)

    ご教授いただいたとおり設定してみたら、
    処理速度まで速くなった気がしています。
    volの中にさらに、etcとかいっぱい入っていたのですから、
    当然意味のない負荷が発生していたのだと思います。(^-^;)

    おかげさまでまた一つ大切なスキルを身につけることができました。
    本当にありがとうございました!!

コメントを投稿する