2012-03-18

WEBサイト発注してみた。

アニメゲームキャラクター情報をまとめてるサイトがないから作りたいなぁって

思ってたんだけどhtmlは初歩しかからないしプログラミングもできないので構想するだけで作れなかった。

ゼロから4ヶ月でWEBサービスをリリースした人の記事を見つけて「自分にもできるかな!」なんて思い挑戦してみたけど理解できず挫折・・・orz

WEBサービスを個人で作ってる人達が羨ましいです。

それでもWEBサイトを作りたかったので制作会社発注してみようと思い立った。

ただのキャラクターデータベースだけではつまらないのでコミュニティ要素なども付けて

ネットで見つけた制作会社見積もってもらうと下記のようになった。


合計1,483,125円


以前、SNSウェブカレ」のサイト制作費が1千万円で安く仕上がった(潰れたけど・・・)という話があったか

なんとなく3~400万くらいかかるんじゃないかなと不安だったんだけど予想より安い見積もりだったので、

このくらいの金額ならなんとか出せる!ということで制作してもらうことにしました。

本当は何社かに見積もってもらって比較しようと思ったんだけど面倒だったのでそのまま制作をお願いすることにした。

最初はもう少し高かったけど機能の簡略化とオープンソースライブラリを使用してもらう事で費用を抑えてもらった。)

去年の10月の頭くらいから打ち合わせを始めて第1フェーズワイヤーフレーム作成仕様策定をして第2フェーズhtmlシステム開発

移ったのは中旬だったかな?その段階で前金で4割の580,650円を支払いました。

制作会社には3回くらい打ち合せに行って、あとはメールでやり取りしていました。

当初は12月中にリリースを予定してたんだけど、なんだかんだで伸びてあらかた出来上がったのが2月中旬くらい。

見積もりがちょっと甘かったんじゃないかなぁって思うw

ちなみに僕はヒッキー(どれくらいヒッキーかというと外出は3日に1回くらい)なので制作してもらっている間は

家でずっとサイトに必要なアニメデータを収集していました。

↓作ったサイト

http://neoapo.com/


以下、サイト設計担当してくれた人の製作記。

サーバ設定

サーバさくらVPS 8Gを使用。CentOS5の64bit

設定した項目は以下のとおり

HDDが3つあって、普通に/var/wwwコンテンツを入れていくとHDDが溢れそうだったので、容量の大きいものを使うように工夫したりなど。

メモリもそこそこ積んであるサーバなので、mysqlphpapcに多めにメモリを割り当てる設定をした。

データベース

本当はmyISMやInnoDBエンジンでLIKE "%word%"のようなクエリーを投げて十分なパフォーマンスが出ればいいんですけどね。

それはムリなので、全文検索エンジンとしてgroongaを使用。

groongaを使用するために先にインストールしたのはこんな感じ

この時点でいざ、groonga!と思ってgroongaをインストールしようとすると競合を起こして入らない。

epel、remiレポジトリからインストールしてあったmysqlと衝突してたのでyum remove "mysql*"で

一旦mysqlを消して、groongaレポジトリからmysqlとgroongaをインストール

するとgroongaは入ったものの、今度はphpから使おうとしてもphp-mysqlパッケージが入らない。

あちらを立てればこちらが立たぬ状態で本当にこまった。

どうしようもないので、やりたくないけどyum-downloadonlyを使ってパッケージに含まれる設定やら、soファイルなどを直接とってきて入れた。

mysql.so、mysqli.so、pdo_mysql.soを/usr/lib64/php/modules/にコピーしたり、設定をコピーしたり、少しずついじりながら、なんとか動いてくれた。

状態としてはmysqlとgroongaはgroongaレポジトリからphpと本来php-mysqlパッケージインストールされるmysql.soは手動で置いたことになる。

シェルから直接mysqlログインするときはgroongaレポジトリのやつを、phpからmysqlを呼ぶときは手動で置いたmysql.soを使うことになっている。

ちょっと心境的にしんどい。別の方法があったかもしれないけど、調べても分からず結局1日くらいかかった。

アクセスカウンタ

アクセスは、サイト全体(トータル)、サイト全体(当日分)、各コンテンツ日別、各コンテンツ週間、各コンテンツトータルのアクセスをとるようにしています

高速だとうわさのredisアクセス回数を残しています

検討した候補はmemcaced、apcmysqlredis、fileあたりなんですが、

memcacheはサーバリスタートするとデータが消える。

apcapacheリスタートするとデータが消える。

fileは候補にあがったものの、メンドウ、、どうせなら楽な既製品がいい。と思って候補からしました。

残るはmysqlredisだけど、redisが高速って聞いていたのでredisにしてみました。

最初全部redisに入れて、集計した結果をmysqlに入れるつもりでしたが、週間ランキングなどはINSERT INTO .. DUPLICATE ONを使って、

アクセスした週の月曜日00:00:00のタイムスタンプコンテンツIDキーにしたレコードを作ればそのまま週間ランキングになるなー。と思ってmysqlを使っています

コンテンツのトータルアクセス数コンテンツレコードpvという項目をつくってUPDATE table SET pv=pv+1 WHERE id = ? のようにしました。

最初難しく考えていたけど、こうすることによって大分楽になったなーといった感じ。

まとめ

全文検索エンジンや対話検索、ここにこのリンクがあればなぁ。。という所に何とかしてリンクを作るのが本当に大変だった。

使い勝手を良くするために、ここにこの機能をなど、さくっと思いつくのは簡単でもそれを実現するために、あーでもない、こーでもないと

DBプログラムとにらめっこしながら「あ!こうすればできる!でもそうすると今度はこっちが・・・」みたいなのがあったりでとても大変だった。

そんなに機能がないような感じがしても、このサイトだけでテーブルが20個あって、途中本当に死にそうだった。

トラックバック - http://anond.hatelabo.jp/20120318122617

記事への反応(ブックマークコメント)