グルーポン系サービスをRoRのPaaS「Heroku」で開発した「ミナワリ」。開発者に利点と使い勝手をインタビュー

2010年6月22日

先週オープンしたばかりの共同購入型クーポンサービスの「ミナワリ」は、Ruby On Rails(以下RoR)のPaaSである「Heroku」の上で構築されたWebサイトです。共同購入型のクーポンサービスは米国の「Groupon」(グルーポン)などが知られており、現在急成長している分野。

(ちなみに「「about Heroku」には「pronounced her-OH-koo」とあります。日本語的発音で「ハオク」、巻き舌っぽく言えばローマ字読みの「ヘロク」でもよさそうですね)

fig 「ミナワリ」は、あとN時間でN人購入者が集まれば、表示されているレストランが半額で利用できる、といった共同購入型クーポンサービス

Herokuは、Amazonクラウドを基盤とし、その上にHeroku社がRoR環境やデータベース、デプロイ機能などを構築、PaaSとして提供しているサービス。国内での知名度はまだそれほど高くないため、Herokuを採用した事例は珍しいものといえるでしょう。

Heroku | Ruby Cloud Platform as a Service

Herokuを用いたミナワリ開発者にインタビュー

そこで、実際にWebサイトを構築するにあたり、RoRによるPaaSとしてのHerokuの実力はどれほどのものだったのか? Heroku上でミナワリの構築を担当した、シグマコンサルティング株式会社 代表取締役 橋本圭一氏にメールでインタビューを行いました。

―― なぜRuby on Rails(以下RoR)を開発環境として選んだのですか?

テーブル数が20から40程度の簡易なコンシューマー向けWebサイト(ECサイト)を作ろうとした場合、基本機能およびプラグインが充実しているRoRでの開発は、短期間で開発できるためです。

例えば今回のミナワリでは、次のようなプラグインを使いました。

  • active_merchant: 多数(約60)の決済代行会社のAPIを叩く機能
  • paperclip: ファイルのアップロードなどの機能(画像の拡大、縮小など含む)

これらのプラグインは、開発工数の削減に大きく寄与していいます。

―― 自前の環境やレンタルサーバではなく、なぜHerokuを選んだのでしょうか?

HerokuはRoRのPaaSなので、いろんなことがすぐに試せたためです。例えば、CPUが最小レベル、データベースがPostgress、容量が5MBまでであれば無料で試せます。また、gitにプッシュするだけで容易にデプロイできます。そもそもPaaSなのでOSの設定もRoRの環境設定も不要で、Webサイトの開発に集中できることが最大の利点でした。

また、データベースのバックアップも1世代まで無償、有償で無制限になるので、こうした点はサイト運営のコスト削減に寄与します。

Heroku専用の特別なコーディングも不要で、ECサイトの必須要件である、大量のメール送信、SSLの利用、独自ドメイン、例外監視の設定も容易でした。

ただし、Herokuにアップロードしたファイルはリードオンリーになるため、ファイルの書き込みをしたい場合にはAmazon S3などを利用する必要があります。Herokuではそのこともちゃんと考えられていて、そのための設定も簡単にできます。

―― Herokuの費用はどのくらいかかっていますか?

DynoGridと呼ばれるCPUリソースと20GBのデータベース容量を購入して月額約140ドルです。OS側の管理が不要なのとデプロイの行いやすなど自社での運用コストが減る面を考慮すると、この金額は悪くないと思っています。

―― そのDynoGridとはどのような単位なのでしょうか?

「Dyno」とはhttpdのMongrelにほぼ相当するので、Webサーバのプロセス数と考えてよいと思います。HerokuはDynoを組み合わせたリソースの集合体として、サーバーを構築しています。これが「DynoGrid」です。

HerokuでのCPUリソースは、このDynoを単位として時間当たり5セントから追加購入できる柔軟性を持っています。ちなみにデータベースも容量に応じた購入ができます。

―― Herokuを使って便利だった機能を教えてください。

本番運用に関して、ECサイトとしてのWebアプリケーションに必要な機能はすべて満たしていたので、そこは便利だと感じました。

ただし国内サーバと比較すると、やはりレスポンスはそれほど速くないといえます(かといって特別遅いわけでもありません)。また、Amazon S3の部分もCDN(コンテンツデリバリネットワーク)を利用してレスポンスをあげています。

注意点として、データベースの時刻がHerokuの制約としてUTCになっています。が、プログラミング上の時刻はRoRのロケート設定(Time.zone.now)を日本にすることで問題なく利用できます。

―― 最後に自由にコメントをどうぞ。

ミナワリは、流行の兆しを見せている「フラッシュマーケティング」といわれる、時間や条件を限定した短期的なEコマースを行うWebサイトです。具体的には、いまから24時間以内に20人の購入者がいれば特定の有名レストランが半額で利用可能、などといったクーポンの提供を行います。

そうしたサービスの性格上、メディアで紹介された場合などにWebサイトへのトラフィックが短期間で激しく増減する可能性があります。そういった場合に管理コンソールから簡単にサーバの能力を追加できるHerokuは、ミナワリのようなWebサイトの運用に非常に適していると考えます。

また、サーバの運用はHerokuに任せることができるので、管理負担も軽減されます。そのおかげで弊社のような小さい企業でもインフラを活用した勝負することができるようになりました。今は今後のビジネスの発展が楽しみな状況です。

あわせて読みたい

クラウド Ruby システム開発




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本