[技術解説]
レンタルサーバーの弱点を解決─mrubyで実現したクラウドライクな「ロリポップ!マネージドクラウド」
2020年4月7日(火)Ruby bizグランプリ実行委員会
日本発のオープンソースのプログラミング言語として知られる「Ruby」と、その開発フレームワーク「Ruby on Rails」。これらを使ったアプリケーションやサービスの開発が定着して久しいが、企業ITのフィールドで実際にどのように活用され、新たなシステムやサービスが創られているかを知る機会は少ない。本稿では「Ruby bizグランプリ2019」で大賞に選ばれた2つのサービスを2回に分けて紹介する。今回は、オートスケールをユーザーに代わって行ってくれる、クラウドライクなレンタルサーバー「ロリポップ!マネージドクラウド」(開発:GMOペパボ)である。
Rubyを使って開発されたシステムやサービスを表彰する「Ruby bizグランプリ2019」。前回は料理レシピサービスで知られるクックパッドが開発した生鮮ECサービス「クックパッドマート」を紹介した(関連記事:アプリで注文、新鮮な食材がその日に届く─生鮮ECの新しいかたち「クックパッドマート」)。
今回は、もう1つの大賞受賞サービスであるGMOペパボの「ロリポップ!マネージドクラウド」を紹介する。歴史の長いレンタルサーバーを、今どきのクラウドインフラ(IaaS)のような使い勝手で利用できるサービスとして設計したものだ。GMOペパボは、同サービスを運用サービス込みのマネージドクラウドとして、レンタルサーバーとクラウドの間を埋めるポジションを売りに提供している。
Ruby bizグランプリ2019大賞
ロリポップ!マネージドクラウド https://mc.lolipop.jp/
開発概要:マネージドクラウドサービス
開発企業:GMOペパボ株式会社
Rubyを採用した理由:実現したいアーキテクチャの模索の中で、柔軟性のあるmrubyとLinuxを組み合わせることが最適だと気づいたから
Ruby採用効果:自社開発のHaconiwaを利用することでLinuxの機能をRubyから制御できるようになり、開発効率が向上した
レンタルサーバーの弱点を解決できるサービス
レンタルサーバーを使っていると、自社のサービスなどがテレビの人気番組で紹介されたり、SNSで話題になったりすると、想定外のアクセス急増に耐えられない場合がある。しかも、契約形態によっては、自身のサイトだけでなく同じホスト上にある他のサイトも影響を受けてしまうこともある。解決策の1つとして、IaaSに移行するという手段があるが、ITインフラエンジニアがいない組織では運用が難しく、外注すると運用コストが高くなってしまう。
「ロリポップ!マネージドクラウド」は、クラウドの利点の1つであるオートスケールをインフラエンジニアがいなくても利用できるのが特徴だ。インフラに詳しい人がいなければ、想定外のアクセス急増による思わぬ利用料の増加に驚いたりするのでは? という疑問に対しては、いわゆる“クラウド破産”のようなことにならないよう、料金上限の設定ができるようになっている。
拡大画像表示
Linuxコンテナ用に開発した「Haconiwa」
同サービスの実現に大きく貢献しているのが、技術部 技術基盤チーム シニア・プリンシパル エンジニアの近藤宇智朗氏が個人的な趣味で開発したという、オープンソースソフトウェア(OSS)の「Haconiwa」だ。「Haconiwa」は、mrubyでプログラマブルなコンテナを作ることを目的として実装した、Linuxコンテナランタイムである。mrubyは、組み込みシステムやアプリケーション組み込み向けの軽量なRuby言語のこと。
拡大画像表示
Go(Googleのプログラミング言語)で実装されているDockerに対して、「Haconiwa」はLinuxのコンテナ機能をRubyから呼び出せるように、mrubyでLinuxシステムコール(OSの機能を呼び出すための機能)などのC API(クリプトAPI)のラッパーを実装している。また、mrubyを使いLinuxの機能をインタフェース経由で使う設計方針にしたため、作り込んだコードがLinuxのセキュリティアップデートに影響しない。
Linuxの得意な企業が自分たちの用途に合わせてチューニングすると、パッチを直接当てられなくなるデメリットが大きい。結局チューニングを止めてしまった事例も聞くだけに、賢明な選択だと言えるだろう。実際、ホスティングサービスを実装するには、「Linuxの機能をカリカリに駆使しないといけない」(近藤氏)のだそうだ。
Haconiwaについては、Rubyコミュニティ主催の年次イベントRubyKaigi2016にて近藤氏自ら「Welcome to haconiwa─the (m)Ruby on Container」と題して発表している。
●Next:mruby+Linuxで、どうやってマネージドクラウドを実現したのか?
会員登録(無料)が必要です
- 1
- 2
- 次へ >