はじめての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したあともリストに残るのが気持ち悪い。再スタートできるぽい?なんかいつのまにかリストから消えてる・・・!こわい

これで、データはおいときたいけど起動してなくていいよというときに、課金されないで済む。

SSH keyの取り扱い

X509のpemがわたされてビビった。これでもssh接続いけるのね。