株式会社インターネットイニシアティブ

iij

Ruby on Railsで手軽に開発・運用コストを最小化できる純国産PaaS「MOGOK」、セキュリティも万全

株式会社インターネットイニシアティブ(IIJ)は、純国産のRuby PaaS(Platform as a Service)である「IIJ GIO MOGOKサービス(MOGOK:モゴック)」を、2013年12月より正式サービスとして提供中である。ソフトウェア開発者が、Ruby on RailsによるWebアプリケーション構築、運用を無償版サービスから手軽に始めることができ、また運用上の負担を増やすことなくスケール(規模拡大)できるサービスである。

このMOGOKのメリットは、大きく分けて三つある。1番目はPaaSであることにより運用コストを最小化できること。2番目は純国産サービスであり、日本人にとって敷居が低く安心して利用できること。3番目はインスタンス型PaaS(詳細は後述する)であるにも関わらずセキュリティが強固であることである。以下、それぞれ説明する。

Ruby on Railsの環境をPaaSとして提供、運用コストを最小化

PaaSとは、クラウドサービスをカテゴリー別に分類した呼び名であり、ソフトウェア開発・実行環境のレイヤーをサービスとして提供する。ハードウェア基盤をサービスとして提供するHaaS(Hardware as a Service)や、システム構築インフラ(仮想マシンやOS)を提供するIaaS(Infrastructure as a Service)に比べるとより上位にあたり、アプリケーションプログラムをサービスとして提供するSaaS( Software as a Service)に比べるとより下位にあたる。

PaaSがターゲットとする利用者は、ソフトウェア開発者、ソフトウェア開発企業、ソフトウェア教育に関わる団体などである。PaaSは、IaaSと異なり、インフラの構築、運用に関するサービス利用者側の負担を最小限に留め、開発に専念できるようにする。このMOGOKにおいても、サーバの設定、各種ソフトの導入と設定、バージョンアップ、セキュリティパッチなどに労力を取られることなく、Ruby on Railsによるアプリケーション開発にエンジニアのパワーを振り向けられるように考えられている。実際、MOGOKでは、Ruby、Ruby on Rails、nginx、MySQLなど構成要素となる各種ソフトウェアのアップデートは頻繁に実施しているという。

PaaSを利用するソフトウェア開発者にとって気になる点の一つが、サービス特有の作法や方言があるかどうか、すなわち特定のサービスへロックインされてしまうのか否かだろう。IIJによれば、MOGOKは利用者から見た開発環境が特殊なものにならないよう配慮を施しているとのことである。

開発環境の充実を図っている点もMOGOKの特色である。Gitリポジトリを用いた開発やビルド機能も備える。

純国産サービスとしてサポートやマニュアルが充実

MOGOKの特色の一つは、純国産のPaaSであることだ。日本人が使う上で敷居が低く、安心感があるサービスとなっている。例えば操作画面、マニュアルは日本語が基本で、サポートも日本国内で受けることができる。

MOGOKのサービス提供企業であるIIJは、もともとクラウドサービスとしてIaaSを中心とした「IIJ GIO」を2009年より提供中だった。MOGOKは、このIIJ GIOのPaaSレイヤーにあたるサービスとして同社が企画し、2011年のRuby World Conferenceにおいて発表、クローズドベータの募集を開始していた。約1年後の2012年10月末にはオープンベータに移行、さらに1年のベータ運用期間を経て、2013年12月には正式版にこぎつけた。

Rubyを活用できるPaaSを企画した理由のひとつに、IIJ自体がRubyユーザだったことが挙げられる。「自分たちも知っているフレームワークを載せることが効率がよいと考えた」(IIJ)。

IIJのHaaS、IaaSの基盤は、それぞれAPIをRubyで実装するなど、もともとRuby活用の実績を蓄積していた。このようなIIJの長年の蓄積がMOGOKには反映されている。

MOGOKのもう一つの特色として、提供企業であるIIJがバックボーン回線、やデータセンターといったファシリティからPaaSまでを1社で提供していることが挙げられる。これにより、例えば回線やインフラの問題による障害発生などが発生した場合にも、一貫性がある迅速な対応が期待できる。このようなPaaS提供企業は他にはあまり例がない。

インスタンス型PaaSとして、強固なセキュリティを追求

MOGOKの大きな特徴が、「インスタンス型」のPaaSでありながら、IIJのセキュリティの基準に合致していることである。

利用者ごとに仮想マシン(VM)環境を割り当てる場合が多いIaaSとは異なり、MOGOKは共通のVMに多くの利用者を収納する「インスタンス型」のPaaSである。インスタンス型PaaSでは、複数の利用者が共通のサーバ環境を共有する。インスタンス型PaaSは、利用者ごとにVMを割り当てるサービスと比較するとVM起動などのオーバヘッドがなく軽量で、集約度を高くできるメリットがある半面、セキュリティ上の要求はより厳しくなる。

IIJでは、同社のセキュリティ上の基準にのっとり、悪意がある利用者がなんらかの攻撃を仕掛けた場合でも、データの漏洩や障害などが起こらないよう、最大限の配慮を施した。「PaaSとして、非常に強固なセキュリティを達成できた。お客様から直接見える部分ではないが、大きなパワーを注いだ」(同社)。

このセキュリティを保つための工夫の一環として、LXC(Linux Container)の「アプリケーションコンテナ」の機能を利用して、ユーザ・アプリケーションどうしを隔離し、悪意のある利用者の攻撃を無力化している。また、データベース管理システム(MySQL)へ直接ログインしてアクセスすることがない構成となっている。このような工夫により、インスタンス型PaaSで発生しがちなセキュリティ問題を未然に防いでいる。

初期コストが低い点もMOGOKの特色である。MOGOKサービスは有償版と無償版とがあり、1Webインスタンスであれば無償で利用できる。つまり、個人がRuby on Railsの学習目的で使ったり、試験的に開発、運用したりする用途であれば、無償版でも目的は達成できる。

背景には島根県との結びつき、開発者コミュニティへの貢献も

MOGOKは、Rubyを推進する島根県のIT産業とIIJとの結びつきが反映されたサービスとなっている。IIJは、同社が設計した「コンテナ型データセンター」を活用し、島根県にデータセンターを設置してIIJ GIOのサービス提供をしている。またMOGOKのWebアプリケーション部分の開発を島根県に本社を置く開発会社であるネットワーク応用通信研究所(NaCl)に委託している。

さらにIIJでは、MOGOKの効果として、Ruby教育やRubyコミュニティの分野での同社の貢献およびプレゼンス向上を挙げる。島根県、徳島県の両県のRuby教育講座や、コミュニティのひとつ「Rails Girls」のため、Ruby PaaSであるこのMOGOKを提供するなどの活動も行っている。

なお、余談ながらサービス名称の「MOGOK」とは、ルビー原石の産地として知られるミャンマーの地名である。優れたRuby環境の産地となりたいとの願いがこめられたサービス名称といえる。

参考写真

iij01 iij02

※本事例に記載の内容は2014年2月取材日時点のものであり、現在変更されている可能性があります。