Amazonが運営するサーバ仮想化技術であるAmazonEC2&S3を使ってみました。
やり方とかは増井さんがとっくに説明されていますので、
はじめてのAmazon EC2&S3 ~これからの新サービスの公開の形~
ここでは使ってみた感想とかを。
意外といける
聞き慣れない単語が多かったので、これはどうも今までの技術とは別系統っぽいなぁ、
はやらなかったときが悲惨だからもう少し様子見、とか思って先送りしてきたのですが^^;
やってみた結果、そんなに変な技術ではなくて、自分の知っている技術の延長線上にあるシステムだと分かりました。
vmwareを使ってWindowsの上でlinuxを走らせたことのある方は分かると思うのですが、vmwareが動いてしまえば、
その下のホストOSは、Windowsだろうとlinuxだろうと、あまり関係がなくなってしまいます。
Windowsで作った仮想マシンイメージをlinuxで動いているvmwareに持って行ってもそのまま動作しますよね。
この考え方を延長すると、ホストは正体不明のOSであってもかまわないわけで。
正体不明のOSの上に何台でも仮想マシンを走らせることができるようにしたのが、AmazonEC2です。
なので、AmazonEC2の上でゲストOSが動いてしまえば、あとは普通のlinuxと同じように使うことができます。
マシンイメージが便利
vmwareでは、新品の仮想PCをくみ上げてそこに自分でOSを入れるのが基本でしたが、AmazonEC2では、すでにあるマシンイメージ(AMI)を使うのが基本です。
RedhatやCentOS,Ubuntuなどの各種linuxイメージが公開されているので、このコピーを使っていきなりマシンを起動させることができます。
で、このマシンイメージがなにげに便利です。
いままで、CentOSをインストールしたら、その後Rubyを入れて、RubyGemも入れなくちゃ、RubyGemはyumにないから自分でrpm作らないとね、そのためにはrpmbuild入れて…
というような作業が必要だったのですが。rightScaleさんが公開しているCentOSのイメージでは、RubyはもちろんGemもsqliteもsubvesionも、全部すでにインストールされていました。
これは楽ちん。
もちろんこれは、自分の希望と異なるものが入っていたら「余計なことすなっ!」ですが、AmazonEC2を借りてその上でWebサービスを作ろうという人にはおおむね妥当なソフトがインストールされていて、これは便利、と思いました。
自動拡張してくれるわけじゃない
「AmazonEC2は負荷に応じた拡張が容易」といわれていたので、負荷が高くなったら勝手にCPUの性能が上がったり、ディスクサイズが自動的に拡大されたりするサービスなのかな、と思っていたのです。
そんな怪しいマシンだから、きっと普通のOSは動かないんだろうな、と思って警戒していたのですが。
べつにそんな怖いサービスではありません。仮想マシンを動かすことができますが、それだけです。ただ、サーバの増設が必要だ!となったときに、新しいマシンを買ってきたり、そこにOSを入れたりしなくても、AMIから同じ構成のマシンを何台でも立ち上げることができるので、拡張が便利、とそういうことです。
なので、スケーラビリティを考えないサービスを適当に作っても何とかしてくれるわけじゃなくて、ちゃんとスケーラブルになるようにサービスを設計しておく必要があります。
はじめてのAmazon EC2&S3 ~これからの新サービスの公開の形~:第4回 自分用のイメージファイル(AMI)を作ろう|gihyo.jp … 技術評論社
なんにも考えずにサーバが勝手に何とかしてくれないかな?とかずぼらなことを考える人は、グリッドホスティングみたいなサービスがオススメです。
#まあこれはこれでいろいろ難しいのですけどね。