- 株式会社ユーザベース
- インフラチーム
- 羽山 雄偉
安くて速い開発環境のため、選択した「自作」サーバー!ユーザベースに学ぶインフラ構築
〜目的と用途に合わせ、サーバー環境をどう選ぶべきか? スタートアップは必見、コストを抑えた開発環境の構築方法〜
株式会社ユーザベースでは、「要件を満たす中でコストが最も低いものを選ぶ」という、柔軟なインフラ選定を行っているそうだ。
企業・業界情報プラットフォームの「SPEEDA(スピーダ)」の運営にはオンプレミスを、「NewsPicks(ニューズピックス)」にはクラウドを、そしてSPEEDAの開発環境の一部には、社内のサーバールームに設置した自社サーバーを利用している。
実はその自社サーバーは、マザーボードからCPUまでパーツを自分たちで組み立てた「自作」サーバー。同社内のサーバー室には、基板がむき出しになった自作サーバーが、シルバーラックの上に十数台並んでいる。
自作サーバーを導入することで、同じスペックのサーバーと比較してコストを1/3に抑えることが可能になる。また、社内にサーバーがあることで開発効率の向上も期待できるという。
そしてその導入背景には、限られた予算の中で大量のサーバーを用意しなければならない状況での試行錯誤があったそうだ。同社でチーフテクノロジストを努める竹内 秀行さん、エンジニアの羽山 雄偉さんの2人に、詳しいお話を伺った。
ユーザベースのインフラを支える2人
竹内 私は学生時代に、システム開発の受託を行う会社を2社立ちあげました。ユーザベースには2008年の創業時から個人で関わっていて、予算も全然ない所からSPEEDAを作りました。
僕は基本的に、多くの人に影響を与えられるサービスを作りたいと思っています。SPEEDAはBtoBのサービスですが、その先にいる多くのお客様にも影響を与えられるものなので、そこが面白いですね。
羽山 私は前職はソーシャルゲーム系の会社で、インフラエンジニアをしていました。大学でネットワーク系のプログラムを書いていたときに、ネットワークについて調べたのが始まりで、それからずっとインフラ周りの仕事をしています。
300万社以上の企業データを提供する「SPEEDA」を開発
竹内 弊社の運営するSPEEDAは、企業・業界分析を行うオンライン情報サービスです。今では未上場企業も含めた300万社以上の企業データが蓄積された情報プラットフォームとなっています。
550を超える業界動向の他、M&Aデータ、統計データ、経済ニュースが格納されているので、データ量は膨大になります。
羽山 SPEEDAは、ソーシャルゲームのようなシステムと違って、大量の人が一度にアクセスすることはありません。その代わりに、限られた人が大量のデータにアクセスして解析をします。
人によって取得したいデータも様々なので、キャッシュもほとんど出来ないですね。リクエストを受ける度に必要なデータを生成し、高速に返すようなシステムが必要だという特徴があります。
インフラは目的ごとに使い分け。開発環境には「自作サーバー」を
羽山 インフラに関しては、SPEEDAはオンプレミスのデータセンターを使い、NewsPicksはAWS上に構築するという棲み分けをしています。インフラを選定するときは、要件を満たす中でコストが一番安いところを柔軟に選んでいますね。
そのひとつとして、社内に自作サーバーを設置して、社内システムとSPEEDAの開発に活用しています。
竹内 サーバーとは言っても、秋葉原で普通のPC用のマザーボードを買ってきて、CPUやメモリを付けて自作したPCですね。
羽山 今では10台以上の自作PCが、社内のサーバールームで稼働しています。もともとは、分散型のデータベースの検証のために台数が必要だったんです。
ただ、予算がない中で出来るだけコストをかけずに台数を確保する必要がありました。どうしたらいいのかと考えた結果、秋葉原でパーツを買ってきて自作をしたほうが安いし早いよね、というところから、台数が増えていったんです。
大量のデータを使った開発も高速化でき、コストは1/3以下に
竹内 社内に開発用のサーバーを置いている目的のひとつは、開発効率の向上ですね。
SPEEDAではデータベースが大きいので開発時に個人のPC内にデータベースを構築することができないんです。データベースサーバーにアクセスするために一度外部のネットワークに出てしまうと、通信に時間がかかってしまいます。
SPEEDAはひとつのページを表示するのに大量のデータをやりとりするので、その間の通信が遅いと凄い遅延が発生するんです。それなら社内にサーバーを置いて、高速なネットワークで開発できる方が効率が良いですよね。
羽山 データベースサーバーにはメーカー製のものを使っていますが、テスト用のアプリケーションサーバーの一部に自作のものを使っています。
自作なので、メモリをもりもり積んでいても1台当たり6、7万くらいで作れるんです。同じ構成でサーバーを買うと20から30万もするので、効率的に開発用の環境を構築できました。何もないところから始めているので、いかに効率的にリソースを確保するかという点には気を使っています。
空調や漏電など…運用には気をつけるポイントも
羽山 自社でサーバーを運用するのは難しいところもありますね。例えば、最近だと法定停電でビルが停電してしまうことがありました。10台のサーバーの中に、1サーバーあたり仮想マシンが4台くらい動いているので、計50台くらいのサーバーを全部シャットダウンし、終わったら立ち上げ直すというのはかなり大変でした…。
空調も気をつけるポイントです。弊社ではサーバーを置いている部屋の空調が、業務スペースと同じ空調システムなんですよ。社内で暖房を使っていると、サーバールームが暑くなってしまうこともあります。暑い時はサーバールームのドアを開けて、大きめの扇風機を回して冷やしています(笑)。
あとは自作したむき出しの基板をシルバーラックの上に置いているので、漏電対策も必要ですね。最初の頃にシルバーラックの上に直接サーバーを置いていたら、ラックに触るとビリビリ痺れることがあって(笑)。今はサーバーの下にダンボールを敷いて、絶縁体として使っています。
予算の限られた「サーバー好き」なスタートアップにオススメ
羽山 自作サーバーは、限られた予算の中で効率的にリソースを調達するための選択肢としては良いと思います。1台当たり6万から7万で作れるので、開発環境のような用途には適していますね。
竹内 特にサーバーが好きな人にオススメです。社内にサーバールームがあるというのは、個人的にはそれだけで楽しいしワクワクしてきます。僕がサーバーフェチなのかもしれないですが(笑)。社内にサーバーがあれば開発も圧倒的に速くなるので、それが良いですね。
SPEEDAは今後、InfiniBandのような高速ネットワーク技術を取り入れてよりお客さんが速くデータを取り出せるようにしたいと考えています。既に機器は調達しているのですが、実際に導入するところまでは至っていないので、これから進めていきたいですね。(了)