ちょっと話題の記事

『これからを生き抜くソーシャルゲーム x オンライン広告』at AWS目黒オフィス に参加してきた

2013.10.13

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

少し日にちが空いてしまったのですが、JAWS FESTA Kansai 2013に遠征に行く前にも勉強会に参加してました。それがこちらの『これからを生き抜くソーシャルゲーム x オンライン広告』になります。

開催会場はAWS目黒オフィス@目黒。立地的には目黒雅叙園が近いですね。

aws01

aws02

以下、ざっくりメモではありますが参加記録としてレポートしようと思います。

目次

  • 13:00-13:30 セッション1: Amazon Web Services 最新動向のご説明
  • 13:30-14:10 セッション2: AWSとWindows上でのC#
  • 14:20-15:20 セッション3: Amazon Elastic MapReduce [マネージド型Hadoop] 導入事例
  • 15:30-16:30 セッション4: ゲームに分析おける Amazon Redshift の導入事例
  •  

    セッション1: Amazon Web Services 最新動向のご説明

    • 発表:今井 雄太氏 (アマゾンデータサービスジャパン株式会社 ソリューションアーキテクト)
    • 自己紹介
      • ソリューションアーキテクト
      • リスティング広告の配信システムの開発や広告配信システム周りの開発・運用を経験、所謂『アドテクエンジニア』な方。
      • サーバサイドエンジニア、好きな言語はPerl。

    1.AWSビッグデータのエコシステム

    ビッグデータを扱うAWSプロダクトの図。データが流れてきて赤いアイコン集(ストレージ系、S3/Glacier)へデータが溜まる。そのデータを青い筒(データベース系)に投入。処理系(オレンジ、ここではEMR)やデータフロー系(緑、ここではData Pipeline)で扱う。

    aws0927-session01101

    入力データから各々のサービスへと連携していく『エコシステム(Ecosystem)』の流れは以下。AWS上でビッグデータを扱う場合はS3の利用がキーとなる。

    aws0927-session01102

    • S3について
      • AWSの最初のサービスの1つ。(もう一つはSQS)
      • データの堅牢性は高い
      • 容量無制限、メンテナンスフリー
      • 様々な他AWSサービスから利用されている
      • データがあれば、後は必要に応じて解析クラスタを起動して利用が出来る。(EMR/DynamoDB/Redshift等)

    2.最近のアップデートのご紹介

    Redshift

    • アーキテクチャ
      • リーダーノードを経由してクエリを実行
      • 各コンピュートノードで演算が並列実行
      • 各コンピュートノードにローカルストレージを保持
      • コンピュートノードはhs1.xl又はhs1.8xlから選択
      • Redshift自体にはBIツールは付いていない。リーダーノードまでの御提供
      • psqlのクライアントツールをそのまま繋ぐ事が出来る。
      • 拡張性:数百GBから数PBまで拡張可能。スケールアップ・ダウンも可能。

    費用:従量課金、[ノード数]x[時間単価]で算出、コンピュートノードのみの課金でリーダーノードは課金されない。詳細は以下参照。日本の場合はもう少し高い。

    S3にデータが有りさえすれば、アプリケーションはAWS範囲外にあっても利用が可能。自社DCからAWSにDirect Connectで接続し、利用すると言った事も問題無く行える。

    Amazon EMR

    • m1.mediumが利用可能に。(2013年04月)
    • MapRのサポート(2013年07月)
    • Amazon EMRのベストプラクティスに関するホワイトペーパーのリリース(2013年08月) 以下内容つまみ食い:
      • オンプレミス環境からAWSへのデータ移動方法
      • FlumeやFluentdを使ったデータコレクション
      • S3上での効率的なデータの格納方法
      • EMR利用の最適化
    • 所謂、『Hadoopのサービス』。Map Reduce, hive, pig, streaming等のHadoopのエコシステムが利用出来る
    • hiveでSQLっぽく使う事が出来るが、Redshiftの方が速いし簡単。(ただし、TRANSFORMやUDF/UADF等の独自メリットはある)
    • 正規化しづらいデータを扱うのが得意
    • 立ち上げっぱなしではなく、ジョブ毎にクラスタを起動して終了し、破棄する使い方も出来る

    EMRかRedshiftか

    • ざっくり言うと...
      • SQLを使った分析/解析ならRedshiftの方が有利/便利な事が多い
      • それ以外ならEMR

    Amazon ElastiCache

    所謂、マネージドキャッシュサービス。

    3.ソーシャルゲーム x オンライン広告の最近の事例

    ゲームの事例:

    ビジネスエリアで分類したエリアで行くと、このような事例が多い。

    • 1.ブラウザゲーム
    • 2.ネイティブゲーム
    • 3.KPI分析

    システムのユースケースに落としてみると、以下の形となる。

    • データベース、キャッシュの運用をオフロード
    • 画像やJS、アップデートファイルの配信
    • KPI分析

    広告システムの事例:

    "アドテクカオスマップ"のご紹介。

    ビジネスエリアで分類したエリアで行くと、このような事例が多い。

    • 1.DSP
    • 2.ADNW/SSP
    • 3.DMP/効果測定ツール

    システムのユースケースに落としてみると、以下の形となる。

    • RTBや広告配信
    • クリエイティブの配信
    • ログの集計や分析

    4.まとめ

    • AWS上でのビッグデータ活用は、S3にデータを入れるところから。
    • AWSのサービス群は日々アップデートされているので、利用前にチェックを。
    • ゲーム/アド、それぞれのユースケースに合わせた『美味しいとこ取り』を!
    • お声掛け頂ければ、喜んでサポートします!

     

    セッション2: AWSとWindows上でのC#

    会社紹介: C#によるソーシャルゲームの開発・企画・運営を行っている。第一弾タイトル「神獄のヴァルハラゲート」は「GREE Platform Award – The first half of 2013 -」総合大賞を受賞。

    Real World Windows Server on AWS

    株式会社グラニ 田中氏による発表。AWS上でのWindowsサーバの利用事例紹介。

    自己紹介・会社紹介...株式会社グラニ:ソーシャルゲーム開発。『神獄のヴァルハラゲート 』をリリース、先日の東京ゲームショウ2013にも出店。

    aws0927-session02101

    • 求められるシステムとは
      • 最高1万rpsに耐えられるシステム
      • プラットフォームによる応答時間制限
      • 絶え間ない機能追加や改善
      • AWSとC#を選んだ。
        • サービス開始当初はPHPでAWS上に構築
        • 今もAWSのまま、WINdowsserver上のASP.NET C#に移行。
      • C#移行の成果
        • 処理時間の減少 180ms -> 55ms
        • スループットの増加 400k -> 600k rpm
    • C#とは?
      • アンダース・ヘルスバーグが作った言語
      • 色々な意味でバランスの取れた言語
      • C# everywhere
      • 特徴:
        • Visual Studio + ReShaperによる強力なインテリセンス
        • C#(ASP.NET)によるビューのコンパイルチェック
        • LINQによるオブジェクトの集合操作
        • Asyncによる非同期処理の簡潔な操作
    • C#の良さがわかったところでインフラのお話へ... システム構成
    • キャッシュ層にはredis
      • MySQLを使った、何故MySQL?
        • 単体機能であればSQL Server
        • RDSの強力なバックアップ、master/slaveの運用自動化機能を利用していた
        • Multi AZにより冗長性も確保
        • RDSの昨日についてはMySQL > SQL Serverが現状。SQL Serverの機能強化にも期待!
    • Windows ServerでAWSの恩恵は得られるか?
      • AWS利用によるメリットといえば、運用自動化
      • 果たして、Windows Serverでその恩恵は得られるか?
    • AWS上でのWindows Server
      • 現状、癖なく動かせている
      • 元のAMIのルートデバイスが小さいので、EBSを拡張してAMI化
    • 基本はEBS-backed AMIを運用
    • 監視にはNewRelicを使用。
    • ロギングと集計
      • ファイル出力系とメール通知系に分ける
      • ログの集計はSumoLogicを使用
        • 選んだ一番の理由はWindowsOSのサポート。イベントログも収集出来る
        • 日本語サポートとやり取りしつつ進行中
        • Fluentd, Treasure Data, Splunk等と比較検討の上決定。
    • ビルドとデプロイ

    PowerShell Automation Windows Servers on AWS

    同じく株式会社グラニ 吉崎氏による発表。インフラ面及びPowerShellについて紹介。

    aws0927-session02102

    • CapistranoからPowerShellへ
      • PowerShellがWindows CUI環境としてスタンダード
      • Capistranoのようにcapコマンドを使いたい
      • 無いのならPowerShellデプロイライブラリを作ろう。
    • Windows PowerShellとは?
      • Jeffery Snoverが作った言語
      • AWS Tools for Windows PowerShellでAWSサービスも操作可能
    • コマンドレットによる機能別コマンド提供
      • Aliasでcmdやshellユーザーにおなじみのコマンドを用意したり
      • 動詞-名詞 形式で統一されたコマンド表記とインテリセンスの補助
      • Pipelineで.Netオブジェクトを次のCmdletに渡せる
    • CLIでは無く、Automation技術(by Jeffery Snover)
      • PowerShellは自動化技術であってCLIにとどまらない。
      • 勿論、CLIでの自動化も得意。CLIの枠にとらわれず、如何に自動化を行うかを追求している言語
    • GraniはPowerShellと出会いました
      • C#への移行でWindows環境での運用、デプロイは必至
      • C#とPowerShellは親和性が高い
      • 得意な事は得意な方に任せると幸せになれる
        • リモートサーバー管理:PowerShell
        • デプロイ:C# x PowerShell
          • デプロイはCUIよりマウスでポチポチしたい
          • C#でデプロイフローを管理/進捗表示
          • C# コードでPowerShellを呼び出し/実行可能
        • PowerShell x Windows Server on AWS
          • スナップショット Windows Serverからのセットアップ
          • ソフトウェアインストール/設定変更
        • PowerShell x AWS Services
          • 毎デプロイ毎のELB連携:ELBのヘルス外し→デプロイ実行→ELBのヘルスアサイン
          • 半オートスケール:
            • 時間毎の負荷予測がしやすい+半年の運営で経験が蓄積
            • スケジュール方式でスケーリング
            • AWS Tools for Windows PowerShellを活用して状態管理
            • 対象停止サーバの停止、ELB処理、EC2処理、自動デプロイ等

     

    セッション3: Amazon Elastic MapReduce [マネージド型Hadoop] 導入事例

      EMRの活用事例〜3日で出来たレコメンデーション〜

    • 発表:株式会社ビズリーチ(BizReach)
    • 会社紹介: 管理職や専門職、次世代リーダー、グローバル人材などのハイクラス人材に特化した、国内最大級の会員制転職サイト“ビズリーチ”を運営している会社です。

      事業を回す中で、早く何かを実現しなければならない、という中での今回の発表。

      自己紹介:竹内 真氏

      EMRとは?→分散処理が簡単にできるウェブサービス。

      • ビズリーチについて
        • ハイクラス向け会員制転職サイト
        • 特徴
          • 求職者も有料
          • 年収1000万円超え求人が数千件
        • ビジネスモデル3つのアクション
          • 求職者がアクションを起こすには有料会員になる必要が有る
          • 利用料を頂く、等
        • ※応募やスカウトが増えれば増える程売上が上がる仕組み
      • レコメンデーション機能を入れよう: 応募増加施策
        • amazonさんのように『この求人を見た人はこんな求人もチェックしています』をやってみよう→レコメ実装するには大変?
        • 過去の統計からも一定数の応募を越えると結果が違ってくる
      • 実装方式:
        • aws0927-session03104
        • 日次バッチで実装(マッピングのデータ作成)
        • 0)予めS3にApache mahoutのjar(ライブラリ)をアップロードしておく
        • 1)RDBから行動履歴を抽出してCSVファイルを作成(S3へアップロード)
          • ユーザーID、求人ID、行動に対するポイント、、、というデータがドバーッと
        • 2)バッチ処理でEMRのインスタンスを起動(2台)
          • master 1台、slave 2台
        • 3)起動したEMR上で計算処理を実行(Mahoutのmain処理実行)
        • 4)EMR上で生成した結果セット(2次元配列)をMongoDBへインポート
          • 行動履歴として数万レコードのCSVを利用し、結果業数千を得ている。処理時間は数分程。

      aws0927-session03105

      AdStir SSP(RTB)を支える集計インフラの変遷

    • 発表:ユナイテッド株式会社
    • 会社紹介: スマホきせかえコミュニティアプリ『CocoPPa』など、スマホメディア事業とSSP『AdStir』、DSP『Bypass』のRTB広告事業を展開しています。

    • United.inc
      • CocoPPaというものが有名(きせかえアプリ)。
    • ログの容量
      • 1日だいたい10億レコード
      • 800GB(非圧縮)/日を裁く。
    • ログの容量
      • 1日だいたい10億レコード
      • 800GB(非圧縮)/日を裁く。
    • 集計インフラの歴史
      • [2011年]syslogにログを飛ばし、rsyncでバッチサーバに集め、perlスクリプトで集計
        • aws0927-session03103
        • 問題点1
          • ログファイルが日別
          • ログファイルが単一サーバに集中
          • rsyncがコケた時のリカバリーが手動
          • 集計がスケールしにくい
        • 問題点2
          • 物理サーバを使っていた
          • 急なリクエスト増加に対応出来ない ※エンジニア的にも疲弊していた時期。
          • 一度増やすと簡単にサーバを減らせない
          • 回線使用料がランニングコストの1/3
      • [2013年04月]移行
        • aws0927-session03102
      • [現在]EMRを利用。ジョブが終わったら結果取り込んで集計してMySQLの方に入れる
        • aws0927-session03101
    • EMR
      • すぐに使い始められる
      • クラスタ規模も簡単に変更できる
      • クラスタのメンテコストを削減
      • 1日近くかかっていた集計が2時間弱で終わるようになった
    • 今後の課題
      • hive対応
      • ログデータの中間処理
      • job監視・可視化

     

    セッション4: ゲームに分析おける Amazon Redshift の導入事例

    Amazon Redshift ゲーム分析における導入事例

    • 発表:株式会社enish (エニッシュ)
    • 会社紹介: 株式会社enishは、2009年に設立された東証マザーズ上場企業です。世界に通用する面白いサービスを提供していくことを目標に、ソーシャルゲーム開発、O2Oタイアップなどを行っています。現在は「ドラゴンタクティクス」や「ぼくのレストラン2」などを始めとする多く人気ゲームを提供されております。

      • ソーシャルゲームを作っています。その際に分析で利用したRedshiftの事例紹介を。
      • ユーザの行動分析に力を入れている。ロングランアプリ:『僕のレストラン』は3年以上。
      • Redshift導入の経緯
        • ユーザーの行動分析
          • あらゆるアクションに対してログを落としています
          • 1アプリ/1日で5gb位のログ量
          • 数ヶ月でTBレベルのビッグデータに成長
        • 定常分析
          • 分析要件が決まっている
          • 専任チームのエンジニアで分析バッチ開発
          • 特殊な技術(EMRなど)を使ってもOK
        • 臨時分析
          • PM/Directorでも好きにやれるようにしたい
          • ちょっとしたアイデアをすぐに実行させたい
          • ただし利用ユーザーはどんなクエリでシステム崩壊するか考えもしない人たち
        • DWHのクラウド版
          • 高価なDWHが安価にスタートできる
          • 合わなかったらやめられる
        • RDBMS
          • 現在の資産(MySQL向け)がそのまま移行可能
          • 専門の職人なしで手軽にSQL分析可能
          • 分析屋やBIツールに繋げて使える
      • 速度改善の感想
        • 得意・不得意があります
          • 短期間対象クエリ:
          • 長期間対象クエリ:
        • カラムナ(列指向)DBの特徴
          • カラム追加が高速…ALTER TABLEが速い/1億件入っているテーブルで列追加を実行
          • 自動的にテーブル列増幅する使い方もあり

        

      • 圧縮方式
        • カラム別に圧縮方式を指定
        • 消費ディスクサイズが2〜5バイくらい変わる(上3つは会社でも使った) / Enumみたいなもの?
        • 条件をオーバーしても特に問題は無い。
      • テーブル設計
        • 弊社で問題となった課題と解決法
          • 似たようなテーブルを沢山作っていた
          • 区別カラムを追加してひとまとめにしてみた
      • ノードスペック選定
        • 1XL x 8台より 8XL x 1台の方が良い
        • 途中でスペック変更、本格利用するのであれば早めのスペック選定を。
      • FlyDataがおすすめ!
        • 集めたログをそのまま送りつけるだけ(fluentd)
        • Redshiftへ一定間隔でロードし続けてくれる
        • 障害時の再送機能があり、欠損の心配がない
      • aws0927-session04201
      • クエリ発行時の注意点
        • 1クラスタでの同時接続数=95
          • 増設しても変わりません
          • MySQLでmax = 1000くらいのチューニングで運用している感覚だと、とても少なく感じます
        • ユーザー別に最大プロセス数を設定出来る?
          • Workload Management 機能(Redshift)
          • 例えば『ロード専用 50個まで』ような制限を入れて運用する

      Make Big Data Happen on the Cloud

    • 発表:Hapyrus.Inc
    • 会社紹介: Hapyrus(ハピルス)は、クラウド・ビッグデータのためのデータインテグレーション・ウェブサービス「FlyData」を提供しています。FlyDataは、Amazon Redshift に効率的に大量データをロードし、有効活用することができるサービスです。

    • 企業紹介
      • シリコンバレーから興った会社。
      • 去年からFlydataサービスを開始。awsとグローバルリセラー契約を結んでいる唯一の会社。

    従来のビッグデータは価格がボトルネック。またなかなか運用面でスキルフルな人材を揃えるのは難しい。中堅以下の企業にとってはredshiftは良いサービス。取り組みやすいソリューション。所謂強みになるのが『大量集計・計算』。短期間の更新については苦手な部分もある。

    aws0927-session04204

    aws0927-session04205

    • FlyDataとは:
      • 1.リアルタイムデータロード:状況に応じたcopyコマンドのパフォーマンスチューニング
      • 2.柔軟なJSON/Apacheログフォーマットのサポート:Redshiftがサポートしていない各種フォーマットをサポート。また、それらの柔軟なデータを元にしたRedshiftテーブルやカラムの自動生成も。
      • 3.SQLバッチ処理/Redshiftマネジメントシステム:Web画面でSQLの保存、実行/時間の掛かるSQL実行もバッチ処理で終了時にメールで通知・ダウンロード
      • 4.Amazon Redshiftパッケージサービス:Redshiftに関する技術サポートを提供。