2012/03/12

写真共有サービスslidropの裏側



どうも taka です。

新サービスが公開され楽しくドタバタしてます。

一緒にドタバタしたい人はこちら。 → 仲間募集

【今回、紹介するモノ】

さて、今回は3/6に無事公開された写真共有サービス


で使っているAWSのサービスやソフトウェアを紹介しようと思います。

今回は、コードはいっさいありません!

  • うんうん
  • だよね!
  • えっ!こっちの方がいいだろ!
  • 普通だなぁー

とか思って頂ければ。

【そもそもslidropって何?】

slidrop(スライドロップ)は、写真を最大12枚までのslideという1つの塊として投稿できる写真共有サービスです。

iPhoneアプリでは、友人が投稿したslideが縦のタイムラインとして表示されます。
そして、同時に投稿した写真は横方向にスライドする事でみることができます。

という事なのですが、百聞は一見にしかず!

こちらからダウンロードしてみて下さい!(笑)

【AWSのサービス】

slidropは以下のサービスを使っています。

EC2
RDSMulti AZ
S3画像だけでなく、アクセスログなども期限付きで置いてます。
CloudWatchRDSの監視
Route53

これらのサービスを使って以下のような構成にしています。

Gateway/デプロイ/管理サーバEC2外部からのssh/デプロイ/インスタンス立ち上げ
WebサーバEC2
DBサーバRDS
監視用サーバEC2各EC2インスタンスの監視
監視用DBサーバEC2

まずまず王道な構成だと思います。

負荷が増えてきたら、

  • Read Replica
  • Elastic Load Balancer or リバースプロキシ

を使おうかなぁと思ってます。

【ソフトウェア】

さて、次は使っているソフトウェアです。

■Gateway/デプロイ/管理サーバ(EC2)

aws-sdkインスタンス立ち上げなどのスクリプトで使用
CapistranoWebサーバへのデプロイやhosts配信など

■Webサーバ(EC2)

Apache
PHP 5.3
Code Igniter 2.0今はライセンスでもめてるみたいですが…
qmailメール送信のみ
daemontoolsTwitterへの投稿などのスクリプトを管理
s3cmdアクセスログやアプリのログを定期的にS3へ転送。
期限付きのバケットに入れてるので勝手に消える!

実はRailsで構築しようかなぁと思っていた時もあったのですが

諸事情でCode Igniterになりました。

隙あらばリプレイスしちゃおうかなぁとか思ってます(笑)

■DBサーバ(RDS)

MySQL 5.5utf8mb4を使いたかったので

■監視用サーバ(EC2)

Zabbix僕自身は使うの初めてですがDECOLOGでは大活躍中です

■監視用DBサーバ(EC2)

MySQL 5.5RDSを使う程ではないので安上がりに済ませる為に構築
aws-sdkEBSのマウント用スクリプト

EBS上にMySQLのデータを置いているのでTerminateされてもデータは無事です。

この辺りの構築方法とかは次回にでも書こうと思ってます。

【まとめ】

特に目新しさはないと思いますが以上のような構成でslidropは動いています。

サービスが成長したらこの構成がどうなっていくのか!!

果たして仲間は増えているのか!!!(それとも俺一人で負荷と戦うのか!?)

乞うご期待!