【連載】失敗から学ぶアプリ開発ノウハウ (1) 世界は広かったの巻
2014/09/25
自社開発アプリ「clickest」の開発・プロモーションを通じて得た知見をみなさんと共有する連載の第1話です。
今回は、世界の「広さ」(地理的な広さの意味です)に苦労した話です。
ブラジルでも使ってもらいたい
clickestの企画理念に「世界中の授業を変える」というものがあります。
スマートフォンやタブレットが世界中で普及しつつあるこの時代。
世界中の様々な国で、新世代の子供たちに新しい学習体験をしてもらいたい。
そんな思いを込めてclickestを開発しました。
個人的には、成長著しい南米諸国で使ってもらえるといいなあと思っていました。
そのため、知人を通じてスペイン語とポルトガル語(ブラジル)のネイティブを紹介してもらい、アプリに翻訳を組み込みました。
スマホアプリは世界中で同じように使えるという誤解
そんなこんなで開発が進みました。
スマホアプリなんだから、多言語翻訳さえしておけば世界中で同じように使ってもらえるに違いない。
ああ神様ありがとう。母さん、いい時代になりました。
僕たちのアプリはブラジルでもチリでも使ってもらえます。
・・・私にも、そう思っていた時代がありました。。。
しかし、実際に作ってみたら全然そんなことないじゃないですか!
原因は地理的な距離
はい。原因は地理的な距離にありました。
地球の一周は4万キロメートルあり、日本とブラジルの間の距離はざっと2万キロメートルあります。
光の速さは30万キロメートル/秒ですから、光の速さで日本からブラジルまでまっすぐ進めたとして、片道行くのに0.067秒かかる計算になります。往復なら0.13秒です。
つまり、日本が世界に誇る光ファイバー技術でブラジルまでまっすぐ光ファイバーを敷いたとしても、1回の通信で最低0.13秒かかるということです。
実際には光ファイバーはまっすぐ敷けませんので、航空路線のように世界各地を乗り継いでブラジルまでたどりつくことになります。
さらに。TCP/IPやSSLといったネットワーク技術に詳しい人は、気づかれたかもしれません。
そう、1回の通信が1往復で終わるなんてことはまずないのです。
ハンドシェイクやら何やらの前置きで、何往復もした後に初めて通信が完了します。
つまり、仮に日本にサーバがあってブラジル人がブラジルからアクセスしたとすると、通信が遅すぎてまったく使えないアプリになってしまうんですね。
clickestはリアルタイムレスポンスをウリにしたシステムです。生徒がクリックしたら先生の端末ですぐに反応が得られることが大切です。もし1秒も間が空いてしまったら、アプリの良さが全く感じられないでしょう。
clickestを開発しはじめて最初に苦労した点が、この「世界の広さ」でした。
クラウドを活用して問題を解決
そこで、clickestでは世界各地にサーバを置いて反応を良くする工夫をしています。
マスターとなるサーバは北米にあり、そのコピーを世界各地に置いているイメージです。
そして、遅延ベースのルーティングという技術で、その人が今いる地域に一番近いサーバに自動的に接続するようにしています。
こんな高度なことができるのは、Amazon Web Services(略してAWS)というクラウドを活用しているからです。
技術に興味のある方は、Route53のレイテンシーベースルーティングを調べてみてください。
■参考サイト
AWS | Amazon Route 53 – ドメインネームサーバー – DNS サービス
世界各地にサーバを置いていたら、コストがかかるのでは? と思われるかもしれませんが、AWSなら最も安いタイプで月額1,000円〜程度で世界各地にサーバを置くことが可能です。
こうやって世界各地にサーバを設置してはじめて、アプリを通じて世界中で同じような体験を提供できるということなんですね。
知らなかった頃は幸せでした・・・。
第2話に続く
無事にアプリの開発を終えて、リリースしましたがすぐに問題が。
Googleの検索でヒットしない! なぜだ!
続きは第2話で。
【連載】失敗から学ぶアプリ開発ノウハウ (2) SEOは難しかったの巻
全巻の目次はこちら。
■ App Store / Google Playでclickestを見る