hiroohiのメモ

はてななのでITやスタートアップ周りの話(ほとんどが自分への備忘録だけど)を書いています。

超シンプル!クラウド時代のサーバ構成

http://mtl.recruit.co.jp/blog/2013/04/newshub_infra.htmlからの転載。

3月11日(月)にリリースされたニュースアプリ「newsHUB(ニュースハブ)」、おかげさまで既にたくさんの皆様にご愛用いただいており、チーム一同感激しております。
まだお試しいただいてない方は是非こちらからどうぞ!

banner_appstore.png

今回は、newsHUBのサーバ側のアーキテクチャーをご紹介します。

これまでいくつかの機会で発表しておりますが、MTLのスマホアプリはほぼ全てAWSを利用しています。全体の考え方等は以下を参考にしていただければと思います。

newsHUBは我々では初めて手がける情報提供型のアプリですので、他のサービスとは異なるアーキテクチャを一から検討しました。
ポイントは【シンプル】です。

サーバ構成

f:id:nijiniji:20140928022312p:plain

利用しているAWSのサービス:

  • EC2
  • RDS
  • S3
  • Route53
  • AutoScaling
  • ELB
  • IAM

この中でnewsHUBの核となるのがS3です。

現在のnewsHUBは、こちらでセレクトしたニュースを一斉配信しています。同一のデータをたくさんの端末に同時配送するために配信データはS3に一旦格納し、アプリは直接S3から記事を取得するようにしています。
S3のWebHosting機能は非常に低額なのに同時アクセスでも全く問題ないスケーラビリティが特長ですので、それを有効活用しています。

EC2は記事提携元からのニュース記事のクローラとアプリ紹介ページ、記事をTwitter等に投稿した時のページ用として利用していますが、非常にコンピューティングリソースの使用量が少ないため、最小限のインスタンスでまかなっています。

現在のnewsHUBがとにかくシンプル(画面が全部入れても3個くらいしかない)な構造なので、サーバサイドも非常にシンプルになっています。

将来◯◯機能が入るかもとかは考量してないのですか?とよく聞かれますが、クラウド利用ですので、その機能を入れるときに必要に応じて構成を見直していけばいいと考えていますので、今のnewsHUBに最適化したサーバ構成になっています。そしてこのような考え方を実現するにはクラウドが最適だと思っています。

一見なんてことない構成かもしれませんが、この根底となる考え方はクラウド時代の考え方として参考にして頂ければ幸いです。