どうも taka です。
新サービスが公開され楽しくドタバタしてます。
一緒にドタバタしたい人はこちら。 → 仲間募集
【今回、紹介するモノ】
さて、今回は3/6に無事公開された写真共有サービス
で使っているAWSのサービスやソフトウェアを紹介しようと思います。
今回は、コードはいっさいありません!
- うんうん
- だよね!
- えっ!こっちの方がいいだろ!
- 普通だなぁー
とか思って頂ければ。
【そもそもslidropって何?】
slidrop(スライドロップ)は、写真を最大12枚までのslideという1つの塊として投稿できる写真共有サービスです。
iPhoneアプリでは、友人が投稿したslideが縦のタイムラインとして表示されます。
そして、同時に投稿した写真は横方向にスライドする事でみることができます。
という事なのですが、百聞は一見にしかず!
こちらからダウンロードしてみて下さい!(笑)
【AWSのサービス】
slidropは以下のサービスを使っています。
EC2 | |
RDS | Multi AZ |
S3 | 画像だけでなく、アクセスログなども期限付きで置いてます。 |
CloudWatch | RDSの監視 |
Route53 |
これらのサービスを使って以下のような構成にしています。
Gateway/デプロイ/管理サーバ | EC2 | 外部からのssh/デプロイ/インスタンス立ち上げ |
Webサーバ | EC2 | |
DBサーバ | RDS | |
監視用サーバ | EC2 | 各EC2インスタンスの監視 |
監視用DBサーバ | EC2 |
まずまず王道な構成だと思います。
負荷が増えてきたら、
- Read Replica
- Elastic Load Balancer or リバースプロキシ
を使おうかなぁと思ってます。
【ソフトウェア】
さて、次は使っているソフトウェアです。
■Gateway/デプロイ/管理サーバ(EC2)
aws-sdk | インスタンス立ち上げなどのスクリプトで使用 |
Capistrano | Webサーバへのデプロイやhosts配信など |
■Webサーバ(EC2)
Apache | |
PHP 5.3 | |
Code Igniter 2.0 | 今はライセンスでもめてるみたいですが… |
qmail | メール送信のみ |
daemontools | Twitterへの投稿などのスクリプトを管理 |
s3cmd | アクセスログやアプリのログを定期的にS3へ転送。 期限付きのバケットに入れてるので勝手に消える! |
実はRailsで構築しようかなぁと思っていた時もあったのですが
諸事情でCode Igniterになりました。
隙あらばリプレイスしちゃおうかなぁとか思ってます(笑)
■DBサーバ(RDS)
MySQL 5.5 | utf8mb4を使いたかったので |
■監視用サーバ(EC2)
Zabbix | 僕自身は使うの初めてですがDECOLOGでは大活躍中です |
■監視用DBサーバ(EC2)
MySQL 5.5 | RDSを使う程ではないので安上がりに済ませる為に構築 |
aws-sdk | EBSのマウント用スクリプト |
EBS上にMySQLのデータを置いているのでTerminateされてもデータは無事です。
この辺りの構築方法とかは次回にでも書こうと思ってます。
【まとめ】
特に目新しさはないと思いますが以上のような構成でslidropは動いています。
サービスが成長したらこの構成がどうなっていくのか!!
果たして仲間は増えているのか!!!(それとも俺一人で負荷と戦うのか!?)
乞うご期待!