はじめてのEC2
とっても今更感があるけど、実はいままでAmazon EC2をつかったことがないのであった。
勉強を兼ねてmicro instanceでいろいろ遊んでみて、最終的には開発レポジトリのバックアップと、落ちると痛いIRCログサーバを載せることを目標にする。
手順はGetting Started Guideがかなり親切なのでそちらを参照ということにして、躓いた点とか驚いた点を書いていく。
Block Deviceの取り扱い
- Elastic Block Store(EBS): 仮想ブロックデバイスのEC2用語。実体が謎なんだけど、SAN越しのストレージサーバ上にあるボリュームと考えると納得いくようないかないような。ストレージサーバにファイルだかLVMボリュームがあって、計算ノードはFCかiSCSIか何か経由でこれにアクセスするように設定されるのかな。EucalyptusはEBSを実装するのにLVMをATAoEで使ってるらしい(参考)
- Instance Store(Ephemeral Store): 計算ノード上にあるディスク。micro instanceだと使えない。おそらくEBSよりはやいしなんかキャッシュにつかうのかな。データベースとか置きたくなるけど、信頼性ないよね。
みんなだいすきS3にEBSやその差分スナップショットをアップロード/ダウンロードできる。
最初にEC2インスタンスを起動させる際には、S3上のテンプレート(このことをAMIという?)->EBSにコピーされて起動する。
逆にテンプレができたらそれをS3上にAMIとしてexportすることもできる。
S3のファイルサイズ制限どうするんだろとおもったら、100MBずつ分割されて保存されるぽい。なるほどね。とおもったら今はサーバ側で自動分割とかもあるのか
インスタンスのStopとTerminateの違い
実行中のインスタンスを停止させるにはStopとTerminateの二種類がある。最初これは、gracefulなshutdownと電源ぷちの2種類かとおもっていたんだけど、どうやら違うみたい。
- Stop: VMをshutdown。仮想ブロックデバイス(EBSというらしい)はdetachされるが、内容は消去されない。EBS分の課金は継続
- Terminate: VMをshutdown。EBSの内容も破棄。
なんかTerminateしたあともリストに残るのが気持ち悪い。再スタートできるぽい?なんかいつのまにかリストから消えてる・・・!こわい
これで、データはおいときたいけど起動してなくていいよというときに、課金されないで済む。