検証内容
SoftLayerのCCI(Cloudlayer Computing Instance)とBMC(Bare Metal Cloud)を使用して、Loogleによるベンチマーク試験を行いました。
ベンチマーク試験の方法は、次のとおりです。まず、日本にあるサーバーから、ログファイルを生成しつつサンノゼにあるCCI/BMCへ転送後、インデックス化を行いました。なお、Loogleはファイルの増加に追従するリアルタイムのインデックスには未対応であるため、5GBのログファイルの転送が終わり次第、インデックス化するバッチ処理を行いました。その際、インデックス化と転送に掛かった合計時間を計測しました。
検証1(CCIを使用)
まずはじめに、下記スペックのPrivate CCIを20台注文して試験環境を構築しました。CCIには、PublicとPrivateの2種類があります。PublicはCPUが他CCIと共有されますが、PrivateはCPUを占有することができます。本試験では、他のCCIからのCPUの影響を避けるため、Private CCIを使用しましたが、Public CCIを用いた場合は、この結果より遅くなる可能性があります。
- OS:Ubuntu 12.04-64 Minimal
- RAM:8GB
- Processor:8 CORE
- DISK:Local 100GB + Local 300GB
CPUは“E5-2650”(/proc/cpuinfoから情報を入手)で、追加のローカルディスク(300GB)のすべてをLoogleで利用することにしました。Loogleはログファイルの約2.5倍のディスク容量を消費するため、1台あたりで処理するログファイル量は100GBに設定しました。前述の方法でベンチマーク試験を行った結果、個々の処理時間はまちまちでした。
最短時間は、インデックス化に7時間13分37秒、全体の処理に7時間35分23秒。最長時間は、インデックス化に14時間40分17秒、全体の処理に15時間8分36秒でした。最短時間と最長時間では、実に倍の差となりました。同一スペックのCCIであるにもかかわらず、ここまで差が生じたのは、同じホストを共有している他のCCIのディスクアクセスの大小によるものだと思われます。およそ倍の差があることから、作成したCCIが同一ホストを共有し、お互いにディスクアクセスで干渉し合った可能性も高いと思われます。
なお、処理時間の平均時間は、インデックス化に9時間51分51秒、全体の処理に10時間26分3秒でしたが、実際にインデックス化が終了するためには、すべてのCCIで処理が終わる必要がありますので、いくら早く終わったCCIがあったとしても、最終的には一番遅いCCIに引きずられる結果です。つまり、本試験で処理したログファイル容量は2TBですが、最長の総合時間が15時間8分36秒であったことから、20台のCCIを使用して1日でインデックス化することができるログファイルの容量は約3.17TBと推定されます。
検証2(BMCを使用)
次に、下記スペックのBMCを20台注文して試験環境を構築しました。
- OS:Ubuntu 12.04-64 Minimal
- RAM:2GB
- Processor:2 CORE
- DISK:Local 500GB
実際に割り当てられたBMCのスペックは、下記のとおりでした。
- OS:Ubuntu 12.04.2-64 Minimal
- RAM:2x4GB Kingston 4GB DDR3 2Rx8
- Processor:3.4GHz Intel Xeon-SandyBridge E31270
注文したスペックよりも、メモリは6GB増え、CPUは2コア増え(合計で8スレッド)、非常にお得感がありました。なお、このBMCのスペックはあらかじめ分かっていたため、前述のCCIのスペックをこのスペックに近づけています。ただし、Loogleはマルチスレッドプログラムではないため、結果としてCPUが処理できるスレッド数は影響がないと考えられます。BMCはローカルディスクで500GBを使用できたため、ログファイル容量を170GB(5GB×34個)としました。
CCIと同様にベンチマーク試験を行った結果、個々の処理時間は僅差でした。
最短時間は、インデックス化に9時間54分35秒、全体の処理に10時間2分46秒。最長時間は、インデックス化に10時間19分7秒、総合時間は10時間26分43秒でした。CCIでは最短と最長で2倍もの差が出ましたが、BMCでは20分強の差でした。CCIと異なり、BMCは1台のリソースをすべて占有することができるため、他からの干渉を受けずに安定していることが分かりました。
本試験で処理したログファイル容量は3.4TB、最長の総合時間が10時間26分43秒であったことから、20台のBMCを使用して1日でインデックス化することができるログファイルの容量は約7.81TBであり、CCIと比べると2.45倍のログファイルを処理できました。すべてのBMCでほぼ同時にインデックス化が完了するため、処理時間に無駄がなく、CPUのスペックが異なっていることを考慮しても、CCIと比べて高速に処理できたと言えます。
本試験で使用したCCIは1台1時間あたり$0.88、BMCは1台1時間あたり$0.54で、価格の面でも有利でした。
検証を終えて
これまで、大容量のログを解析するLoogleは、クラウドでの使用には適さないと考えていましたが、SoftLayer上で動作検証を行った結果、BMCをうまく活用すれば、十分に利用できるというのが、今回の検証を通して分かりました。SoftLayerのサンノゼのデータセンターへ3.4TBのログを転送し、10時間26分43秒でインデックスを作成し解析することができました。月間では234TB相当のログ量であり、おそらく、多くの企業ではこの程度の処理ができれば十分であると思われます。
当初、国内にデータセンターがないことが効率に影響するのではないかと懸念しましたが、転送時間は結果にさほど影響しませんでした。データ転送に関しては、国内にデータセンターがなくても、多くのケースでは十分に対応できるのではないかと思います。
また、Loogleをクラウド用に特別にチューニングしなくても、BMCで効果的に動作したことから、SoftLayerはディスク依存度が高いオンプレミス的なアプリケーションをそのまま動作させるのに適したサービスだと思います。
社内アプリケーションのほとんどがこの範疇に属することから、有効性を評価しても良いのではないでしょうか。
今回は利用しませんでしたが、データセンター間の転送量が無料であることはディザスターリカバリーなどに有効だとすぐ思い付きますし、将来的に国内データセンターが開設されるようになれば、さらに用途が広がるのではないかと思われます(※1)。
SoftLayerは、日本では後発のクラウドサービスですが、その特徴を活用すれば十分に選択する価値があるサービスである、というのが今回の検証結果を踏まえた私の考えです。
こちらのムービーもご覧ください。