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

高速な広告配信サーバの作り方のコツ

Satoshi
June 23, 2016

 高速な広告配信サーバの作り方のコツ

高速な配信サーバをつくるためのコツを紹介しています。

Satoshi

June 23, 2016
Tweet

More Decks by Satoshi

Other Decks in Technology

Transcript

  1. 自己紹介 •  印南聡志(いんなみ さとし)   •  Gunosyのアドエンジニア  (3年目)   – 

    Gunosyのアド配信サーバ周り全般担当   •  言語   –  Go   –  Python   •  マイブーム   –  AJINOMOTOの冷凍餃子   –  大食い(視るだけ)   •  参照   –  Blog:NO  AD  NO  LIFE(hBp://inchom.hatenadiary.jp/)   –  Github:hBps://github.com/satoshi03  
  2. 5ms

  3.     1リクエストの応答時間:  5ms   リクエスト数:        

                                       10,000req/sec  以上  
  4. 対応 •  API側   – Golangで実装   – やることを極限まで削減   •  広告候補の取得

      •  簡単なバリデーション   •  バッチ側で複雑な処理を一括で計算   – Python  
  5. LOCUST  構成 ・・・ Locust  slave Locust  master 広告配信 サーバ ・・・

    シナリオに応じてリクエストを 生成 Slaveを管理
  6. 見つかった問題 •  様々な原因   – ライブラリ内の実装   – 入札時の広告の探索範囲が広い   – バリデーションのコスト  

    – データキャストのコスト   – オブジェクト生成のコスト   – DB接続時のコスト   – ログ出力コスト  
  7. 金で解決の例 •  Redis  をやめる   – DynamoDB   – AeroSpike   • 

    スケールアップで対応   – 4xlargeインスタンス…