NTTコムウェアが、高性能・高拡張性の
負荷分散ソフトウェア「UltraMonkey」を
機能拡充しオープンソースとして公開
NTTコムウェア
~一般顧客向けのSIサービスとSIer向けのプロフェッショナルサービスを提供開始~
NTTコムウェア株式会社(以下、コムウェア)は、オープンソースソフトウェア(以下、OSS)のロードバランサー(負荷分散装置)として世界的に実績のある「Ultra Monkey(*1)」の大幅な機能拡充を行い、ソースコードを公開した。 今回のUltraMonkeyのLayer7負荷分散機能(*2)の開発は、日本で初めての取り組みであり、世界的にも注目されている。
UltraMonkeyの開発・公開に伴い、コムウェアは、既存の商用アプライアンス製品との性能・長期安定性に関する比較検証を実施し、十分な実用性を確認している。これにより、高機能・高拡張性の負荷分散処理が、IAサーバとLinuxの組み合わせにより、市販アプライアンス製品の約1/5程度の費用で構築することが可能となる。
コムウェアでは、本システムを一般顧客に提供するためのSIサービスやSIer向けに高度な技術支援を行うプロフェッショナルサービスの提供も開始する。
開発の背景
近年、オンラインショッピングや検索サイトなど、ユーザからのアクセス集中による高負荷に耐えられるよう、ロードバランサーを導入するのが一般的である。また、ショッピングサイトなど多くのシステムでは、商品選択から決済までの一連の処理を同一サーバで実行することが必須となる。この諸条件に対応するために、サイト運営会社などは市販の高価な負荷分散装置を購入する必要があり、構築費用削減のために、OSS製品への期待があったが、従来のUltraMonkeyは、これらに対応する機能を有していなかった。そこで、コムウェアは、独立行政法人 情報処理推進機構(IPA)のオープンソースソフトウェア活用基盤整備事業公募に「UltraMonkey Layer7負荷分散フレームワークの開発」を提案、2004年12月に採択された。
機能拡充概要
今回の機能拡充は、最近のWeb系オンラインショッピングサイト等で必須である、セッション(*3)の管理「Layer7負荷分散機能(図1)」と、暗号化された情報への対応「SSL(*4)暗号化された情報の負荷分散機能」である。
図1 Layer7負荷分散機能
たとえば、ユーザがインターネットのショッピングサイトで買い物をする際、商品選択から決済処理までに複数回の処理を行う。この時、購入する商品の情報や決済時に入力した情報と利用者を関連付けるために、利用者毎にセッションを管理する必要がある。しかし、従来のLayer4までの情報ではユーザ毎の情報を意識した負荷分散が実現できないため、今回、Layer7の情報に対応する機能追加を実施した。また、利用者の個人名・住所・電話番号や口座番号などの個人情報の漏洩を防ぐための暗号化情報への対応も実現している。
コムウェアのオープンソースに対する取り組み
コムウェアは、顧客志向の柔軟なシステム構築にLinuxをはじめとするOSSが果たす役割の重要性を早くから認識していた。1999年のLinuxセンタ開設以来、積極的にOSSを利用するSI業務を実施し、コンサルティングから設計、開発、運用、保守までのトータルソリューションを提供、NTTの通信システム構築や、UNIXからLinuxへのマイグレーションなど多くの構築実績がある。また、コミュニティへの社員の参加を奨励するとともに、Linuxのビジネス利用を促進する国際的な非営利団体「OSDL」や、「北東アジアOSS推進フォーラム」を中心とする国際連携などの活動にも積極的に取り組んでいる。
今後の展開
UltraMonkeyコミュニティと、より一層連携し、UltraMonkeyユーザの利便性向上のため活動を推進する。具体的には、運用監視系機能の強化として、(1)環境設定のGUI化、(2)SNMP対応などが候補となる。
ソースコードの公開
UltraMonkey-Layer7のソースコード、インストールマニュアル等は、2005年10月13日から下記サイトで公開している。
◆http://sourceforge.jp/projects/ultramonkey-l7/
SourceForge.jpは、米国OSTG社が運営している世界最大のオープンソースソフトウェアの開発サイトであるSourceForge.netの日本版サイトで、VA Linux Systems Japan株式会社(http://www.valinux.co.jp/)が運営。
◆http://www.ultramonkey.org/
UltraMonkeyのコミュニティサイトで、開設者Simon Horman氏が運営。
動作確認環境
今回開発したUltraMonkey-Layer7は、次の環境での動作を確認している。
〔ハードウェア〕
- IAサーバ:
- HP社「DL380(Xeon 2.8GHz x2)」
- SSLボード:
- nCipher社「nFastUltra」
〔ソフトウェア〕
- OS(Linux):
- Kernel2.4
【用語説明】
- *1:UltraMonkey
- Linux上でオープンソースコンポーネントを使用し、IPネットワークの負荷分散と高可用性サービスを実現するためのプロジェクトおよび、同プロジェクトで開発された負荷分散ソリューションの名称。本システムは、多くのWebホスティング業社、ISP等で使用されており、日本ではSlashdot Japan ,SourceForge.jp ,japan.linux.comなどOSDN(Open Source Development Network)の全ネットワークで使用されている。
- *2:Layer7負荷分散機能
- OSI階層モデルの第7層(Layer7)に属するCookieやURLなどを使用してセッション管理、負荷分散を行う機能。
- 従来の「UltraMonkey」は、第4層(Layer4)までの情報(IPアドレスやポート番号など)に基づく負荷分散機能であったが、新たに第7層に対応した機能拡充が求められていた。
- *3:セッション
- Webサイトを訪れた訪問者が行う一連の処理のこと。例えば、ショッピングサイトなどで、ログインからログアウトまでを1セッションという。
- *4:SSL
- Secure Socket Layerの略。インターネット上でやり取りされているデータ(個人名、住所、電話番号などの個人情報や企業の機密情報など)を暗号化し、第三者からデータを覗かれないようにする通信技術。