これなぁに?KLab株式会社の若手エンジニアによる技術ブログです。phpやRubyなどの汎用LLやJavaScript/actionScript等のクライアントサイドの内容、MySQL等のデータベース、その他フレームワークまで幅広く面白い情報を発信します。>カテゴリ2013年3月度ALMレポート(Amazon様との合同開催)お久しぶりです、okabe-mです。KLabでは毎月ALMという社内勉強会を開催しています。今回はALMのご説明と2013年3月度ALMのレポートをお送りします。※またまた前回のレポートからだいぶ日付が空いてしまいましたが、毎月開催しております。問わない勉強会・発表会です。内容的に高度なものである必要はありませんが、発表者自身が工夫した箇所があることを求められます。発表者にはプレゼン練習、聴衆には質問する能力を養う機会を提供する目的もあります。開催は東京六本木の本社で行われますが、TV会議システム、インターネットを通じて国内外の拠点に配信を行っています。先月の3月度は株式会社Amazon様との合同でAWSについての勉強会を開催しました。株式会社Amazon様でそれぞれ発表を4人ずつ発表して頂きました。レポートに移りましょう。」クラウドコンピューティングが始まる前の科学者のお話。科学者がデータを保存する場所と解析する場所が世界中にバラバラに置いてあり、解析するのにものすごい不便でした。今ではS3を使えば一発で解決できますが、当時はなかったので試行錯誤して生まれた解決方法がiRODSという仕組み。データを保存する際にルールを決めて、取り出す際はいろんなデバイスに対応するために様々なインターフェースを作成し、いろんな要望に柔軟に対応。・Datagridを実現するミドルウェア・Datamanagementのインフラストラクチャ・ポリシードリブンのデータマネジメントAWSとは直接関係ないですが、S3の仕組みを考える上でも必要な知識でありますので、新たな発見であり目から鱗でした。※ごめんなさい、写真撮れてなかったです...データベースサーバの性能をなぜ評価するのか?問題提起から始まりました。不十分であると、全体の応答に問題が出るかつWebサーバは追加しやすいが、データベースサーバは簡単には追加できず、大きな改修になりがちなので、サービス本番開始前に十分に検討しましょう。データベースサーバを評価するにあたっては、実際にサービスで使ってるアプリケーションのDB負荷を評価します。mysqlのログからSQLを抽出して、記録された通りのSQLを発行するプログラムを作って、一気に実行させるというやり方です。IOPS]というところで動かしてみました。I/O性能を設定できるEBSボリュームが登場!実際に検証してみるとあまりパフォーマンスがあがらなかったということです...ただし、別の構成(SSD+Raid)で検証してみると、50%程のパフォーマンス向上が見受けられました。KLab側でのアプリケーションの構成上、InnoDBのメモリをいっぱいいっぱい使っているので、I/Oの向上ではあまりパフォーマンス改善に向かないということ。要は適材適所で、使う場所が正しければパフォーマンスの改善はできる。まとめ・データベースの評価はできるだけアプリケーションの動作に近い条件で評価すべき・最適な設計のためにボトルネックはしっかり把握する・人から聞いた◯◯を使えば速くなるは鵜呑みにしないことWebの世界で有名な言葉「推測するな、計測せよ」がありますが、まさにその通りですね。大谷様「NetflixのクラウドOSS」AWSの人間なのにAWSの話をしないということで、Netflixの話をして頂きました。Netflixとは、映画やTVのストリーミング企業。そちらの会社でのオープンソースの活用を紹介。全部オープンソースをベースにフルスクラッチで開発しており、GitHubにて公開している。(GitHubのアカウント:GitHubAWSに頼りきることをせずに、AWSにないものが自分達で作るという思想が大変よいとこのこと。以下で、Netflixが作ったサービスを紹介。MonkeyAWS上リソースをランダムに停止させるミドルウェア。柔軟で可用性の高いシステム構築のために、本番環境で常に動かしている→どうして?障害が起こらなすぎるので、障害に耐えるコードを書く気づきが開発者に少ないため。・ASGARDオープンソースのマネージメントコンソール。GUIで一発で変更できるし、いろいろ設定も変えれる素晴らしいツール。※ごめんなさい、写真撮れてなかったです...様々なチームで開発を進めるなかで、チームごとに運用しているため、運用ノウハウが貯まりにくい。CloudFomation(EC2インスタンスや仮想ルータなどAWSのリソースを設計したとおりに起動させる)そういったものを共有していくうちに他のリージョンへのコピーが手間など様々な課題が見つかったので、それを解決するためにツールを作ったとのこと。floccus既存のAWSのリソースからClooudFomationファイルを生成するCLIツール。update登録可能にするためにCloudformationファイルを複数とおり生成可能amimakuoAMIを別リージョンにコピーするためのCLIツール。一つのAMIをprivateなままコピーできる複数のリージョンに同時にコピーできるこうした自動化は大切ですし、不便であれば自分達で作る姿勢が素晴らしいですね。今井様「120msを巡る闘い。Biddingという1インプレッションごとに入札が行われる広告配信方式。1番高い入札金額の広告が表示される。広告が選択されて配信されるシステムであるDSPというもののお話。代表的なDSPであるGoogleAdxのタイムアウトは、120msec。この120msecという制限の中にいかにユーザーへのターゲティング精度をあげるにはどうすればということを検討した結果が生生しく語られました。中には1msecもかかっていないサービスを提供しているところがあるようです。広告事業にも様々な技術が使われているようで、大変興味深い貴重はお話でした。松下「AWSチームの話」”KLAWS”というKLab独自のAWSの環境を作ったお話です。RoutingTableを使って冗長化、fluentdを使ったログサーバーの方法やサーバの一覧を自動生成して、特定のサーバーを表示させるのに活用したり、Gangliaというサーバー管理ツールを改善して、RDSにも表示させるようになど細かい改善をして、KLab独自のカスタマイズを実施しています。安川様「EC2上でパケットと戯れる」EC2の上でレイヤーの低いところでいろいろ遊んでみたお話の共有です。RTMetricsというHTTPリクエストとレスポンスをアクセス解析するシステムをAWSへ以降しようとした際のお話です。IP-in-IPトンネルを作ってtcでパケットのコピーを流し込むよう設定。カーネルで刺さったが、一応パケットは集めることができる。VPCでもL2レイヤーならある程度は自由が利きます。ご自身の趣味がパケットキャプチャと仰ってたように、パケットについて細かい細かいお話でした。高田「データ分析グループでのAWS活用について」KLabでデータ分析する際の、データ抽出や蓄積、加工にAWSを使っているお話。様々なソーシャルゲームのKPIのデータをまず、S3に保存。そこから分析用のec2サーバーに移したり、RDSで加工したりなど行います。システム構成としては、pythoneによるバッチスクリプト郡で、サーバー1台とDBサーバー1台とあとはS3に大量のデータがあるだけ。ec2の活用として、普段は停止しているが、不定期に重たいスクリプトを走らせるときに動かす分析用サーバーがあったりします。Reduce(AWS上でHadoopを利用できる仕組み)を使ってmsgpackというフォーマットにバイナリへ高速に変換するのに使っています。プレゼンの発表中にあった、「データからデータを生み出し、解析に活かしています」という言葉通りの発表でした。発表内容の紹介は以上ですが、これ以降は懇親会にてオフレコ話やAWSの製品のお話などなどいろいろ飛び交い、大変有意義な勉強会となりました。[+]2008年12月2008年11月2008年10月KLab株式会社のこと。