68
Real-Time Bidding on AWS AWS 와 실시간 입찰

Ad-Tech on AWS 세미나 | AWS와 실시간 입찰

Embed Size (px)

Citation preview

Real-Time Bidding on AWSAWS 와 실시간 입찰

세션의 진행

Piljoong Kim (@PiljoongKim)Solutions Architect

Amazon Web Services Korea

RTBRTB 란?RTB 플랫폼 구성요소AWS 와 RTB고객 사례

얻을 수 있는 것

• RTB 가 뭔지 모름– RTB 가 어떤것인지 정의해 볼 것

• 뭔지는 앎, 근데 뭘 해야할지 모름– 무엇이 가능한지 알아볼 것

• AWS 에서 RTB 가 제대로 구현될 수 있는지 의문이 듦– 충분하며, 이미 사용중인 고객 사례 알아볼 것

• AWS 에서 구현 및 운영해 볼까 생각 중임– AWS 가 어떻게 도움을 줄 수 있는지 알아볼 것

들어가기에 앞서, 알고 계셨나요?

Building a Real-Time Bidding Platform on AWS 백서https://aws.amazon.com/whitepapers/

영어? 문서 21페이지? ...

Building a Real-Time Bidding Platform on AWS 백서 요약http://www.slideshare.net/awskorea/building-a-realtime-bidding-platform-on-aws

한글! PPT!!

씨~익!

Real-Time Bidding (RTB)

RTB 란?

Real-time bidding (RTB), created by Jason Knapp, is a means by which advertising inventory is bought and sold on a per-impression basis, via programmatic instantaneous auction, similar to financial markets. With real-time bidding, advertising buyers bid on an impression and, if the bid is won, the buyer’s ad is instantly(typically in 100ms) displayed on the publisher’s site.

Programmatic Buying

Programmatic Buying refers to the process of purchasing digital advertising with the use of automated software's. The software like DSP, SSP, and Ad Exchange helps to automate the process as opposed to traditional process of buying and selling which involved manual human negotiations.

Programmatic Buying

즉,• 타기팅과 개인화된 광고• 퍼블리셔나 미디어 채널이 아닌,

오디언스, 소비자와 간접적으로 연결되는 것

• 적절한 때에 적절한 사람에게 관련된광고를 제공하는 것

• 불필요한 광고 지출을 줄이는 것• RTB 를 포함하는 것

Programmatic Buying

RTB

프로그래매틱 시장 (US 시장)

• 2017년에는 광고 구매의 83%가프로그래매틱으로 이루어질 것으로예상

• RTB는 110억 달러(한화 약 12조) 규모,2015년 광고 지출의 74% 차지

• 낮은 마진 – 효율적인 운용은 이점을가짐

• 프로그래매틱 다이렉트 역시 증가추세

RTB: 흐름

1. 페이지에 접속

2. Ad Network 에

노출을 공지하여 경매

시작

3. 바이어들이 경매

가격을 제시4. 최고 입찰인에게

노출의 기회가 주어짐

5. 광고주의 광고가

전달됨

RTB: 광고 선정

3200CPM

광고 위치

2000CPM

2100CPM

3400CPM

1600CPM

2600CPM

3100CPM

1800CPM

1100CPM

2300CPM

1200CPM

2900CPM

3400 CPM 낙찰

RTB

RTB: 광고 경매 타임라인

사용자 식별(10ms 이하)

Exchange 로부터 시작됨

3rd 파티 데이터로사용자에 대한이해도를 높임(10ms 정도)

DSP 로 부터bid 요청을 받음

(50ms 정도)

bid 가격으로광고를 구매

비지니스 로직적용

낙찰된 광고를사용자에게 전송

DSP 에 의해 수행

3rd 파티 데이터로사용자에 대한이해도를 높임

가장 매력적인광고 선택사용자 식별

1 2 3 4 5 6

43

대게 이 과정을100ms 타임아웃으로 진행(어떤 곳은 150ms 까지)

가장 핫한 시간에,AppNexus 는 초당3백만번 처리를 수행

http://radar.oreilly.com/2014/12/how-browsers-get-to-know-you-in-milliseconds.html

RTB: 중요한 특성과 AWS

가변적인 트래픽 볼륨 / 높은 비용 중요한 응답시간

Auto Scaling DynamoDB (<10ms)ElastiCache (<1ms)

Direct Connect예약 인스턴스스팟 인스턴스

RTB 는 어떤 구성요소를 가지고 있을까요?

입찰트래픽

분석트래픽

캠페인관리

낮은지연

저장소

장기간저장소

분석플랫폼

Adexchanges

AdvertisersUserTracking

Website

RTB 플랫폼

분석트래픽

캠페인관리

낮은지연

저장소

장기간저장소

분석플랫폼

Adexchanges

AdvertisersUserTracking

Website

입찰트래픽

RTB 플랫폼

입찰 트래픽 처리 시스템

• 부하 분산을 위해 ELB 를 활용• Auto Scaling 및 API/CLI 를 활용하여 자동화• 오픈 소스 Bidder 인 RTBkit(http://rtbkit.org/) 활용 가능

Availability Zone Availability Zone

Auto Scaling group

Auto Scaling group

Web Tier

App TierLow LatencyData Store

LoadBalancing

RTBkit?

RTBkit is an open-source software framework that takes much of the hard engineering work out of creating a Real-Time Bidder for online advertising. Its open, service-oriented architecture can be used to assemble a bidder as simple or complex as desired. The RTBKit core connects to ad exchanges via Exchange Connectors and routes bid requests and data through a configurable set of components which can be extended to implement a customized bidder. CloudFormation is ready!

Pre-configured AMI is available!http://rtbkit.org/

입찰트래픽

캠페인관리

낮은지연

저장소

장기간저장소

분석플랫폼

Adexchanges

AdvertisersUserTracking

Website

분석트래픽

RTB 플랫폼

분석 트래픽 처리 시스템

• Kinesis 를 활용하여 분석용 데이터를 수집 (KPL, KCL)• Kinesis Firehose 를 활용하면 S3 또는 Redshift 로의 저장을 간소화 할 수

있음

Availability Zone Availability Zone

Auto Scaling group

ProcessingData

IngestionLong Term

Durable Data Store

입찰트래픽

분석트래픽

낮은지연

저장소

장기간저장소

분석플랫폼

Adexchanges

AdvertisersUserTracking

Website

캠페인관리

RTB 플랫폼

캠페인 관리 시스템

• 광고 캠페인을 관리, 모니터링, 다른 광고주의 예산을 제어하는 시스템• 보통의 잘 디자인된 웹 애플리케이션• 입찰 트래픽 처리 시스템과 비슷, 하지만 영속 데이터의 가용성이 더 중요!• RDS 와 CloudFront 를 활용

Availability Zone Availability Zone

Auto Scaling group

Auto Scaling group

Web Tier

App Tier

Multi-AZ RDS

Content Delivery

LoadBalancing

AWS Elastic Beanstalk

입찰트래픽

분석트래픽

캠페인관리

장기간저장소

분석플랫폼

Adexchanges

AdvertisersUserTracking

Website

낮은지연

저장소

RTB 플랫폼

낮은 지연 저장소

• 노출에 대한 입찰 여부 및 입찰금 조회와 결정에 이용 됨• DynamoDB 또는 ElastiCache 활용 가능• EC2 에 Aerospike, Cassandra, Couchbase 등 설치 후 운용 가능

AmazonDynamoDB

Amazon ElastiCache

Amazon EC2

Amazon ElastiCache

Memcached

• 클라우드에서 캐시 클러스터를 쉽게 만들고,사용하고, 크기 조정할 수 있는 AWS 관리형 서비스

• Sub-millisecond access latencies

Amazon DynamoDB

• 빠르고 성능 예측이 가능한 분산 NoSQL– 평균 서비스 지연 시간은 보통 수 밀리초 미만– 문서 데이터 구조와 키 값 데이터 구조를 모두 지원

• 확장 및 용량 등 관리형 서비스로 제공– HDD가 아니라 SSD 기반이라 빠른 속도– 경험이 적은 운영 노하우 부분의 걱정을 덜 수 있음

특징1: 관리자 필요없는 높은 신뢰성

• SPOF가 존재하지 않는 구성• 데이터는 3개소의 AZ에 분산 저장되어 높은 신뢰성• 스토리지는 필요에 따라 자동으로 분산 처리

특징2: 처리량을 프로비저닝 가능

• Read및 Write 각각 필요한 만큼의 처리 용량을 할당• 예를 들어 일반적인 Read Heavy DB라면

– Read: 1,000– Write: 100

• 약간 Heavy한 DB의 경우– Read: 500– Write: 500

• 이 설정값은 DB 운영중에 온라인으로 변경 가능

특징3: 저장 용량에 제한이 없음

• 사용한 만큼 지불하는 종량제 스토리지• 데이터 용량 증가에 따른 노드 추가와 같은 작업이 불필요

입찰트래픽

분석트래픽

캠페인관리

낮은지연

저장소

분석플랫폼

Adexchanges

AdvertisersUserTracking

Website

장기간저장소

RTB 플랫폼

내구성 있는 장기간 저장소

• 대량의 데이터를 낮은 가격으로 저장하여야 함• 데이터 변환, 농축, 리치 분석 등에 이용됨 => 다른 서비스들과의 통합성 중요!• 확장성, 안정성, 고가용성을 제공하는 S3 이용 가능

Amazon S3

오브젝트 저장소 (어떤 것이든 저장 가능)확장성과 99.999999999% 내구성 제공

입찰트래픽

분석트래픽

캠페인관리

낮은지연

저장소

장기간저장소

Adexchanges

AdvertisersUserTracking

Website

분석플랫폼

RTB 플랫폼

분석 플랫폼

• EMR 을 활용, Redshift 활용• 기계학습 접근을 채택하는 경우가 많음:

– EMR + Spark MLlib- Amazon Machine Learning (Amazon ML)

• 다양한 서비스를 활용하여 자동화 및 운영 효율성을 높일 수 있음- Amazon Simple Workflow Service (SWF)- AWS Data Pipeline- AWS Lambda

MapReduceMachine Learning Long TermDurable Data

Store

Amazon Glacier

S3 DynamoDB

RDS

EMR

Amazon Redshift

Data PipelineAmazon Kinesis Cassandra

CloudSearchKinesis-enabled

app

Lambda ML

SQS

ElastiCache

DynamoDBStreams

다양한 분석 관련 툴

입찰트래픽

분석트래픽

캠페인관리

분석플랫폼

낮은지연

저장소

장기간저장소

Adexchanges

AdvertisersUserTracking

Website

RTB 플랫폼

Availability Zone Availability Zone

Auto Scaling group

Auto Scaling group

Web Tier

App Tier

Low LatencyData Store

LoadBalancing

Availability Zone Availability Zone

Auto Scaling group

ProcessingData

Ingestion

Long TermDurable Data

Store

Availability Zone Availability Zone

Auto Scaling group

Auto Scaling group

Web Tier

App Tier

Multi-AZ RDSContent Delivery

LoadBalancing

Adexchanges

Advertisers

UserTracking

Website

MapReduceMachine Learning

분석 트래픽 처리

입찰 트래픽 처리

캠페인 관리분석 플랫폼

저장소

RTB 플랫폼

몇 가지 팁: Front End & Back End 서버

• 대부분 부하 분산을 위해 ELB를 사용, 하지만 HAProxy, NGINX 설치 사용도가능!

• HTTP Persistent Connection 활성화 하기 (HTTP Keep-Alive)• 개발자들의 피드백: 레가시 비더들은 C/C++, Java, Erlang 이 많았지만,

최근에는 Node.js, Python, Scala 가 많이 사용 됨• 비더는 점점 더 모듈화 되고, 도커화(컨테이너) 되고 있음• 트래픽이 증가하면, 개별 exchange 에 전용 ELB 와 ASG 를 사용

몇 가지 팁: 낮은 지연 캐시

• DynamoDB, Redis, Aerospike 를 많이 사용하고 있음• 지역간 복제가 중요해지며 Storm 활용에서 DynamoDB Streams + Lambda

활용이 점점 더 많아지고 있음

몇 가지 팁: 데이터 수집 및 분석

• 비더에서 발생하는 데이터는 Apache Spark 와 같은 스트리밍 서비스를활용

• Kinesis + Spark 또는 Kafka + Spark 가 많이 사용 됨• 성능 향상과 비용절감을 위해 비더에서 발생하는 데이터를 일괄 처리

누가 AWS 에 RTB 를 운영하고 있을까요?

VidRoll

• 50,000개의 고유한 도메인에서 사용됨• 매월 수억 건의 광고를 지원• 비디오 플레이어는 100,000개의 웹

사이트에서 판매 됨

콘텐츠 게시자를 위한 동영상 기술 및 수익 창출 플랫폼

VidRoll 아키텍처

• 개발자들의 인프라에 대한이해와 걱정을 없앰

• 8~10 명의 엔지니어가 주로하던일을 2~3 명의 엔지니어가할 수 있게 됨

• 기술인력 추가 없이 10배 이상수익이 증가함

AWSLambda

Amazon API Gateway

AmazonDynamoDB

Amazon Redshift

Amazon Kinesis

PocketMath 의 하루• 300억 건의 경매• 수억의 입찰• 수천만의 노출• 60ms 이상은 입찰 실패• 95% 가 10ms 이내로 처리됨

100% self-serve, mobile demand-side platform (DSP)for programmatic mobile

• Amazon EC2• Amazon S3• Amazon RDS• Amzon EMR• Amazon Kinesis• AWS OpsWorks• Amazon Redshift• Amazon ELB

User interface

Aggregation, ML, EMR

Kinesis

Cleaning, HBase, Redshift

Kinesis

Bidders

Inneractive

모바일 광고 공간을 구매하고 판매하기위한 기술을 제공하는 모바일 ad exchange

• 예약 인스턴스와 스팟 인스턴스로수만달러를 절약

• 이 수치는 AWS 월 청구 비용의 20~30퍼센트 수준

• 100 예약 인스턴스 + 800 스팟 인스턴스

이번 세션에서 얻어갈 점

• 애드테크는 AWS 와 잘 맞아요!– 가변적인 트래픽 볼륨– 중요한 응답 시간– 글로벌로의 확장

• 인프라와 서비스도 자동화할 수 있어요!– Auto Scaling– CLI/ SDK 제공– 다양한 파트너솔루션

• 항상 비용을 고려하세요!– 다양한 EC2 인스턴스 종류; 목적에 맞는 인스턴스 사용– 예약 인스턴스와 스팟 인스턴스 활용

Buzzvil 사례 공유

서주은 매니저Software Engineer

Buzzvil

BuzzAD with DynamoDB & Redshift2016.07

발표자 서주은 매니저

[email protected]

허니스크린 - 잠금화면포인트 서비스

Reward & Benefit유저가 잠금해제 할 때마다 리워드를 지급하고, 각종 할인

쿠폰 및 혜택 정보를 잠금화면을 통해 제공합니다.

Beautiful UI/UX유저의 기존 스마트폰 사용 방식을 해치지 않는 UX/UI를 통

해 자연스러운 첫화면 서비스를 제공합니다.

Personalized Contents & Utility유저가 좋아할만한 컨텐츠를 어디 찾아가지 않고 잠금화면에 바로

볼 수 있도록유저의 관심사를 반영한 개인화된 컨텐츠를 제공합니

다.

버즈스크린 - 잠금화면포인트 SDK

사용자가 기존앱내의 메뉴에서‘잠금화면 사용하기’ 설정만 하면…

…별도 앱 다운로드없이바로 잠금화면 기능 사용 가능!

버즈애드 - Ad Serving Platform

27

[ Offerwall Type ]

국내외 최대 규모의 애드네트워크. CPI(다운로드), CPV(Video), CPL(Like) Instagram Follow 등 다양한 광고 상품라이브 중.

[ Lockscreen Ad Type ]

띠배너보다 Impression 당 단가가 5~10배 높은 프리미엄 인벤토리. Mediation 기능과 잠금화면 소재 최적화 기술.

[ Native Ad Type ]

사용자 경험을 해치지 않으면서 효율성을 높인 광고. 컨텐츠 내 피드형(In-feed)과 동영상(Video) 타입의 광고를 지원

AD serving with DynamoDB

■ 장점- Fully managed NoSQL- 빠른응답 시간- 쉬운 확장성- 고가용성

■ 인덱스- Hash key, Range key- Local secondary index- Global secondary index

■ RTB를 위한 요구 조건- 요청에 대한 응답이 약 100ms 안에 이뤄져

야 함- 서비스가 전 세계로 확장되는 경우 Cross-

region 대응이 용이해야 함

AmazonDynamoDB

BuzzAd

HoneyScreen

BuzzScreen

App client

SDK client

SDK client

BuzzAD 활용 사례 - 타게팅

■ Custom Audience Targeting- 광고 아이디 리스트를 직접 추출하여 해당유저에게만 노출 또는 제외

■ Retargeting- 특정한 액션을 수행한 사용자에게 맞춤 광고 노출

■ 액션형 인센티브 광고- 이미 광고참여를 완료한 유저를 제외

Hash key - 광고ID Range Key - Profile Timestamp - 시간 Attribute1 - UA

ADID-1234 target-group-1 1468511492

ADID-1234 product-id-7 1468511422

ADID-1234 lineitem-id-2 1468511491

ADID-1235 user-agent 1468512491 iOS-Mozillaxxxx

BuzzAD 활용 사례 - Frequency Capping & Fraud Detection

■ Frequency Capping- 유저당 광고 노출 빈도 제어

■ Realtime Fraud Detection- 광고 Impression/Click 이상징후감지

Hash key - 광고ID Range Key - 시간 lineitem_id type

ADID-1234 1468511492 1234 impression

ADID-1234 1468511422 2222 click

ADID-1234 1468511491 3333 allocation

ADID-1235 1468511492 3334 allocation

Redshift VS Hadoop

■ Hadoop with MapReduce- 비정형빅데이터처리 가능- MapReduce를 이용해 분석하는 것 자체가 어려운 작업

■ SQL on Hadoop- Hive, Tajo, Impala, Presto 등많은 기술이 등장

■ Redshift- 어차피 SQL을 쓴다면?

■ 결론- 하둡을 써야 할 특별한 이유가 있는것이 아니라면 Redshift를 추천

Redshift - 장점

■ 성능- 에어비엔비 사례 (http://nerds.airbnb.com/redshift-performance-cost/)- Runtime Hive: 28 minutes / Redshift: less than 6 minutes- Runtime Hive: 182 seconds / Redshift: 8 seconds- Hive 대비 약 5배의 성능 향상

■ 운영- 하둡클러스터 관리 대비 적은 운영 코스트

■ 비용- 연간 테라바이트당 약 1,000 USD- 3년 약정 시 - 75%

■ 빠른 개발 사이클- 하둡 대비 빠르게 실험적인 쿼리를 만들고 수정- 결과를 확인하는데에 걸리는 시간이 짧기 때문에 가능

Redshift - 활용

■ Unique 통계 분석- 광고의 unique impression count- 광고의 unique click count

■ CTR 분석- 유저의 나이/성별/지역 등 프로파일 별 광고 CTR 분석- 인벤토리 별 광고 CTR 분석- 광고 타입 별 CTR 분석

■ 이상 징후 모니터링- 광고 라이브 중 문제 발생시 빠르게 현상 파악 가능- Impression/Click 트렌드를 초/분 단위로 세분화 하여 볼 수 있음

■ 코호트 리텐션 분석- 유저의 1/3/7/30/90 일 리텐션 분석- 유저의 성별/나이/유입채널 별 리텐션 분석

데이터 수집 및 적재

■ Kinesis Firehose- Redshift로 데이터를 적재하기 위한 가장쉬운 방법- Log forwarder로 Fluentd 사용

■ DB에서 직접 동기화- 데이터양이 적은 경우

■ API Gateway & Lambda- 애플리케이션에서 발생한 로그를 직접 수집

■ Consistency에 대한 고려- 데이터 중복에 대한 인지 필요함

Amazon Kinesis

Firehose

AmazonS3

Amazon Redshift

Amazon EC2

AmazonRDS

Amazon API Gateway AWS

Lambda

대시보드 만들기

■ BI 툴 사용- Periscope- Looker- Zeppelin

■ 시각화- SQL 쿼리만으로도 간단하게 그래프 생성- 비개발자도 대시보드 개발

■ 대시보드캐싱- 불필요한 쿼리를 줄임

결론

■ 관리 비용 절감- AWS를 사용하는 가장큰 이유- 100대 이상의 인스턴스를 포함한 버즈빌 전체 인프라를 한 사람이 파트타임으로 해결

■ 안전성- AWS를 사용하는 두번째 이유- 직접 서버를 운영하는 것 보다 AWS에서 제공하는 서비스가 대부분의 경우더안정적

■ 해외 진출의 용이함- 해외 진출시 인프라 구축에 대한 걱정이 필요 없음- 리전간에 데이터 공유가 필요한 경우에도 대응이 쉬움

■ 성능- DynamoDB/Redshift 모두 충분히빠르다!

AWS 활용 = Building Block 조립

User Application

Application Service

Middleware Service

Language Interpreter

Operating System

Host

관리형 서비스를 적극 활용하여,비지니스에 더 집중하세요!

작은어항 5-8센치

커다란 수족관, 연못 15~25센치

강물에 방류시 90~120센치

잉어 ‘코이’

피드백은 언제든 환영합니다!

AWS 공식 블로그: http://aws.amazon.com/ko/blogs/korea

AWS 공식 소셜 미디어

@AWSKorea AWSKorea

AmazonWebServices AWSKorea

감사합니다