さくらの[VPS|クラウド]のベンチマーク測定

再起動した後、すぐにUnix Benchmarkで測定した。
さくらのクラウドでは3回、ISOイメージからのインストールのUbuntuの11.04, 10.04.3とテンプレートの10.04.3で測定した。

下が表にしてまとめたもの。

感想

  • Ubuntu 11.04より10.04の方がIndex高くなる希ガス。
  • 単コアはクラウド、2コアはVPS。
  • ディスク速度はクラウド。
  • 本申し込みまで気長に待てるand金がない場合はVPSを。
  • 単コア性能でブイブイ行きたいor切羽詰っているorネットワークを柔軟に構築したいorオートスケールor短期の契約したい場合はクラウドを。

基本、クラウドを使うと良いと思います。

リリース環境として使う場合は、アプリケーションを配備してベンチマークをすると良いと思います。VPSの方だといきなり負荷が上がった場合にすぐに対処できないので、そういった状況へ対応できる点をクラウドとの比較では加味すべきです。

生データ

さくらのVPS

Ubuntu 10.04.3 LTS amd64

========================================================================
   BYTE UNIX Benchmarks (Version 5.1.3)

   System: www28407u: GNU/Linux
   OS: GNU/Linux -- 2.6.32-33-server -- #72-Ubuntu SMP Fri Jul 29 21:21:55 UTC 2011
   Machine: x86_64 (unknown)
   Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
   CPU 0: Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz (5320.6 bogomips)
          x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
   CPU 1: Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz (5320.6 bogomips)
          x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
   21:51:39 up 0 min,  1 user,  load average: 0.14, 0.04, 0.01; runlevel 2

------------------------------------------------------------------------
Benchmark Run: Fri Nov 18 2011 21:51:39 - 22:19:46
2 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       23719301.4 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     3030.7 MWIPS (9.9 s, 7 samples)
Execl Throughput                               2977.2 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        716634.1 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          202973.8 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       1468154.8 KBps  (30.0 s, 2 samples)
Pipe Throughput                             1493949.8 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 233720.1 lps   (10.0 s, 7 samples)
Process Creation                               3837.4 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   3801.3 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    939.2 lpm   (60.0 s, 2 samples)
System Call Overhead                        3079054.3 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   23719301.4   2032.5
Double-Precision Whetstone                       55.0       3030.7    551.0
Execl Throughput                                 43.0       2977.2    692.4
File Copy 1024 bufsize 2000 maxblocks          3960.0     716634.1   1809.7
File Copy 256 bufsize 500 maxblocks            1655.0     202973.8   1226.4
File Copy 4096 bufsize 8000 maxblocks          5800.0    1468154.8   2531.3
Pipe Throughput                               12440.0    1493949.8   1200.9
Pipe-based Context Switching                   4000.0     233720.1    584.3
Process Creation                                126.0       3837.4    304.6
Shell Scripts (1 concurrent)                     42.4       3801.3    896.5
Shell Scripts (8 concurrent)                      6.0        939.2   1565.4
System Call Overhead                          15000.0    3079054.3   2052.7
                                                                   ========
System Benchmarks Index Score                                        1085.7

------------------------------------------------------------------------
Benchmark Run: Fri Nov 18 2011 22:19:46 - 22:47:53
2 CPUs in system; running 2 parallel copies of tests

Dhrystone 2 using register variables       46105320.1 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     6039.4 MWIPS (9.2 s, 7 samples)
Execl Throughput                               5598.9 lps   (29.8 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        801118.3 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          210951.5 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       2183881.2 KBps  (30.0 s, 2 samples)
Pipe Throughput                             3080976.6 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 498331.7 lps   (10.0 s, 7 samples)
Process Creation                              17764.0 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   8093.3 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   1059.2 lpm   (60.0 s, 2 samples)
System Call Overhead                        5092618.6 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   46105320.1   3950.8
Double-Precision Whetstone                       55.0       6039.4   1098.1
Execl Throughput                                 43.0       5598.9   1302.1
File Copy 1024 bufsize 2000 maxblocks          3960.0     801118.3   2023.0
File Copy 256 bufsize 500 maxblocks            1655.0     210951.5   1274.6
File Copy 4096 bufsize 8000 maxblocks          5800.0    2183881.2   3765.3
Pipe Throughput                               12440.0    3080976.6   2476.7
Pipe-based Context Switching                   4000.0     498331.7   1245.8
Process Creation                                126.0      17764.0   1409.8
Shell Scripts (1 concurrent)                     42.4       8093.3   1908.8
Shell Scripts (8 concurrent)                      6.0       1059.2   1765.4
System Call Overhead                          15000.0    5092618.6   3395.1
                                                                   ========
System Benchmarks Index Score                                        1933.5

さくらのクラウド

[パブリック] ubuntu-11.04-server-amd64

========================================================================
   BYTE UNIX Benchmarks (Version 5.1.3)

   System: scloud-test: GNU/Linux
   OS: GNU/Linux -- 2.6.38-12-server -- #51-Ubuntu SMP Wed Sep 28 16:07:08 UTC 2011
   Machine: x86_64 (x86_64)
   Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
   CPU 0: Intel(R) Xeon(R) CPU X5675 @ 3.07GHz (6133.8 bogomips)
          x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
   21:51:39 up 0 min,  1 user,  load average: 0.00, 0.00, 0.00; runlevel 2

------------------------------------------------------------------------
Benchmark Run: 金 11月 18 2011 21:51:39 - 22:19:45
1 CPU in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       29142907.8 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     3553.8 MWIPS (9.9 s, 7 samples)
Execl Throughput                               3572.1 lps   (29.6 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        988098.7 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          283302.4 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       1534186.0 KBps  (30.0 s, 2 samples)
Pipe Throughput                             2022827.0 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 269688.5 lps   (10.0 s, 7 samples)
Process Creation                               9603.6 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   4236.4 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    546.8 lpm   (60.1 s, 2 samples)
System Call Overhead                        4032393.1 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   29142907.8   2497.3
Double-Precision Whetstone                       55.0       3553.8    646.2
Execl Throughput                                 43.0       3572.1    830.7
File Copy 1024 bufsize 2000 maxblocks          3960.0     988098.7   2495.2
File Copy 256 bufsize 500 maxblocks            1655.0     283302.4   1711.8
File Copy 4096 bufsize 8000 maxblocks          5800.0    1534186.0   2645.1
Pipe Throughput                               12440.0    2022827.0   1626.1
Pipe-based Context Switching                   4000.0     269688.5    674.2
Process Creation                                126.0       9603.6    762.2
Shell Scripts (1 concurrent)                     42.4       4236.4    999.1
Shell Scripts (8 concurrent)                      6.0        546.8    911.3
System Call Overhead                          15000.0    4032393.1   2688.3
                                                                   ========
System Benchmarks Index Score                                        1331.2

[パブリック] ubuntu 10.04.3-server-amd64 (テンプレート)

========================================================================
   BYTE UNIX Benchmarks (Version 5.1.3)

   System: test2: GNU/Linux
   OS: GNU/Linux -- 2.6.32-35-server -- #78-Ubuntu SMP Tue Oct 11 16:26:12 UTC 2011
   Machine: x86_64 (unknown)
   Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
   CPU 0: Intel(R) Xeon(R) CPU X5675 @ 3.07GHz (6132.3 bogomips)
          x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
   22:46:02 up 1 min,  1 user,  load average: 0.00, 0.00, 0.00; runlevel 2

------------------------------------------------------------------------
Benchmark Run: Fri Nov 18 2011 22:46:02 - 23:14:10
1 CPU in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       30216352.6 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     3625.4 MWIPS (9.9 s, 7 samples)
Execl Throughput                               3959.0 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks       1025784.8 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          298731.7 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       1980752.2 KBps  (30.0 s, 2 samples)
Pipe Throughput                             2300815.4 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 379467.1 lps   (10.0 s, 7 samples)
Process Creation                              13212.9 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   6071.2 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    778.5 lpm   (60.1 s, 2 samples)
System Call Overhead                        4229065.7 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   30216352.6   2589.2
Double-Precision Whetstone                       55.0       3625.4    659.2
Execl Throughput                                 43.0       3959.0    920.7
File Copy 1024 bufsize 2000 maxblocks          3960.0    1025784.8   2590.4
File Copy 256 bufsize 500 maxblocks            1655.0     298731.7   1805.0
File Copy 4096 bufsize 8000 maxblocks          5800.0    1980752.2   3415.1
Pipe Throughput                               12440.0    2300815.4   1849.5
Pipe-based Context Switching                   4000.0     379467.1    948.7
Process Creation                                126.0      13212.9   1048.6
Shell Scripts (1 concurrent)                     42.4       6071.2   1431.9
Shell Scripts (8 concurrent)                      6.0        778.5   1297.5
System Call Overhead                          15000.0    4229065.7   2819.4
                                                                   ========
System Benchmarks Index Score                                        1579.9

[パブリック] ubuntu-10.04.3-server-amd64 ISO

========================================================================
   BYTE UNIX Benchmarks (Version 5.1.3)

   System: test3: GNU/Linux
   OS: GNU/Linux -- 2.6.32-35-server -- #78-Ubuntu SMP Tue Oct 11 16:26:12 UTC 2011
   Machine: x86_64 (unknown)
   Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
   CPU 0: Intel(R) Xeon(R) CPU X5675 @ 3.07GHz (6133.8 bogomips)
          x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
   22:46:07 up 1 min,  1 user,  load average: 0.00, 0.00, 0.00; runlevel 2

------------------------------------------------------------------------
Benchmark Run: 金 11月 18 2011 22:46:07 - 23:14:15
1 CPU in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       29116047.2 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     3585.0 MWIPS (9.9 s, 7 samples)
Execl Throughput                               3777.7 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        976042.9 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          303968.9 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       1757346.4 KBps  (30.0 s, 2 samples)
Pipe Throughput                             2278245.6 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 357590.6 lps   (10.0 s, 7 samples)
Process Creation                              12605.5 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   5757.2 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    760.1 lpm   (60.0 s, 2 samples)
System Call Overhead                        4161298.4 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   29116047.2   2494.9
Double-Precision Whetstone                       55.0       3585.0    651.8
Execl Throughput                                 43.0       3777.7    878.5
File Copy 1024 bufsize 2000 maxblocks          3960.0     976042.9   2464.8
File Copy 256 bufsize 500 maxblocks            1655.0     303968.9   1836.7
File Copy 4096 bufsize 8000 maxblocks          5800.0    1757346.4   3029.9
Pipe Throughput                               12440.0    2278245.6   1831.4
Pipe-based Context Switching                   4000.0     357590.6    894.0
Process Creation                                126.0      12605.5   1000.4
Shell Scripts (1 concurrent)                     42.4       5757.2   1357.8
Shell Scripts (8 concurrent)                      6.0        760.1   1266.8
System Call Overhead                          15000.0    4161298.4   2774.2
                                                                   ========
System Benchmarks Index Score                                        1520.9

さくらVPSへ乗り換え

Saasesから「さくらVPS」への乗り換え中。

ロリポからSaasesへの乗り換えの際にEUC-JPからUTF-8への変換の面倒が終わっていたので、楽だった。今回は、Ubuntuから同じバージョンのUbuntuへの乗り換えなので簡単。

やることがないので、apacheからnginxへの乗り換えと、メールサーバの立ち上げをやってみた。

nginx上でのwordpressの準備と設定

下記のURLのサイトに書いてあることを素直にやれば、何のひっかかりもなく、実現できる。
さくらのVPSでnginx + php5-fpm
nginx + php5-fpm + wordpress @さくらのVPS

メールサーバの設定

メールサーバの設定(postfix, dovecot, sasl2=saslauthd)

後はリレーをしていないかどうか確認して完了。

残り作業

twitterのbotの移動・定時DBバックアップのcron書き

残りメモリ
512MBのメモリのプランで、ここまでの設定が終わった状態のメモリの使用量。

$ free
total used free shared buffers cached
Mem: 505172 484160 21012 0 27536 253912
-/+ buffers/cache: 202712 302460
Swap: 916472 1224 915248

何かできそうなくらい残っている。

php-fpm

今回はapache+mod_phpの組み合わせではなく、nginx+php-fpmの組み合わせ。php-fpmはhttpサーバ(ここではnginx)とは切り離されたプロセスが起動する。


29657 www-data 20 0 130m 43m 4052 S 0 8.9 0:05.35 /usr/bin/php5-fpm --fpm-config /etc/php5/fpm/php5-fpm.conf
28325 mysql 20 0 180m 35m 7548 S 0 7.2 0:01.49 /usr/sbin/mysqld
29659 www-data 20 0 120m 34m 4076 S 0 6.9 0:05.43 /usr/bin/php5-fpm --fpm-config /etc/php5/fpm/php5-fpm.conf
29658 www-data 20 0 120m 33m 4092 S 0 6.9 0:04.96 /usr/bin/php5-fpm --fpm-config /etc/php5/fpm/php5-fpm.conf

apacheのように最大いくつまで起動するかを設定できる。また、他のサーバに置くことで、httpの仕事をするサーバとphpの仕事をするサーバを分けることができる(はず)。今まではapacheの中でphpがどれくらいのメモリを使用していたのか気にしていなかったのだけれども、php-fpmでプロセスとしてメモリ使用量が見えていると、楽しい。

また、nginxの設定ファイルの書き方は、個人的にはapacheよりも好き。

ブログのサーバの移籍を検討中

このブログの提供元のサーバの移籍を考えている。

このブログは月間315円のロリポプランを利用している。実際には年間3,150円の割引価格。このサービスを借り始めたのは2006年9月6日。5年弱、使い続けた。

当時としては、月間315円でphpが動作するスペースを借りることが出来るのは嬉しかった。

書き始めの記事を見ると、当初はMSNスペースを使っていたことを思い出す。MSNスペースはマイクロソフトのLive構想以前のHotMailなんたらと密結合をしているサービスで、色々と面倒くさかったしカスタマイズもできなかった。

今でこそ勢いはなくなってしまったが、ブログプログラムのMovable Typeが人気だった。自分でWebスペースを借りてブログプログラムを設置することが流行りだしたときだった。そのときにWordpressというブログのためのプログラムが出てきた。Wordpressは誰それが使っているという噂で知ったのだが、色々と良さげだったので使ってみることにした。

そのためにはphpを配置できるサービスが必要で、ロリポの315円は非常にリーズナブルだった。

そんなこんなで4年も過ぎてしまった。

そしてまた、カスタマイズがやりにくい、という問題を抱えている。原因はFTPで更新作業をすることがダルくてしょうがないという自身の変化だ。sshで入りたいし、root権限も欲しい。

サーバに直接ログインして、コマンドを打ってWordpressの更新作業(展開・上書き)をしたいし、直接cssの手書きをしたい。なにより最近のVPSの価格は安価になってきているし、パワーもあるから別のサイトの実験(wikiやらRailsやら)もできる。

ということで、月500〜1000円の価格帯のVPSあたりにサーバを移そうかと思い始めている。

懸念は、大きいのはロリポのメールサービスが使いやすかったこと。小さいのはDBからデータを抜いて入れるのが面倒なこと。DBは文字コードの問題が必ず出そうな雰囲気、EUC-JPからUTF-8への。

移転先は、Saases・さくらのVPSのどちらか。Serversmanは検討外。近いうちに、さくらのVPSの契約をして比べてみる予定。さくらのVPSの方が良い評判を聞くことが多いが、個人的には自然空冷のSaasesを応援したい。

国内VPSサービスSaasesを契約

海外から国内までの鉄板格安VPSサービスに個人情報を振りまく趣味をしているが、次の個人情報提供先にSaasesを選択した。512MBで月450円のプランは安い。ところが6ヶ月分の料金を前払いをする必要があるらしく、512MBでもし足りなくなったら泣けるので渋々1024MBの月980円プランを契約。それでも安いのだけれども。

Ubuntu 10.04のインストールをお願いした。入るためのIDパスワードはメール本文ではなく、パスワードつきのZipに入ったPDFであった。パスワードは後のメールで送ります的な。そのPDFの生成アプリケーションはOpenOffice 3.2で、埋め込みフォントはMeiryo。おお、このIDとパスワードは自動生成ではなくて、Windows機でOpenOfficeで作成したものですか?的な感動。Office Wordを使わない点はポイントが高い。

入ってみるとbourne shellのお出迎えだったので面食らった。今のところ、それだけ。

CPUは1つしか見えない。

$ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 23
model name      : Intel(R) Core(TM)2 Quad CPU    Q8400  @ 2.66GHz
stepping        : 10
cpu MHz         : 2666.362
cache size      : 2048 KB
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu tsc msr pae cx8 cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht pbe syscall nx lm constant_tsc up arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm tpr_shadow vnmi flexpriority
bogomips        : 5332.72
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

df

$ df
ファイルシステム           1K-ブロック    使用   使用可 使用% マウント位置
/dev/xvda3           111463456   1034396 104772576   1% /
none                    504404       128    504276   1% /dev
none                    509792         0    509792   0% /dev/shm
none                    509792        32    509760   1% /var/run
none                    509792         0    509792   0% /var/lock
none                    509792         0    509792   0% /lib/init/rw
none                 111463456   1034396 104772576   1% /var/lib/ureadahead/debugfs
/dev/xvda1              103380     86460     13788  87% /boot

結構なHDD容量。これで困ることなんて、Wikipediaのデータを展開するときくらいだろう。

ということで使ってみよう。

国内でクラウドと名のつくものがたくさん出る

Linodeは非常に良く価格的にも安定感にも性能的にも満足しているVPSサービスだ。しかし場合によってはRTTが遅い点と転送量が制限されてしまう点に課題を感じることがある。

国内のサービスを利用したいのだが、現時点において満足できるのは転送量の制限のないsakuraのサーバだけだ。しかしsakuraのサーバは初期費用がかかり、月額制なので気軽に試すことができない。

そうした中、国内でクラウドと名のつくサービス群が次々と登場しようとしている。

  • NTTデータ「BizCloud」
  • KDDI「KDDIクラウドサーバサービス」
  • ソフトバンクテレコム「ホワイトクラウド」
  • ライブドア「ぽこぽこクラウド」
  • IIJ「IIJ GIO」
  • NIFTY「クラウド」

各社ごとにクラウドの定義は異なるようなのだが、これらのサービスはVPSに近いもののようなのだ。

日本において今までのサービスでは、データセンターもしくはその中のサーバを専用に貸し出すサービスがハードウェア層として存在していた。その上のレイヤーとしては、ASPもしくはSaaSと呼ぶべきWebアプリケーションの貸出サービスが存在している。その中間層としては、1台のサーバを共有する共有レンタルサービスが存在しているが、この仕組みでは同じOSシステムを共有することになり自由度が低かった。

仮想化技術の発展によって、1台のサーバに複数のOSを動作させられるようになり、VPSとして注目が集まるようになった。VPSにはサーバのディスクイメージという概念がありOSそのものを簡単に入れ替えできる。さらにバックアップが容易である点、時間単位の課金が可能になった点などのメリットがある。

クラウド業界では、Amazonが先んじて著名なサービスを提供しており、それに続いてGoogle(厳密にはPaaS)が、周回遅れてMicrosoftが追いかける形になっている。大手の企業がサービスを提供することで、世界のデータセンターは5箇所程度になるのではないか、という過激な意見もある。そのような状況下、ようやく国内のサービスプロバイダーも、そのようなサービスを提供し始めた、という流れだ。

国内クラウドに対しては、安くて時間単位で借りやすいサービスであることを望む。

#

このように集約に向かう流れだが、コンピュータ業界は「集約と拡散」を繰り返してきた業界でもある。

拡散の向きとして、大手のプロバイダーにデータを任せることができるものだろうか、という意見があり、プライベートクラウドという言葉までが飛び出してきている。その一端がUbuntuベースのEC2互換ディストリビューションEucalyptusであったりする。

EC2を触ってみた結果について

ec2独特の作業が多くて調べるのが大変だった。

AMI作成

カスタマイズAMI作成までやった。ec2で起動するためのOSイメージはamazon公式や有志の手で作成されており、Ubuntuもあった。しかしインスタンスを落とす運用をする場合、初期化されてしまい、OSイメージが元の状態に戻ってしまう。それを回避するのがカスタマイズAMIであり、自分で構築したOSイメージを保存しておくことで、それをec2に乗せて起動することができる。

カスタマイズしたAMIは、amazonのオンラインストレージサービスであるs3上に乗せる必要があり、これもサインアップする必要あり。しかも保持しているだけでお金を食うが、大きいイメージでなければ問題ない。なお両方とも米国であれば、s3からec2へのデータ転送は課金されない。

性能

smallの1CPUの遅さに萎えた。extra largeの8CPUは素敵。が、値段も8倍。

1日1時間だけ爆速extra largeを起動するとして$0.8×30=$24。XenのVPSが借りられる価格、それもsmallの2,3倍程度のCPUを期待できる。

使い分けとしては、不定期に爆速処理を使いたい場合はec2,定期的にログ取ったり解析にしたりをしたい場合は格安VPSで。

まとめ

ec2はインスタンスの消し忘れが怖くて怖くてたまらない。特にextra largeで$0.8/1h課金されているとき。

ec2で何か面白いことをやろうとしたが、面白いと思っていたことがよくよく検討してみると不味いということが分かったので一旦休止。今回はec2でubuntu動かしてカスタムイメージ作れたことで満足。

クラウドって何かをAmazon EC2から考える

通販で有名なAmazonのサービスにEC2というものがあって、クラウドとか言われている。EC2は一言で言えば、計算機資源を貸すサービスで、VPSに近い。EC2は料金体系が他とは違う。

例えば他の会社のVPSプランは、メモリがどれくらい、転送量がどれくらい、HDDの容量がどれくらい、で月定額いくらですよ、という定額制な料金プランを採用する。EC2の場合は、サーバを1時間あたり起動していたらいくら、転送量を何TB使ったらいくら、という従量制な料金プランを採用する。

で、実際に計算してみると、EC2を1月中ぶんまわす結果は国内の専用サーバを借りるプランとそこまで差が出ない。

なんでそんなにEC2!EC2!と騒いでいるのかなーと、ずっと、疑問だった。

最近、気がついたのは、EC2では時間当たりの価格で提供していること、そしてAPIがあるということだった。もっとよく分かるようになったのはあくしゅ、自動的にクラウド上のサーバを増減できるソフトウェア「Wakame」というリリースだった。

EC2は時間当たりのサーバ資源の切り売りをしていたんだ、ということに、よーやく気がつくことができた。つまり、「ハイスペックなCPU資源を短時間でいいから安く利用したい」というニーズに答えるためにあるんだな、と。

VPSの発明は、1つのサーバの資源を仮想的に区切り、複数のOSをインストールできるようにした点にある。つまり1台のサーバを複数人数で共有することになるので、単体のサーバを借りるより安くなる。通常のWebホスティングに比べてOSを選択できるので自由度が高い。他のユーザが利用してないCPU資源があまっていたら、もらうことができる。

フレッツやKDDIのPONも同じような発想で、複数の回線で1つの回線を共有するよーなことをしている(はず)。だから、1Gbpsとか100Mbpsとか書いているのだけれども、そういうベストエフォートな感覚がいい。

だけれども、既存のVPSサービスには弱点があって、仕組み的に月額プランしか存在していない。やろうと思えば、1日貸しや半日貸しができるのだろうけれど、やっていない。このことによって、ある利用者が一日に1時間くらいcronまわしたいのに、他の23時間分のお金を払わなければならず、もったいないという事柄が生じる。短時間で1時間くらいの処理をやってもらいたいのに、ハイスペックな料金のサーバを23時間も空回しさせるなんてもったいなくてお金を払えない。そういう状況が生まれつつある。

そこでEC2は、APIを準備することで解決を図った。つまり、外部からインスタンスのON,OFFを制御することができて、1日に1時間だけハイスペックなサーバを動かすことを可能にしている。このことによって他の23時間の料金は発生しないのだから、その1時間が多少割高であっても無駄遣い分を減らしたお金1/24を超えることはないのだから、かまわない。

このサーバ時間1時間の買いはAPIを利用しないと、サーバに張り付いて手動でやるなんて難しい。負荷に応じてAPIを最適に調整してくれるソフトウェアがこれからもどんどん出てくるのかな、と思う。逆に、そういう操作をやらずにEC2を借りてる人は何だろうと思う。

これをWebサービスなんかの負荷が時間によって大きく変化するサービスや、最大負荷が読めないサービスなんかに換算して考えると、負荷が大きくなるごとにあらかじめ用意しておいたサーバを起動していけばいいので、月額固定費だったサーバ料金は変動費になる。機会損失は考えるなとはよく言うけれど、スケーラブルになるので機会損失が少なくなる。

個人用途でも、DBぐるんぐるんとか、クローラーぐるんぐるんとか、火急の用件だがこの動画エンコしたいとか、そういうのを低スペッコPCで時間かけてまわすのではなく、高スペックで短時間で終わらせられるとか、そーゆーメリットも出てくる。

つまり、クラウドの示すところは、大手ベンダーがでっかいデータセンターを作って、それを膨大な人の数で共有することによって、資源の無駄遣いを減らしましょうということ。膨大な人の数で共有するのだから、月額なんてちゃちなことはやめて、実時間で使った分だけ払うシステムにしましょう。それ以外の使わない資源は他の人が使いますからということ。

そういうことでクラウド言ってるんだなーぁ、ということにしている。PaasとかSaaSとかこの手のいろーんな言葉があったが、SaaSやASPはサービス提供側の話だったのに対して、クラウドはどちらかというとサーバ資源提供側の話なのかなぁ、と。

ちなみにAmazonは、Webサービス制作者側から資源料をもらうのではなく、サービス利用者側から資源料をもらうようなクレジットのサービスも始めてる。つまり、サービスを作った人からお金を取るのではなく、サービスを使った人からお金を取るということをはじめている。Amazonのアカウントは既にクレジットカードと紐づけられているので、それはやりやすい。

そんなこんなで、ようやくGoogle App Engine, PaaS, EC2に見る新しい息吹から1年半経って、内訳が頭に入ってきたな、と。表面的なことを書くのは簡単でいいなー。

#

あと、Amazonから資源を借りたくない場合、例えば自社でクラウドをもちたいケースもありうる(はてな、みたいな?)。そういったケースじは、自社クラウドのためのセット、Ubuntuがクラウドパワーを獲得――「Eucalyptus」採用が主流になってくるかも。会社であまっている資産を流用したいという要求は常にあるだろうし。

注目なのは、

米国立科学財団の支援を受け、カリフォルニア大学サンタバーバラ校(UCSB)の大学院生が中心となって開発したプロジェクトからEucalyptus Systemsというベンチャー企業が誕生した。

ということ。向こうの学生はセンスあるよなぁ。Amazon EC2のAPIと互換なので、EC2向けに作っていれば自分クラウドにも流用可能だし、自分クラウド向けに作っていれば緊急時にはEC2に移動もできること。この流れからは、EC2のAPIが標準になるのかな?、とも思える。

エコという言葉は好きじゃないけれど、サーバのエコだ。

#

ベストエフォートは、回線をあまり利用していない人(たぶん6〜8割程度)が、割高になっていると予想してみる。2割のユーザを8割で支えるサービスになってきているような。多分、従量制を採用すると、6~8割の人は安くなるんじゃないのかな。こうしてみると、従量制→定額制→従量制→…、というふうに世界は動くのかしら。