at+linkの魅力を探る

第5回アプリプラットフォームにKVSを使った高機能キャッシュサーバ登場

ソーシャルアプリのホスティングに特化した専用サーバサービスとして話題を集めているのが「at+link アプリプラットフォーム」です。今回はこのサービスの新たなオプションとして発表された、高機能なKVS環境を安価に提供する「キャッシュサーバ」サービスについてお話を伺いました。

ソーシャルアプリの運用負荷を低減できるキャッシュサーバサービス

SNS上でゲームなどのアプリを提供するソーシャルアプリの運営において、大きな課題となっているのが「5秒ルール」への対応です。これはユーザからのリクエストに対し、5秒以内に応答できなかったセッションが頻発すると、ソーシャルアプリのランキングページから除外されたり、あるいは強制的にエラー画面が表示されるなどといったペナルティが課されてしまうというもの。この5秒ルールが適用されるとアプリの提供に大きな支障を来すことになることを考えると、その対策は極めて重要です。

こうした課題に対応するため、⁠at+link アプリプラットフォーム」に新たなオプションとして登場したのが「キャッシュサーバ」サービスです。リンク ディベロッパーサポート マネージャー 文屋宏氏は、このサービスが5秒ルールへの対策になると話します。

リンク ディベロッパーサポート
マネージャー 文屋宏氏
リンク ディベロッパーサポート マネージャー 文屋宏氏

「実は『5秒』という数字の中には、SNS事業者が持つユーザプロファイルの取得なども含まれています。つまりユーザからのリクエストに応じて事業者のサーバに問い合わせを行い、ユーザに結果を返すまでの時間が5秒以内というわけです。ただ、毎回事業者のサーバに問い合わせて5秒以内に応答を返すのは難しいため、多くのソーシャルアプリ事業者は独自にキャッシュサーバを構築し、一度問い合わせたプロフィールなどを一時的に保存しておくことで対応しています。このキャッシュサーバがサービスとして提供されていれば便利ではないかということで、今回のアプリプラットフォームのオプションとして提供することにしました(文屋氏⁠⁠」

さらに、リンク ディベロッパーサポート シニアエンジニアの前佛雅人氏は、ユーザ自身でキャッシュサーバを運用管理するのは容易ではないと指摘します。

リンク ディベロッパーサポート
シニアエンジニア 前佛雅人氏
リンク ディベロッパーサポート シニアエンジニア 前佛雅人氏

「我々がヒアリングしている中でも、実際にサーバの1台にmemcachedを組み込んでキャッシュサーバとして利用しているというお話をよく伺います。ただキャッシュサーバがダウンすれば影響が大きいため、ユーザ自身で常時サーバを監視し、トラブルがあればキャッシュサーバを別のハードウェアに切り換るなどといった対応をしなければなりません。当サービスのキャッシュサーバサービスを利用していただければ、こうした運用の負担を大幅に軽減できます(前佛氏⁠⁠」

KVSとしてokuyamaを採用

このキャッシュサーバサービスは分散KVSとして実現されており、ユーザはmemcachedと同様のインターフェースを使ってアクセスすることができます。分散KVSには、神戸デジタル・ラボ ICTソリューション部 リーダーの岩瀬高博氏が開発した「okuyama」が採用されました。

神戸デジタル・ラボは、okuyamaの開発・導入支援・サポートサービスをはじめ、Webサイトの企画制作からシステム開発、情報セキュリティまで、幅広い側面から企業のIT化をサポートしています。また新しいことにチャレンジする社風があり、カンファレンスを主催するなどオープンソースにも積極的に取り組んでいるとのこと。そうした背景から生まれたのが、岩瀬氏が開発したokuyamaだったわけです。

岩瀬氏はokuyamaを開発した背景として、RDBMSとは違うストレージに対する技術的興味があったと話します。

神戸デジタル・ラボ ICTソリューション部
リーダー 岩瀬高博氏
神戸デジタル・ラボ ICTソリューション部 リーダー 岩瀬高博氏

「もともと自分でRDBMSを開発していたのですが、それを続けているうちにもっと違う形のストレージが今後は出てくるのではないかと考えるようになりました。ちょうどそのときに、Googleが開発したBigTableが話題になり技術的な興味をかき立てられました。そこで自分の技術力でどこまで開発できるのか、あるいは自分の考えがどこまで通用するのかというのを試してみたくて、okuyamaの開発に着手しました(岩瀬氏⁠⁠」

岩瀬氏はこのokuyamaを活用したキャッシュサーバサービスを利用するメリットとして、ユーザごとにKVSのクラスタを構築する手間から解放されることを挙げます。

「もともとキャッシュサーバ用途でKVSを使う際、ユーザごとにクラスタを構築するのは無駄が多いと考えていました。それよりもサーバ運用のプロフェッショナルがクラスタを管理し、ユーザはそのクラスタの中に用意された専用の領域を使うという形の方が効率的ではないでしょうか。そうした考えもあり、今回キャッシュサーバサービスにokuyamaを提供しました。ただ、複数のユーザで1つのクラスタを利用するには、マルチテナントをサポートするための機能が欠かせません。そこでこのサービスの提供に合わせ、ユーザごとにデータを蓄積する領域を分割する、アイソレーションという機能を新たに実装しています(岩瀬氏⁠⁠」

さらに文屋氏は、このサービスを使うことで物理的な制約にとらわれずにキャッシュサーバを利用できると話します。

「たとえばキャッシュサーバのメモリが足りなくなった場合、メモリの増設で対応するといったことが考えられますが、サーバを一度止める必要がある上、そもそもそのハードウェアの上限までしか増設することはできないなど、物理的な制約が生じてしまいます。アプリプラットフォームのキャッシュサーバサービスでは、こうした制約がなく、シームレスに容量を増やせます。またユーザ自身でキャッシュサーバを運用していると、そのサーバがダウンしたときに大きな影響が出てしまいますが、このサービスでは自動的に複数のサーバに分散して冗長化しているため、ユーザが物理的な障害を意識することもありません(文屋氏⁠⁠」

なお、アプリプラットフォームのキャッシュサーバサービスは、安価に提供されていることも大きなポイントです。初期費用が発生しない上、1GBまでは無料で利用することができます。2GBで630円/日以降、4GB・6GB…と増やしていけます。日割課金のため無駄が発生しないのは嬉しいポイントでしょう。

このキャッシュサーバサービスの提供をはじめ、Fusion-io製のPCI Express接続SSDによるデータベースの高速化や90分以内での迅速なスケールアウト、サーバの応答速度のきめ細かな監視サービスなど、アプリプラットフォームにはソーシャルアプリの提供に最適な機能が多数盛り込まれています。これからソーシャルアプリを提供する、あるいは現状のホスティングサービスに限界を感じているのであれば、ぜひat+linkのアプリプラットフォームを検討してみてはいかがでしょうか。

なお、okuyamaはデータに対して永続性が求められる用途にも使えるなど、幅広い用途で使えるKVSとして開発されているとのこと。こうしたokuyamaの特徴を活かし、今後アプリプラットフォームにおいて容量の大きい画像、あるいはアクセスログをストレージするサービスの提供も予定されています。アプリプラットフォームの今後の展開に注目です。

おすすめ記事

記事・ニュース一覧