【レポート】【ヤフー様ご登壇事例】AWS を活用した Yahoo! MOBILE INSIGHT の構築事例 #AWSSummit

AWS Summit Tokyo 2018「AWS を活用した Yahoo! MOBILE INSIGHT の構築事例」のセッションレポートです。セション概要:Yahoo! MOBILE INSIGHT はアプリ事業者向けに広告効果計測やアナリティクス機能を提供します。AWS 導入の経緯や、オンプレとクラウドの共存などお話します。
2018.05.31

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

AWS Summit Tokyo 2018。Day2 で開催されたセッション「【ヤフー様ご登壇事例】AWS を活用した Yahoo! MOBILE INSIGHT の構築事例」についてレポートします。

スピーカーは、坂田 悠さま (ヤフー株式会社 メディアカンパニープラットフォーム統括本部 データ開発本部プロダクト開発1部 Measurement & Attribution1 リーダー)です。

セッション概要は次のとおりです。

アプリ事業者向けに広告効果計測やアナリティクス機能を提供する Yahoo! MOBILE INSIGHT はヤフーとしては数少ない AWS で構築されたサービスの1つになります。本講演では、AWS 導入の経緯から、急激なリクエストを捌くために工夫した点や、オンプレとクラウドの共存などお話できればと思っております。

レポート

  • アジェンダ
    • Mobile Insights概要
    • AWS導入経緯

Mobile Insightsとは?

  • Yahooの利益の大半はメディア事業
    • Yahoo検索、ニュース、天気、路線
    • 主に広告などマーケティング
    • コマース事業
      • オークション、ショッピング
  • Mobile Insight
    • アプリ事業者向けのマーケティングツール
      • 休眠ユーザの抽出
      • 計測ツール
      • 広告運用ツール
    • 代理店にもご使用いただけるよう、柔軟なユーザー管理
  • 広告効果測定(トラッキング)
  • アナリティクス
    • アプリ内ユーザの解析機能
  • アカウント数150
  • アプリ数 250以上

AWS導入の経緯

  • DCは国内に八箇所
  • ほとんどオンプレ
  • なぜAWSを導入したのか
    • 社内ベンチャーあるある
      • 予算が少ない
      • 最小の人員構成
      • シビアな開発工数
      • AdTech東京でローンチを発表、半年でリリース
    • クライアントパートナーデータの分離
      • ヤフーのサービスとはデータを分けて管理したい
    • キャパシティ予測が困難
      • 導入アプリが増えるとリクエストが増加
      • リソース追加のリードタイムを短くしたい
    • クラウドへの興味
      • 新技術に挑戦したい開発メンバーが揃ってた

バックエンド構成

  • クリックが一度mobile insightに飛んでくる
    • click dbに蓄積する
    • ユーザーID
    • アプリと広告を紐付け処理、成果として扱う
  • トラッカー
    • キューワーカーアーキテクチャ
  • 集計
    • ストレージと処理を分離
    • データはすべてS3に保存
    • 処理はEMRクラスタを毎回新規構築
    • ジョブやロード管理はOSSを利用
    • 5分程度のオーバーヘッドがあるので、ジョブフローでまとめてクラスターを建ててる

負荷対策の取り組み

  • 急増するリクエストと問題点
    • 台数増やしてもスケールしない
    • 性能問題はトラッカーのキューの後のワーカーで生じている
  • 総スループットがスケールしない
    • ボトルネック調査
    • レイテンシ計測
    • SQSがボトルネックだった
      • キューのreceive deleteにボトルネックだった
      • キュー毎に制限となる
      • 公式ドキュメントには「ほぼ」無制限と書かれているのでウソではないが
    • キューを横に並べた
      • でもオートスケールはしてくれない
      • Kinesis Streamを検討したい
  • 突発にリクエストが急増する
    • ヤフーのPUSH通知
    • 定期PUSH
    • 臨時PUSH
      • SMAP解散が最大のバーストだった
    • 数分のラグがある
      • CloudWatch
      • 起動に数分
    • コンテナで起動を早めるとか対策
    • ヤフーのPUSHと連携すれば
      • just an idea?

オンプレとクラウドの共存

  • CI/CD
    • GitHub Enterprise
    • Jenkins
    • 専用線
    • S3からパッケージ化
  • アラート通知
    • CloudWatch -> SNS -> Lambdaで内製チャットツール
      • Modern Yahoo Messenger
  • Yahooサービスのデータ連携
    • オンプレのHadoop Cluster
    • 一部データを抽出して提供

良い点悪い点

  • GOOD
    • 開発検証が高速にできる
    • ドキュメントの検索が容易
    • オンプレとの共存がもなんとかやれる
  • BAD
    • 公表されていない性能限界などのトラップ
    • コストが割高
  • (あくまで個人的な感想とのことです)

感想

Yahooは自社サービスをほとんどをオンプレで構築している中、クラウドでサービスを構築する理由が面白かったです。どんな大きな会社でも新しいことを始める時にはベンチャーなんだってことがとてもよくわかる、面白い事例でした。