SlideShare a Scribd company logo
印南 @ Gunosy 広告技術部
スケールしない広告サーバの作り方
自己紹介
• 印南聡志(いんなみ さとし)
• Gunosyのアドエンジニア
• 2014年6月 入社
• Gunosyのアド配信サーバ周り全般担当
• 言語
• Go
• Python
• 最近ランニングにはまっております
今日のお話
スケールしない
広告サーバの作り方
※ここでのスケールはスケールアウトのことです
注意
スケール時のアンチパターンをまとめております!
弊社の広告サーバがスケールしないわけではありません!
あなたの会社の広告サーバは
スケールしていますか?
スケールしないと…
急なリクエスト増に耐えられない
レイテンシ(遅延)が発生
エンジニアの死
油田王になりたくなる
作り方を知れば
あなたにも簡単に作れます!
スケールしない広告サーバの作り方①
ボトルネックをガンガン作ろう!
ボトルネックをガンガン作ると…
アクセス増のタイミングで
ボトルネック部分が突然詰まる!
ボトルネックを作るには?
ボトルネックを作るには? (その1)
配信サーバからデータストアに
ガンガン書き込みを走らせよう!
配信サーバ
配信データ
DB
READ
WRITE
ボトルネック
書き込みが分散できず
詰まる
ボトルネックを作るには? (その2)
全データを一つの
データストアに入れよう!
広告情報
配信候補
消化予算
ユーザ属性
FQ
リタゲ
…
データサイズ…
ライフサイクル…
重要度…
配信データDB
アクセスが集中
メンテが困難
ボトルネックを作るには? (その3)
全ての処理を同期的に行おう!
ログDB
WRITE
ボトルネック
配信サーバ
ELB
書込み完了を
待機
スケールしない広告サーバの作り方②
サーバ追加が超絶難しい
環境を作ろう!
どうやって作るか?
サーバを追加するのに
物理的にサーバを購入するために
承認が必要な環境を整えよう!
サーバ追加を超絶難しくするには?
3人以上の承認が
必要なのがベター
サーバごとに独自の環境設定を
(バレにくいように)埋めこもう!
サーバ追加を超絶難しくするには?
どこに隠しておくのが良いのか?
• configファイル
• 環境変数
• cron
/etc/xx/include
あたりがGood
実行ユーザを
変えて撹乱
サーバ追加を超絶難しくするには?
継続的インテグレーション(CI)環境
を作らないようにしよう!
まとめ
スケールしない広告サーバを作るには?
ボトルネックをガンガン作ろう!
サーバ追加が超絶難しい環境を整えよう!
最後に
スケールする広告サーバに興味があれば
懇親会でお声掛けください
We Are Hiring!!!
Gunosyではスケールする広告サーバを
開発するエンジニアを
募集しております!!

More Related Content

Viewers also liked

RailsとCで広告システムを作って起業した話
RailsとCで広告システムを作って起業した話RailsとCで広告システムを作って起業した話
RailsとCで広告システムを作って起業した話
Daisuke Yamazaki
 
30分でわかる広告エンジンの作り方
30分でわかる広告エンジンの作り方30分でわかる広告エンジンの作り方
30分でわかる広告エンジンの作り方
Daisuke Yamazaki
 
今すぐ使える!Photoshopの拡張機能やプラグイン
今すぐ使える!Photoshopの拡張機能やプラグイン今すぐ使える!Photoshopの拡張機能やプラグイン
今すぐ使える!Photoshopの拡張機能やプラグイン
Minoru Sogawa
 
MTDDC 2010.2.5 Tokyo - Brand new API
MTDDC 2010.2.5 Tokyo - Brand new APIMTDDC 2010.2.5 Tokyo - Brand new API
MTDDC 2010.2.5 Tokyo - Brand new API
Six Apart KK
 
Fork/Join Framework。そしてLambdaへ。
Fork/Join Framework。そしてLambdaへ。Fork/Join Framework。そしてLambdaへ。
Fork/Join Framework。そしてLambdaへ。
Yuichi Sakuraba
 
Single-page application
Single-page applicationSingle-page application
Single-page application
Fumio SAGAWA
 

Viewers also liked (20)

Ruby を利用した大規模ウェブサービスの開発・運用
Ruby を利用した大規模ウェブサービスの開発・運用Ruby を利用した大規模ウェブサービスの開発・運用
Ruby を利用した大規模ウェブサービスの開発・運用
 
第7回 ECMA-262 Edition5.1読書会
第7回 ECMA-262 Edition5.1読書会第7回 ECMA-262 Edition5.1読書会
第7回 ECMA-262 Edition5.1読書会
 
RailsとCで広告システムを作って起業した話
RailsとCで広告システムを作って起業した話RailsとCで広告システムを作って起業した話
RailsとCで広告システムを作って起業した話
 
30分でわかる広告エンジンの作り方
30分でわかる広告エンジンの作り方30分でわかる広告エンジンの作り方
30分でわかる広告エンジンの作り方
 
今すぐ使える!Photoshopの拡張機能やプラグイン
今すぐ使える!Photoshopの拡張機能やプラグイン今すぐ使える!Photoshopの拡張機能やプラグイン
今すぐ使える!Photoshopの拡張機能やプラグイン
 
nginxの紹介
nginxの紹介nginxの紹介
nginxの紹介
 
Top Ten SE Concepts V11.1 Jp
Top Ten SE Concepts V11.1 JpTop Ten SE Concepts V11.1 Jp
Top Ten SE Concepts V11.1 Jp
 
0からのWebディレクション講座 制作編 170218 slide_share
0からのWebディレクション講座 制作編 170218 slide_share0からのWebディレクション講座 制作編 170218 slide_share
0からのWebディレクション講座 制作編 170218 slide_share
 
撮った後が勝負!商品撮影のためのPhotoshopレタッチ入門
撮った後が勝負!商品撮影のためのPhotoshopレタッチ入門撮った後が勝負!商品撮影のためのPhotoshopレタッチ入門
撮った後が勝負!商品撮影のためのPhotoshopレタッチ入門
 
Novelties in Java EE 7: JAX-RS 2.0 + IPT REST HATEOAS Polling Demo @ BGOUG Co...
Novelties in Java EE 7: JAX-RS 2.0 + IPT REST HATEOAS Polling Demo @ BGOUG Co...Novelties in Java EE 7: JAX-RS 2.0 + IPT REST HATEOAS Polling Demo @ BGOUG Co...
Novelties in Java EE 7: JAX-RS 2.0 + IPT REST HATEOAS Polling Demo @ BGOUG Co...
 
MTDDC 2010.2.5 Tokyo - Brand new API
MTDDC 2010.2.5 Tokyo - Brand new APIMTDDC 2010.2.5 Tokyo - Brand new API
MTDDC 2010.2.5 Tokyo - Brand new API
 
Data API ことはじめ
Data API ことはじめData API ことはじめ
Data API ことはじめ
 
Fork/Join Framework。そしてLambdaへ。
Fork/Join Framework。そしてLambdaへ。Fork/Join Framework。そしてLambdaへ。
Fork/Join Framework。そしてLambdaへ。
 
Introducing C# in AWS Lambda
Introducing C# in AWS LambdaIntroducing C# in AWS Lambda
Introducing C# in AWS Lambda
 
なぜ企業はWebアクセシビリティに取り組むのか?
なぜ企業はWebアクセシビリティに取り組むのか?なぜ企業はWebアクセシビリティに取り組むのか?
なぜ企業はWebアクセシビリティに取り組むのか?
 
Running Java Apps with Amazon EC2, AWS Elastic Beanstalk or Serverless
Running Java Apps with Amazon EC2, AWS Elastic Beanstalk or ServerlessRunning Java Apps with Amazon EC2, AWS Elastic Beanstalk or Serverless
Running Java Apps with Amazon EC2, AWS Elastic Beanstalk or Serverless
 
20161111 java one2016-feedback
20161111 java one2016-feedback20161111 java one2016-feedback
20161111 java one2016-feedback
 
Going Serverless, Building Applications with No Servers
Going Serverless, Building Applications with No ServersGoing Serverless, Building Applications with No Servers
Going Serverless, Building Applications with No Servers
 
Single-page application
Single-page applicationSingle-page application
Single-page application
 
Introduction to AWS X-Ray
Introduction to AWS X-RayIntroduction to AWS X-Ray
Introduction to AWS X-Ray
 

Similar to スケールしない広告サーバの作り方

メンテナブルなJsってなんだろう
メンテナブルなJsってなんだろうメンテナブルなJsってなんだろう
メンテナブルなJsってなんだろう
Daiki Matsumoto
 
Ginzametrics第3回open seoセミナー shimizu資料_20140526
Ginzametrics第3回open seoセミナー shimizu資料_20140526Ginzametrics第3回open seoセミナー shimizu資料_20140526
Ginzametrics第3回open seoセミナー shimizu資料_20140526
DemandSphere
 

Similar to スケールしない広告サーバの作り方 (20)

たくさんの失敗事例から学んだ 素早くWebサービスを作るコツ
たくさんの失敗事例から学んだ 素早くWebサービスを作るコツたくさんの失敗事例から学んだ 素早くWebサービスを作るコツ
たくさんの失敗事例から学んだ 素早くWebサービスを作るコツ
 
How to develop a huge Single Page Application
How to develop a huge Single Page ApplicationHow to develop a huge Single Page Application
How to develop a huge Single Page Application
 
メンテナブルなJsってなんだろう
メンテナブルなJsってなんだろうメンテナブルなJsってなんだろう
メンテナブルなJsってなんだろう
 
SEO業者事業仕分け論
SEO業者事業仕分け論SEO業者事業仕分け論
SEO業者事業仕分け論
 
便利に!スムーズに!コミュニケーション活性化
便利に!スムーズに!コミュニケーション活性化便利に!スムーズに!コミュニケーション活性化
便利に!スムーズに!コミュニケーション活性化
 
【再放送】菊池崇のレスポンシブWEBデザイン道場
【再放送】菊池崇のレスポンシブWEBデザイン道場【再放送】菊池崇のレスポンシブWEBデザイン道場
【再放送】菊池崇のレスポンシブWEBデザイン道場
 
Search Summit 2014プレゼンテーション資料
Search Summit 2014プレゼンテーション資料Search Summit 2014プレゼンテーション資料
Search Summit 2014プレゼンテーション資料
 
自社開発をしていなかった会社が Python を選んだ理由
自社開発をしていなかった会社が Python を選んだ理由自社開発をしていなかった会社が Python を選んだ理由
自社開発をしていなかった会社が Python を選んだ理由
 
サイトリニューアル時のコンセプト設計
サイトリニューアル時のコンセプト設計サイトリニューアル時のコンセプト設計
サイトリニューアル時のコンセプト設計
 
Ginzametrics第3回open seoセミナー shimizu資料_20140526
Ginzametrics第3回open seoセミナー shimizu資料_20140526Ginzametrics第3回open seoセミナー shimizu資料_20140526
Ginzametrics第3回open seoセミナー shimizu資料_20140526
 
20140913 ディレクション講演資料(山盛り)
20140913 ディレクション講演資料(山盛り)20140913 ディレクション講演資料(山盛り)
20140913 ディレクション講演資料(山盛り)
 
ビジネスサポート協会 第17回【ファンができるブログの作り方】
ビジネスサポート協会 第17回【ファンができるブログの作り方】ビジネスサポート協会 第17回【ファンができるブログの作り方】
ビジネスサポート協会 第17回【ファンができるブログの作り方】
 
#Devlove 甲子園日本シリーズ ku_suke
#Devlove 甲子園日本シリーズ ku_suke#Devlove 甲子園日本シリーズ ku_suke
#Devlove 甲子園日本シリーズ ku_suke
 
スマホ版ログレスにポストエフェクトシステムを導入した話
スマホ版ログレスにポストエフェクトシステムを導入した話スマホ版ログレスにポストエフェクトシステムを導入した話
スマホ版ログレスにポストエフェクトシステムを導入した話
 
WordPressだけで動かす 『爆速』メディアECサイトの作り方
WordPressだけで動かす 『爆速』メディアECサイトの作り方WordPressだけで動かす 『爆速』メディアECサイトの作り方
WordPressだけで動かす 『爆速』メディアECサイトの作り方
 
MEO×動画POP企画書_20230131.pdf
MEO×動画POP企画書_20230131.pdfMEO×動画POP企画書_20230131.pdf
MEO×動画POP企画書_20230131.pdf
 
SEO対策に頼らないコンテンツマーケティング
SEO対策に頼らないコンテンツマーケティングSEO対策に頼らないコンテンツマーケティング
SEO対策に頼らないコンテンツマーケティング
 
明日からできる! #広報ことはじめ
明日からできる! #広報ことはじめ明日からできる! #広報ことはじめ
明日からできる! #広報ことはじめ
 
サービス改善はログデータ分析から
サービス改善はログデータ分析からサービス改善はログデータ分析から
サービス改善はログデータ分析から
 
シナリオが作れるリスティングプレイヤーになろう|株式会社PROPO 中尾豊
シナリオが作れるリスティングプレイヤーになろう|株式会社PROPO 中尾豊シナリオが作れるリスティングプレイヤーになろう|株式会社PROPO 中尾豊
シナリオが作れるリスティングプレイヤーになろう|株式会社PROPO 中尾豊
 

Recently uploaded

ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
miyp
 

Recently uploaded (8)

エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
 
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
 
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
 
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHubCompute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
 
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
 
【登壇資料】スタートアップCTO経験からキャリアについて再考する CTO・VPoEに聞く by DIGGLE CTO 水上
【登壇資料】スタートアップCTO経験からキャリアについて再考する  CTO・VPoEに聞く by DIGGLE CTO 水上【登壇資料】スタートアップCTO経験からキャリアについて再考する  CTO・VPoEに聞く by DIGGLE CTO 水上
【登壇資料】スタートアップCTO経験からキャリアについて再考する CTO・VPoEに聞く by DIGGLE CTO 水上
 
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
 
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
 

スケールしない広告サーバの作り方