今回資金はあるので、一番値段の高いサーバーを選ぶって単純(?)な行為でもよかったのですが、実際は現実的な構成を選ぶことになりました。
1、CPUスペックは
コア数とクロック数のチェックは重要です。特にコア数は重要。クロックは最新のCPUなら大きな違いはないだろうというのと、電源の問題も考えてそんなに早くないものを選ぶことも多いですが、サーバーだとコア数は性能に大きな差が出てくるので出来るだけコア数の多いものを選びました。
例)Xeon L5640 6コア 2.26 GHz
2、メモリは
メモリは出来るだけ大容量のものが欲しい。
特にソーシャルゲームの場合は、更新処理が異常に多いし、全てのデータがメモリ上に乗るのが理想かな。
まぁ実際は全て乗せるのは難しいけど、ログ系などはメモリに乗せる必要もないし。でもユーザデータ関連のアクセスの多いテーブルは全てメモリ上に乗せるようにします。
例)96GB (今までは48GBでやりくりしてたけど、メモリも安くなってきたので)
3、ディスクは
SSDを使いたいところだが、元々データはメモリ上に乗せるのを前提に選定しているので、そこまで重要視してません。
もし、少ないメモリで、書き込みが少ない場合はSSDを使っていたでしょう。
アプリの種類によってデータベースの使い方も違うので、そこら辺はアプリ開発者などと相談しながらってことになるかな。
例)450GB SAS 6本、RAID10
RAIDについては、書き込みが多いので RAID5 は選定外です。読みは速いけど書き込みが遅いですからね。
あと問題は台数ですね。
1台ですめばいいのですが(バックアップも含めて2台構成)実際アプリが当たったらまず難しいでしょう。
もちろん当たることを前提で行動してますので、それなりの台数を用意しておきます。
ただ今回はメモリも安くなったし、多めにメモリを積んでいるので台数は少なめで。その方が開発もしやすいですからね。
ちなみに、CPUはもうすぐ新しいものが出るようだし、もう少し待ちたかったのですが・・・そんなことを言っていたらキリがないですからね。
実際はもっと細かいところまでチェックしてますが(NICの数やRAIDカードのメモリなどなど)
もっとスペックの低いサーバーを並べて、データベースをKVSのような使い方で開発するようにすれば、もっと安く済むと思われますが・・・
今回は開発のスピード重視で、なるべく簡単に開発出来る環境を目指しました。
ソーシャルゲームでは開発のスピードは非常に大事ですからね。インフラが開発の足を引っ張るような状況だけは避けたいです。
【関連する記事】

