GMOクラウド VPSのマイクロプランでnode.jsのコンパイル時間を計測する
rootで実行
yum -y install wget openssl-devel gcc-c++ make wget http://nodejs.org/dist/v0.10.0/node-v0.10.0.tar.gz time tar zxvf node-v0.10.0.tar.gz cd node-v0.10.0 ./configure time make make install
version 0.10.0なので、ec2と正確な比較にはならないのですが、 EC2は前回のエントリから結果を。
解凍時間
tar | m1.xlarge | m1.large | m1.small | t1.micro | GMOクラウド VPS |
---|---|---|---|---|---|
real | 0m0.851s | 0m1.034s | 0m3.999s | 0m1.286s | 0m1.553s |
user | 0m0.680s | 0m0.736s | 0m1.712s | 0m0.560s | 0m0.737s |
sys | 0m0.496s | 0m0.504s | 0m1.660s | 0m0.420s | 0m0.762s |
コンパイル時間
make | m1.xlarge | m1.large | m1.small | t1.micro | GMOクラウド VPS |
---|---|---|---|---|---|
real | 6m16.558s | 6m14.260s | 13m45.992s | 39m51.288s | 6m47.398s |
user | 4m54.962s | 4m52.074s | 10m48.917s | 29m23.018s | 4m7.297s |
sys | 0m46.923s | 0m46.819s | 2m15.564s | 6m20.580s | 0m37.334s |
性能に対するコストパフォーマンスは凄く良いです。 m1.largeにCPU性能が近いので価格比較すると、重度リザーブドインスタンスの半額。 m1.smallと価格比較すると、バージニア州の重度リザーブドインスタンスと同等くらい。 東京だと2万円こえるので、やっぱりGMOクラウド VPSのコスパはよさそう。
スペック | EC2(m1.small) | GMOクラウド VPS |
---|---|---|
メモリ | 3.75G | 2G |
CPU | 2 ECU(2 ECU × 1仮想コア) | 仮想3コアリソース保証 |
HDD | 410 GB | 100GB |
GMOクラウド VPSのマイクロプラン申し込んでみました。
ステータスはお手続き中・・・・EC2だと5分もあれば起動するんだけども、GMOクラウドVPSは時間かかるみたいです。午前中には触れるようになるでしょう。
VPSコンソールのメニューはこんな感じ。
CPU*3に、メモリが2GでHDDが100Gで月額980円(1年分前払い)はすごく魅力的な価格です。 m1.small(EC2のデフォルトインスタンス)のリザーブドインスタンスよりも安いです。
EC2の第1世代インスタンスでnode.jsのコンパイル時間を計測する
調べたインスタンス
まず解凍・・・
tar | m1.xlarge | m1.large | m1.small | t1.micro |
---|---|---|---|---|
real | 0m0.851s | 0m1.034s | 0m3.999s | 0m1.286s |
user | 0m0.680s | 0m0.736s | 0m1.712s | 0m0.560s |
sys | 0m0.496s | 0m0.504s | 0m1.660s | 0m0.420s |
コンパイル時間
make | m1.xlarge | m1.large | m1.small | t1.micro |
---|---|---|---|---|
real | 6m16.558s | 6m14.260s | 13m45.992s | 39m51.288s |
user | 4m54.962s | 4m52.074s | 10m48.917s | 29m23.018s |
sys | 0m46.923s | 0m46.819s | 2m15.564s | 6m20.580s |
t1.microはキツイですね。
せっかくなので、node.jsを動かしてみましょう。
stackoverflowでみつけたnode.jsのコードで試してみます。 http://stackoverflow.com/questions/10457497/node-js-apache-bench-test
var sys = require('sys'), http = require('http'), fs = require('fs'), index; http.createServer(function(request, response) { fs.readFile('./loadtestfile.txt', function (err, data) { response.writeHeader(200, {"Content-Type": "text/plain"}); response.write(data); response.end(); }); }).listen(80);
1kのファイル作成
dd if=/dev/zero of=loadtestfile.txt bs=1k count=1
起動
sudo /usr/local/bin/node test.js
aws内からabベンチ。
ab -c100 -n10000 をテスト Requests per second [#/sec] (mean)
- | m1.xlarge | m1.large | m1.small | t1.micro |
---|---|---|---|---|
1k | 2949.32 | 1948.28 | 962.10 | 2521.37 |
10k | 1642.44 | 1652.94 | 119.313 | 1736.27 |
っとこのへんで、t1.microのスポットインスタンスが脱落・・・
t1.microのnode.jsのコストパフォーマンスはピカ1でした。 コンパイルは最悪ですが・・・
ab -c1000 -n10000 をテスト Requests per second [#/sec] (mean)
- | m1.xlarge | m1.large | m1.small |
---|---|---|---|
10k | 2271.20 | 2277.20 | 825.06 |
100k | 426.94 | 192.95 | 349.05 |
1m | 落ちます | 落ちます | 落ちます |
abコマンドで1000クライアントだと、たまにこんなふうに落ちます。
100kだとよく落ちます。
events.js:71 throw arguments[1]; // Unhandled 'error' event ^ Error: accept EMFILE at errnoException (net.js:770:11) at TCP.onconnection (net.js:1030:24)
あと、こんな風に
http.js:743 throw new TypeError('first argument must be a string or Buffer'); ^ TypeError: first argument must be a string or Buffer at ServerResponse.OutgoingMessage.write (http.js:743:11) at /home/ec2-user/test.js:11:14 at fs.js:117:20 at Object.oncomplete (fs.js:297:15)
ちなみに、httpdの場合の結果。
ab -c1000 -n10000 をテスト Requests per second [#/sec] (mean)
- | m1.xlarge | m1.large | m1.small |
---|---|---|---|
10k | 1884.99 | 1302.37 | Total of 9820 requests completed |
100k | Total of 7339 requests completed | Total of 4406 requests completed | Total of 4719 requests completed |
1m | Total of 580 requests completed | Total of 1225 requests completed | Total of 344 requests completed |
そしてnginxの場合
- | m1.xlarge | m1.large | m1.small |
---|---|---|---|
100k | 417.52 | 390.99 | 245.36 |
1m | Total of 1319 requests completed | Total of 3106 requests completed | Total of 519 requests completed |
nginx優秀ですね。100kでも Total of 9785 requests completed とかなりますが。一番安定してます。
Cloud Days Osaka 2013春に参加して~アマゾンデータサービスジャパン社長、長崎忠雄さんのプレゼンに少し感動。メモだけ残す
昨日、Cloud Days Osaka 2013春に参加してきました。
アマゾンデータサービスジャパン社長、長崎忠雄さんのリズミカルなプレゼンに少し感動したので、内容だけメモしときます。
メモのみです。。
【クラウドファースト時代到来。企業ITインフラで選択されるクラウドの条件とは?】
- IT投資は横ばい
- クラウドサービスは右肩上がり
- キャペックス(CAPEX)からオペックス(OPEX)へ
- クラウドとはイニシャルコストがかからない
- クラウドとは低額な変動価格
- クラウドとは実際の使用分のみ支払
- コストマインドセット
- クラウドとはセルフサービス可能なインフラ
- クラウドとはスケールアップ・スケールダウンが可能
- クラウドとは新サービス・製品をより速く市場へだせる
- サービスの実験がやりやすい⇒リーンスタートアップのMVP(実用最小限の商品)に利用できる
- サムソンはAWSの利用により、サムスンでは2年間で$34,000,000(約27億円)もの投資削減を実現
- ケンコーコムが基幹システム(SAP)をAWSで運用
- クラウドはもはやフロンティアだけじゃない。
- 自治体もクラウド(あぐりっこ西宮)
- 営業支援でiPadを利用したアプリのバックエンドにAWSを利用するガリバー
- 1つのアプリあたり、70%のコスト削減が見込める調査結果がある
- 詳細不明
- もはや基幹システムをクラウドに移行できるか?という質問は愚問であるとある記者が言ってた
- クラウドは経営学でいうリアルオプションにベストマッチ
- クラウドはリーンスタートアップと相性がいい
- リーンスタートアップは、スタートアップ事業者以外でも有効
- 会社の社員でも、アントレプレナー精神は有効
- IDEAS⇒BUILD⇒PRODUCT⇒MEASURE⇒DATA⇒LEARN⇒IDEA S・・・
- アマゾンは2000年ごろから、グローバル化を展開するためにはプログラマブルなコンピューティング リソースが必要だと感じて研究開発を行ってきた。
- 2000年頃のHBRに乗ってた、「amazon.comよどこへ行く?」の論文のコラムにシンクロしてちょっと感動(疑問に持たれた部分に関してきっちりと答えてる感に)
- アマゾンというショッピングサイトを支えるためにAWSの基礎は必然的に必要だった。
- それを外部に公開したのがAWSの始まり
- 今のAWSは2003年にアマゾンが保有していたITインフラすべてのリソースを毎日追加している状態
- ディザスタリカバリ、7か所のデータセンターが世界にある
- BYOL(ライセンスの持ち込みが可能)
- AWS DirectConnectやamazon Virtual Private CloudでIPセグメントごとクラウドに移行できる
- awsの用途
- 全社・部門アプリ
- コンシュマー&ウェブアプリケーション
- HPC & ビッグデータ
- バックアップ & ディザスタリカバリ
- 正解がわからないものほどクラウドに向いている
- MVPをAWSで作って仕組みが有効か実験してから、オンプレミスかクラウドかの選択をすればいい
- アマゾンには小売りのDNAがある。過去6年で27回の値下げを行っている
- AWSを利用することによりセキュリティが向上した
- 第三者機関の認証がある
- Coiney がPCI DSS準拠でawsを利用
- Nasdaq FinQloudがawsを利用