Upgrade to Pro — share decks privately, control downloads, hide ads and more …

広告ログのリアルタイム集計とその活用 / Realtime Ad log aggregati...

wata
July 28, 2017

広告ログのリアルタイム集計とその活用 / Realtime Ad log aggregation and utilization

wata

July 28, 2017
Tweet

More Decks by wata

Other Decks in Technology

Transcript

  1. 自己紹介 • 渡辺 慎也 • マーケティングプロダクト開発部 • 広告配信基盤周りの整備、開発保守 • やりたいこと

    • Rails でアプリを書くよりコンテンツ配信に関わ る、ミドルウェア、インフラ、プロトコルのアー キテクチャを考えることや、改善、安定運用
  2. サービス規模 • インスタンス • c3.xlarge, c4.xlarge で構成 • 5 〜

    18 台(Auto Scaling) • ピーク時同時リクエスト数 • 2,000 req/s 以上 ※2017年7月現在
  3. アーキテクチャ reverse proxy app mysql memcached fluentd queue Amazon 


    Redshift #SJDPMBHF 4USFBNJOH-PBE backup batch %8) Amazon
 DynamoDB
  4. アーキテクチャ reverse proxy app mysql memcached fluentd queue Amazon 


    Redshift #SJDPMBHF 4USFBNJOH-PBE backup batch %8) Amazon
 DynamoDB ログデータがバッチ集計終わって mysql に入るまでに 1 時間ぐらいのラグがあった
  5. アーキテクチャ app mysql memcached fluentd queue Amazon 
 Redshift #SJDPMBHF

    4USFBNJOH-PBE backup batch DWH Amazon
 DynamoDB reverse proxy
  6. アーキテクチャ app mysql memcached fluentd queue Amazon 
 Redshift #SJDPMBHF

    4USFBNJOH-PBE backup batch DWH Amazon
 DynamoDB reverse proxy ここに
  7. アーキテクチャ app mysql memcached fluentd queue Amazon 
 Redshift #SJDPMBHF

    4USFBNJOH-PBE backup batch DWH Amazon Kinesis Streams Lambda function Amazon
 DynamoDB speed layer Amazon
 DynamoDB reverse proxy
  8. アーキテクチャ app mysql memcached fluentd queue Amazon 
 Redshift #SJDPMBHF

    4USFBNJOH-PBE backup batch DWH Amazon Kinesis Streams Lambda function Amazon
 DynamoDB speed layer Amazon
 DynamoDB reverse proxy speed layer を追加
  9. 活用方法について • 集計データの確認方法 ‣ batch layer の集計データは mysql を参照 ‣

    speed layer の集計データは DynamoDB を参照 • 使い分け ‣ batch layer はレポーティング等の正式なデータと して利用 ‣ speed layer はあくまでも速報値や確認の為に利用
  10. 異常検知(耐障害性) • layer で突き合わせをしてズレを検知 ‣ batch layer の集計と、speed layer の集計を突

    き合わせて、大きなズレがある場合は異常とし てエンジニアに通知する • 冗長化 ‣ 別の集計方法(完全に別ではないが)をするこ とで、DynamoDB または Redshift が落ちてい ても完全にログ集計が止まることはない
  11. 配信制御         

       これでは駄目で
  12. 配信制御         

       平準化する
  13. まとめ • batch layer だけでなく speed layer も導入、活用することで ‣ 掲出確認が迅速に行えるようになった

    ‣ 在庫の無駄を減らすことが出来る ‣ 2 layer で集計することで、異常検知可 能