2010年9月20日月曜日

AmazonLinuxをなめてみる(bench編)

vdbenchでAmazonLinux(AL)とRightScaleのCentOS5.4を使ったベンチをとってみた。


そもそも、EC2の上で(ましてEBSをつかっているのに)ベンチとってどうするんだ、という気もしますが。。御愛嬌ってやつで。

この結果だけを見ると、あーおれRightScaleのままでいいや、という気になる結果におわりました。

  • ALのt1.micorはAMI ami-0af30663(us-east-1a)
  • ALのm1.smallはAMI ami-id: ami-daf005b3(us-east-1d)
  • RSのm1.small はAMI ID: ami-29c2bd7b(ap-southeast-1a)






まずはt1.micro。t1.microではEBS必須のため、EBSを使っている。

8kbの出し入れではそれほどの差がつかないことがわかる。
そもそも、EBSはおせじにも安定しているとはいえず、時間等の条件の差によって揺れるものなので、こんなものかと思う。






次にm1.small。m1.smallのほうはEBSではなくlocalのdisk。

EC2という特性上、まったく同じ条件でテストすることはできないとはいえ、どうもRSのほうが速いように見える。






実際にはfsのベンチなんかよりもその上でアプリを動かしたときの差を知りたい。
というわけで、sysbenchを使ってmysqlを動かしてみる。InnoDBでとったもの。InnoDB pluginではない。
また、mysqlのパラメータチューンなどは一切行っていない。


  • ALのほうはmysql-5.1.47-1.2.amzn1

  • RSのほうはmysql-5.0.77-4.el5_4.2













そして最後に、みんなだいすきunixbench... というわけなのですが、t1.microではALはベンチが通るものの、RSでは通らなかった。

@ar1 EC2のmicroインスタンスだったら、Debian / UbuntuでもunixbenchがWhetstone辺りで先に進まなくなりました。原因とか追及してないですが……。
http://twitter.com/tetsuro_n/status/24899492218

という情報もあったりする。というわけで比較はできないが結果をはっておく。



2010年9月19日日曜日

AmazonLinuxをなめてみる(導入編)

連休で時間がとれそうなので、AmazonLinux(AL)を使ってみることにする。
AmazonLinuxがどのようなものなのかは、エバンジェリストのblogをみるのがおすすめ。そこに無いことを中心に書く。
AmazonLinuxはRHELというかCentOSに似ているものなので、それとの比較をしてみる。
具体的には、us-eastでAmazonLinux(ami-id: ami-0af30663)とRightScale (RL) centos5.4(ami-4d42a924)を使ってみた。
ほぼCentOSと同じな気分で使える。

/etc/system-releaseを見ると、

Amazon Linux AMI release 1 (beta)

と書かれている。/etc/lsb-releaseや/etc/redhat-releaseではない。しかしRHELやCentOSになれていればyumもあるし、/etcの下もほぼ同じだし、迷うことはないだろう。
EC2に特化したちょっとした違いはあるが問題ない
ec2-toolsとかはALもRSも慣れたの使えばかわらない。
大きな違いは、ALにはJavaを使うec2-toolsを使っているところ。Amazon謹製だし当然か。
デフォルトのユーザ名がALではec2userになっているので、.ssh/configなんかにはそのつもりで書いたほうがいい。
Kernelがあたらしい
OS: GNU/Linux -- 2.6.34.6-54.21.amzn1.i686 -- #1 SMP Sun Sep 12 06:48:07 UTC 
ということで、いまどきのkernelということでいろいろ期待できる(自分は期待してしまった)
yumで構築するのが速い
yumのダウンロードの速さはALが圧倒的。10倍はすぐに違ってくる。yum installでいくつかダウンロードした。
yum install -y mesa-libGL-devel java-1.6.0-openjdk libX11-devel libXext-devel screen mysql mysql-server mysql-devel perl-DBD-MySQL gcc libtool
これの結果
  • ALでは25パッケージを5.9 MB/s、21 MBを3秒でAWSの内部からダウンロード.
  • RSでは24パッケージを551kB/s、59 MBを1分49秒かけてダウンロード
という結果になった。RSのほうではCentOSのfastestmirror選択によって、RackSpaceなどからダウンロードされたり、大学につながったり、毎回変わるが、1MBを越えることはあまりなかった。
MySQLが5.1系
AmazonはRDSで5.1系を使ってInnoDB pluginをサポートしているためか、5.1.47がはいっている。
もちろん、自分でrpmをとってくるなり、yum repoを追加するなどしても構わないが気楽なのはALではないか。

 

Javaを使うなら、ALが楽。最初からはいってる。
ALが使っているec2-toolsはJavaを使っているため、これは当然の結果。きっとプレミアムサポートにはいっているならば、JVMにまつわる問題もカバーされるのだろう。
結論: ALはbetter CentOS on EC2だと思う
Package, ライブラリのバージョン,カーネルなど様々な点で違う。
そのため手元のCentOSで再現できないと困る、といったことはしばしば発生すると思われます。
RHELに金ははらえないけど、RHというブランドを信頼していたりするから、CentOSを使っている。
という人はRHとAmazonを天秤にかけてみてもいいのではないか、と思う。