ソーシャルゲームの作り方 サーバー編1

個人でソーシャルゲームを0から作る事になったのでせっかくなのでまとめていきます。


サーバー
AWS(Amazon Web Services)を使います
http://aws.amazon.com/jp/

他の会社もいろいろクラウドサーバー提供してますが、
使い慣れているとの、DB、キュー、画像ストレージなど
各種システムまで完備していて個人で作るには一番スピード感出せそうなので選びました。


参考資料
http://www.slideshare.net/kentamagawa/aws-9170814
http://aws.amazon.com/jp/solutions/case-studies/gumi/


サーバー構成
ELB(ロードバランサ)
EC2(サーバー本体) 64bit AmazonLinux
RDS(データベース) MySQL InnoDB
S3+CloudFront(画像配信)


個人レベルならとりあえず普通のDBで大丈夫だと思うので、
とりあえずシンプルで一般的なもので構築してから、
あとでKVS入れるとか、画像配信とか改善すべきか検討しようと思います。


参考資料
http://yumewaza.yumemi.co.jp/2011/07/social_game_develop01.html


使用するシステム
PHP
Yii Frmework
http://www.yiiframework.com/doc/guide/1.1/ja/index
nginxとphp-fpm
memcached


Yii Fremeworkは高機能なのですが、速度も早く、カスタマイズもしやすく
構成もモダンなので使っていて楽しく、素晴らしいフレームワークだと思います。
このあたりの資料が面白おかしくためになるようにまとめてあるので、おすすめです!
https://speakerdeck.com/crifff/ming-cheng-wei-she-ding
http://www.slideshare.net/tanakahisateru/yii-14697676


nginxかapacheか迷いましたが、同時接続増えた時の性能が高いらしいということで今回はnginxにしました。


memcachedは前にファイルにセッション情報はいてたら大変なことになったのでとりあえずセッション保持用ですねー。



参考資料
http://d.hatena.ne.jp/CharcoalMenthol/20120319/1332164606
http://d.hatena.ne.jp/omiyan/20101213/1292187680


ソース配布、システム構築系ツールなど
git
デプロイツール(fabric,capistrano,cinnamon,Altax)
chef
vagrant


基本ソースはgitに入れて、AWSのサーバーからpullする感じで運用を検討してます。
補助ツールとしてデプロイ用のツールいれて、git pullを複数のサーバーに走らせて、あと設定ファイルの配布も行います。


ステム構築はAWSなのでそこまで考えなくてもいいかもですが、chefで管理していこうかなと。
それだと、もし他社のクラウドサービスに移行する場合も使えそうですし。


vagrantVMwareみたいなもので、テストするのに便利そうで、後名前が厨二でカッコいいので入れてみました(笑)
ここでchefのレシピ作ると捗りそうです。




Chef
http://www.engineyard.co.jp/blog/2013/engineyard-meetup-chef-seminar/
http://jedipunkz.github.io/blog/2012/08/18/chef-solo/
http://mass.hatenablog.com/entry/2012/05/09/123030
http://tnakamura.hatenablog.com/entry/20120605/chef_solo
Chefは複数のシステムから成り立っているので、とりあえず入れてはみれたが理解が大変ですねー

Chefの本
http://www.amazon.co.jp/%E5%85%A5%E9%96%80Chef-Solo-Infrastructure-Code-ebook/dp/B00BSPH158
Chefについて悩んでいたらちょうど本が出ました。
iPhoneでもiPadでも読める、Kindleめっちゃ便利です!



PHPのデプロイツール
http://kohkimakimoto.hatenablog.com/entry/2013/03/12/201330
PHPerなのでデプロイツールもPHPが気になります。

Windowsvagrant
http://shogo82148.hatenablog.com/entry/2012/01/15/200417
http://kakakikikeke.blogspot.jp/2012/08/vagrant.html
http://kazuph.hateblo.jp/entry/2013/02/05/234243
Windowsでのvagrantの入れ方、このあたり見て無事入れられました

http://d.hatena.ne.jp/naoya/20130205/1360062070
vagrantは最初個々で知りました、この簡単さは感動です。


サーバー、システム構成の時に見た資料
http://yamasaki0.hatenablog.com/entry/2012/02/16/230000
時間を追ってどうやったか知れて参考になりました。
http://www.slideshare.net/takafumionaka/web-15929881
構成要素がいろいろと出てきて参考になります。
http://www.slideshare.net/drecom/edgerails2
Railsですが、実際起きた問題と解決方法は見応えあります。
http://www.slideshare.net/infinite_loop/phpmysql-13361388
PHPソーシャルゲームを作るってことで自分とベストマッチでした

http://tech.naver.jp/blog/?p=1420
http://blog.livedoor.jp/techblog/archives/67662636.html
Lineのストレージ戦略、チャット系のシステムも作っているので参考になりました。

次回
次はAWSの環境構築まとめようと思います。