はじめまして、manako-tです。 今年度の新卒として4月から入社し、今月で早4ヶ月目になります。まだまだ半人前ではございますが、よろしくお願いいたします。 先日、と言っても2週間ほど前ではありますが、Amazon Web Services様(以下AWS様と略記させていただきます)を社内にお招きし、合同勉強会を行わせていただきました。 AWS様と言えば、Amazon EC2をはじめとして、まさにこれからのクラウドとはかくあるべし!と言えるようなサービスの数々を提供されている企業様で、私自身、今回の勉強会を大変楽しみにしておりました。 その様子について、レポートさせていただきたく思います。 まず、弊社の方から、三浦、坂本が発表させていただきました。

三浦:パフォーマンスチューニングの裏側 〜インフラ編〜
坂本:パフォーマンスチューニングの裏側 〜アプリ編〜



近年、弊社においてはソーシャルゲーム事業にかなり注力しており、おかげさまで1日の平均PV数が億単位にのぼる案件も飛び出しています。 弊社はかねてよりDSAS Hosting for Socialの運用による負荷分散ノウハウを持ち合わせているものの、ソーシャルプラットフォームやゲームの内容によってユーザ数が大きく異なるのが現状で、ちょっとしたきっかけでユーザ数が急増することも珍しくありません。ちょうどここ数ヶ月にこうした事態に見舞われた現場の担当者2名に、どのように高負荷に対処したかについて、インフラ担当、アプリ担当それぞれの立場から説明してもらいました。 インフラ面でのアプローチとして、NICの割り込みの処理の中で、IRQのバランスをうまくセットすることにより、リクエスト単位でCPU負荷を分散することができ、ネットワークの流量の上限を大きく改善できたという説明がありました。 また、アプリ面でのアプローチとして、主にMySQLの同時コネクション数がボトルネックになることが問題として浮上し、クエリの数そのものの削減や、クエリキャッシュの無効化、MySQLのキャッシュの代替としての、memcachedやPHPのキャッシュ機能(Alternative PHP Cache)の適切な利用の仕方など、非常に具体的な説明がありました。 続いて、AWS様から、エバンジェリストの玉川様、ソリューションアーキテクトの大谷様、荒木様に発表いただきました。

玉川様:AWSでアジャイルなインフラを実現しよう



なんと、その場でAmazon EC2の最上プラン(!)で利用できる、スパコンの仮想サーバーを起動して物理計算を行うという、非常に貴重なデモをしていただきました! EC2には最初からサーバーのコピーイメージが多数用意されており、イメージを選択して起動するだけのたった数分の操作で、すぐにサーバーが使える状態になるそうです。また、基本的に1時間単位での課金なので、負荷分散のために複数のサーバーを利用したい場合、フレキシブルな運用が可能となりそうです。例えば、アクセスが集中するタイミングでサーバーの台数を増やし、使わないときはすぐにシャットダウンして台数を減らしたりと、動的に稼働サーバー数を変えることも簡単にできるわけですね。 実際にこうした運用の仕方を行っている企業もあるそうで、個人的にはこれからのWebサービス運用の主流となっていくのでは、という予感がしました。

大谷様:NoSQL超概説



AWS様のサービスの枠組みにとらわれない観点からNoSQLの概説をしていただき、大変勉強になりました。 Apache Cassandra, HBaseなど、近年オープンソースのソリューションも数多く出現してきているNoSQLですが、AWS様でも、Amazon SimpleDBというサービスを展開されているとのこと。Amazon DynamoというAmazon社内で利用されているKVSが元になっており、その技術概要については、論文も発表されているようです。 CAP定理で言う一貫性(Consistency)は保証されていませんが、DHTに基づき、全ノードがデータの格納場所がわかるような仕組みになっています。また、クエリ同期のリードライトは基本的にメモリ上で行うため、データはすべてメモリ上に持っており、バックアップのために非同期にストレージに書き込む仕組みになっているそうです。 KVSと言うと、KLabではPHPとも親和性の高いTokyoTyrantを利用しているのですが、今後新たなソリューションの検討を求められる時機に遭遇するかもしれません。

荒木様:AWSでインフラのトレーニングをしようぜ



常時稼働サーバーとしては、一般人には多少敷居の高い印象のあるEC2ですが、それならばということで、インフラのトレーニングの場としてのEC2の活用法についてご提案いただきました。私は寡聞にして知らなかったのですが、今現在AWS様のサイトからアカウントを新規登録すると、EC2をはじめとしたさまざまなサービスを、期間限定で無料で利用できる枠があるそうです(!) 詳しく知りたい方は、こちらをご覧ください。 gmakeを使った並列コンパイル、分散FSのテストなど、仮想サーバーだからこそできる利用法も色々あるようです。 Heroku、phpfog、PiCloudというPaaSサービスの名前も挙げていただきましたが、これらのサービスの一部はEC2上でホストされているんですね。


私だけでなく、他のKLabエンジニアにとっても、大変密度の濃い2時間になったと思います。 Amazon Web Servicesの皆様、本当にありがとうございました。 今後ともよろしくお願いいたします。