[백서 요약] building a real-time bidding platform on aws

32
Building a Real-Time Bidding Platform on AWS 백서 요약 Amazon Web Services Korea 김필중 2016년 6월

Upload: amazon-web-services-korea

Post on 07-Jan-2017

674 views

Category:

Technology


13 download

TRANSCRIPT

Page 1: [백서 요약] Building a Real-Time Bidding Platform on AWS

Building a Real-Time Bidding Platform on AWS

백서 요약Amazon Web Services Korea 김필중

2016년 6월

Page 2: [백서 요약] Building a Real-Time Bidding Platform on AWS

Building a Real-Time Bidding Platform on AWS

• 백서– https://aws.amazon.com/whitepapers/

Page 3: [백서 요약] Building a Real-Time Bidding Platform on AWS

Building a Real-Time Bidding Platform on AWS

• PDF 다운로드– https://d0.awsstatic.com/whitepapers/Building_a_Real_Time_Bidding_Pl

atform_on_AWS_v1_Final.pdf– 2016년 3월 기준으로 version 1 이 올라와 있음

Page 4: [백서 요약] Building a Real-Time Bidding Platform on AWS

개요

• 백서의 목적– 아키텍트, 광고주 및 개발자가 RTB를 이해하고 AWS에서 RTB 플랫폼을

구축하기 위한 정보 제공– 실제 고객 사례 바탕의 참고용 아키텍처 제시 및 AWS 상의 RTB 플랫폼을

시작하기 위한 추가 정보 제공

Page 5: [백서 요약] Building a Real-Time Bidding Platform on AWS

소개

• 2016년 RTB 상황– 온라인 광고는 매우 성장하고 있으며, 그 광고 지출비는 2016년 TV 광고

지출비를 상회할 것으로 예상됨– 그 중에서도 RTB 는 현저한 성장을 나타내고 있음

• RTB 는 실시간으로 디지털 광고 거래에 대한 경매 기반의 접근 방식• RTB 는 2015년에 프로그래매틱 바잉 방식으로 구매한 광고의 74%를

차지하고 있으며, 110억 US 달러 규모• RTB 거래는 2016년에 30% 성장할 것으로 전망됨• RTB 가 60% 의 초과 성장이 예상되는 모바일 디스플레이 광고에서도

RTB는 인기를 끌고 있음– 취급 볼륨이 늘어나며 각 광고 노출에 대해 더 나은 판단이 필요해짐

• AWS 는 실시간으로 낮은 지연 분석을 가능하게 하는 솔루션의생태계가 구축되어 있음

Page 6: [백서 요약] Building a Real-Time Bidding Platform on AWS

Real-Time Bidding 설명

• RTB 의 흐름– 접속한 웹사이트에 광고가 배치되어 있다면, 다음과 같은 과정을 거침

1. 사용자가 웹사이트나 모바일 애플리케이션(Publisher)을 방문2. Publisher 또는 3rd party 데이터 공급자에게서 Ad Exchange 에 노출

공지3. Ad Exchange 에서 입찰 요청을 입찰자(광고주)에게 통지. 일반적으로

100 ms 이내로 입찰 가격을 Ad Exchange 에 반환4. 가장 높은 가격으로 입찰한 입찰자(광고주)가 노출에 대한 광고

표시의 권리를 가짐5. 광고주는 Web 사이트나 모바일 애플리케이션 광고문안을 전달

Page 7: [백서 요약] Building a Real-Time Bidding Platform on AWS

Real-Time Bidding 설명

• 광고와 애드테크의 탄력성– 일일 Web 트래픽 볼륨은 시간대에 따라 큰 차이를 보임– RTB 의 일반적인 부하는 아래와 같은 그래프 패턴을 보임

• 트래픽이 적은 시간에 리소스 비용의 절감 가능

Page 8: [백서 요약] Building a Real-Time Bidding Platform on AWS

Real-Time Bidding 설명

• 광고와 애드테크의 탄력성– 계절에 따라 트래픽 볼륨은 매우 상이

• EX) 미국에서는 크리스마스 시즌과 봄 Tax 시즌에 트래픽이 크게 증가• AWS 를 사용할 경우 피크에 맞춰 리소스 프로비저닝이 불필요

Page 9: [백서 요약] Building a Real-Time Bidding Platform on AWS

Real-Time Bidding 설명

• 낮은 지연 시간의 중요성– Ad Exchange 는 모든 입찰자로부터 100ms 이내에 응답받기를 기대함

• 1ms라도 늦으면 높은 입찰 응답에도 광고 표시의 기회를 잃음– 입찰 실패는 중요한 고객층에 대한 광고의 기회를 잃는것을 의미

• 분당 수백만의 입찰 요청을 받게 됨• 모든 입찰 요청을 처리하는 능력은 입찰자(광고주) 에 있어서 매우 중요

– Exchange 에 대한 네트워크 연결을 포함하여 가능한 빠르게!

Page 10: [백서 요약] Building a Real-Time Bidding Platform on AWS

Real-Time Bidding 설명

• 광고의 글로벌성– 온라인 광고는 바로 글로벌로 진행 가능

• 많은 잠재력있는 고객에게 광고를 제공하고 싶다면 RTB 플랫폼을전세계의 모든 Exchange 근처에 배치할 필요가 있음

– 지리적으로 멀리 떨어진 Exchange 에서는 100ms 이하라는 조건을충족시키지 못함• RTB 플랫폼을 구축한다면 전 세계에 구축할 수 있는지를 생각하여야 함

Page 11: [백서 요약] Building a Real-Time Bidding Platform on AWS

Real-Time Bidding 설명

• RTB 의 경제성– 디지털 광고 사업은 매우 경쟁이 치열하며, 마진은 감소하는 추세– 다양한 기술 솔루션을 활용하더라도 낮은 비용으로 운용할 수 있어야

이익을 확보할 수 있음– RTB 의 비용

• 트래픽을 받아 기록• 입찰 로직을 실행• 입찰 로직에서 사용하는 데이터 저장소의 운영

– AWS 에서 RTB 의 비용 최적화• 다양한 전략 사용 가능

Page 12: [백서 요약] Building a Real-Time Bidding Platform on AWS

Real-Time Bidding 설명

• RTB 플랫폼 구성요소– 입찰 트래픽 수집과 처리 (Bid Traffic Ingestion and Processing)

• 어떤 Web 사이트의 광고 표시 크기, 사용자 데모그래픽 정보 등 입찰트래픽을 수집해 사용자의 과거 데이터 등과 대조하여 입찰 가격을계산하고, 광고 URL 과 함께 결과를 돌려줌. 이를 매우 빠르게 할필요가 있음.

– 분석용 트래픽 수집과 처리 (Analysis Traffic Ingestion and Processing)• 분석용 트래픽은 Ad Exchange 및 Publisher 에서 추적 용 픽셀

이미지를 바탕으로 보내져 옴. 입찰 요청과 같이 시간에 민감한 것은아니지만 매우 가치있는 정보이며, 입찰 가격 결정에 활용될 수 있음. 이 데이터의 분석은 광고 노출의 가치 추정에 중요함.

Page 13: [백서 요약] Building a Real-Time Bidding Platform on AWS

Real-Time Bidding 설명

• RTB 플랫폼 구성요소– 낮은 지연 데이터 저장소 (Low Latency Data Repository)

• 입찰 요청의 빠른 응답을 위해서는 사용자 정보 조회, 사용자와광고의 적합성, 그 광고가 사용자에게 얼마나 노출되는지와 같은데이터를 낮은 지연 시간(가급적 10ms 이내)으로 취득해야 함

• 다른 지역에서 사용자가 접속해 올 수 있기에 지역 간 복제 기능은매우 중요한 요소

Page 14: [백서 요약] Building a Real-Time Bidding Platform on AWS

Real-Time Bidding 설명

• RTB 플랫폼 구성요소– 내구성 있는 장기간 데이터 저장소 (Durable Data Repository for

Long-Term Storage)• 대량의 데이터(과거 모든 데이터)를 저렴하게 유지하기 위함• 사용자의 행동을 예측하기 위해서 과거 데이터의 활용은 필수

– 예를 들어, 12월과 4월의 쇼핑 행동은 각각 다를 것이고, 만일지난 12월 사용자의 행동 데이터가 있으면, 올해 12월에사용자의 더 나은 행동 예측 가능

• 광고주가 보유한 데이터뿐만 아니라 데이터 공급자가 제공하는외부 데이터를 활용

Page 15: [백서 요약] Building a Real-Time Bidding Platform on AWS

Real-Time Bidding 설명

• RTB 플랫폼 구성요소– 분석 플랫폼 (Analytics Platform)

• 기계학습과 같은 기술을 활용하여 특정 데모그래픽 및 사용자에게특정 광고의 효율성 계산.

• 여러 장치를 통해 사용자의 행동을 추적 및 기록하고 사용자 프로필및 고객 세그먼트를 업데이트.

• 내구성 있는 장기간 저장소 (Long Term Durable Data Repository)에 있는 다양한 데이터를 활용– 처리 결과 데이터는 Low-Latency Store 에 보유하여 입찰

요청에 빠르게 응답할 수 있음

Page 16: [백서 요약] Building a Real-Time Bidding Platform on AWS

Real-Time Bidding 설명

• RTB 플랫폼 구성요소– 캠페인 관리 (Campaign Management)

• 일반적으로 멀티 테넌트의 Web 애플리케이션에서 광고 캠페인의관리 및 광고 예산 관리

• 입찰에 대한 자세한 보고서는 고객에게 제공– 즉시(on the fly) 광고 캠페인을 수동 또는 자동으로 조정– 조정 결과를 낮은 지연의 데이터 저장소(Low-Latency Data

Store) 에 반영

Page 17: [백서 요약] Building a Real-Time Bidding Platform on AWS

Real-Time Bidding 설명

• RTB 플랫폼 다이어그램– 일반적인 RTB 플랫폼의 각 구성 요소

Page 18: [백서 요약] Building a Real-Time Bidding Platform on AWS

AWS 와 Real-Time Bidding

• AWS 와 탄력성– Amazon EC2

• 수 분내 시작할 수 있는 서버 인스턴스• 요구되는 자원(컴퓨팅, 메모리 등)에 따라 빠른 확장 및 축소가 가능• 급변하는 트래픽에 따라 빠른 확장 및 축소 가능• 분석 처리를 일괄적으로 가동시킬 수 있음

– 가동 후 인스턴스를 중지하면, 그 동안은 과금되지 않음

• 예측 불가능한 스파이크에도 대응 가능• 장기 계약과 거액의 초기 투자 불필요

Page 19: [백서 요약] Building a Real-Time Bidding Platform on AWS

AWS 와 Real-Time Bidding

• AWS 와 낮은 지연 네트워킹– AWS Region

• Exchange 의 위치와 같은 지역의 AWS Region 을 사용하여 낮은지연시간 유지 가능

– AWS Direct Connect• Public 에 있는 Internet 회선을 통하면 지연과 지터가 발생할 수 있음• Exchange 및 VPC 를 Direct Connect (DX)로 연결하여 빠르고 안정적인

연결 가능

– EC2 Instance type• 확장 네트워킹 사용 (Enhanced networking with SR-IOV)

– http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/enhanced-networking.html

Page 20: [백서 요약] Building a Real-Time Bidding Platform on AWS

AWS 와 Real-Time Bidding

• AWS 글로벌 입지– AWS 글로벌 각 지역으로 RTB 플랫폼을 배포 가능– AWS 의 배포 서비스 이용 가능

• AWS CloudFormation– https://aws.amazon.com/cloudformation/

• AWS OpsWorks– https://aws.amazon.com/opsworks/

• AWS Elastic Beanstalk– https://aws.amazon.com/elasticbeanstalk/

– 만약 특정 지역에서 광고 캠페인이 필요 없어지는 경우 즉시 종료 가능• 필요할 때 언제든 즉시 재시작 가능• AWS 는 사용한 만큼의 종량 과금제

Page 21: [백서 요약] Building a Real-Time Bidding Platform on AWS

AWS 와 Real-Time Bidding

• AWS 에서의 RTB 운영의 경제성– AWS 에서 RTB 운영을 점진적으로 발전해가는 일반적인 방법

1. Auto Scaling 기능을 사용한 탄력적인 확장 및 축소의 실현2. Spot Instances 를 이용한 비용 절감

– Spot Fleet API 활용» http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/spot-

fleet.html

– Spot Bid Advisor 활용» https://aws.amazon.com/jp/ec2/spot/bid-advisor/

3. 예약 인스턴스를 통한 비용 절감4. Direct Connect 를 사용한 외부와의 빠르고 안정적인 네트워크 연결5. Amazon DynamoDB 를 사용한 동적인 확장 및 축소의 실현

Page 22: [백서 요약] Building a Real-Time Bidding Platform on AWS

AWS 와 Real-Time Bidding

• AWS 에서의 RTB 운영 구성요소– RTB 플랫폼의 이해를 바탕으로 구성 요소 별 AWS서비스의 선택– AWS 에서 입찰 트래픽 수집과 처리

• 입찰 요청의 부하 분산에 Elastic Load Balancing (ELB) 를 활용– ELB 는 AWS 가 관리해주는 완전 관리형 로드 밸런서

» 여러 Availability Zone 에 대한 분산을 쉽게 실현» 헬스 체크 기능

• Auto Scaling 및 API/CLI 를 사용한 확장 및 축소– 『Managing Your Infrastructure at Scale』백서의 자세한 내용 참고

• 오픈 소스 Bidder 인 RTBkit(http://rtbkit.org/)– EC2에 쉽게 구성 가능

Page 23: [백서 요약] Building a Real-Time Bidding Platform on AWS

AWS 와 Real-Time Bidding

• AWS 에서의 RTB 플랫폼 구성요소들– AWS 에서의 분석용 트래픽의 수집과 처리

• Amazon Kinesis 를 통해 직접 데이터를 수집, 혹은 ELB + EC2 에서데이터를 캡처 pre-processing 후 Kinesis Producer 를 사용하여 Kinesis에 전달

• Kinesis Client Library(KCL) 를 사용한 Kinesis 스트림에서 데이터 검색• Kinesis ⇒ S3(Durable 인 Repository) 에 데이터를 저장• Amazon Kinesis Firehose 를 활용하면 대량의 데이터 S3 에 저장

프로세스를 간소화 가능

Page 24: [백서 요약] Building a Real-Time Bidding Platform on AWS

AWS 와 Real-Time Bidding

• AWS 에서의 RTB 플랫폼 구성요소들– AWS 에서의 낮은 지연의 데이터 저장소

• AWS Managed 서비스를 활용– Amazon DynamoDB– Amazon ElastiCache– Do-it-yourself 를 통해 EC2 에 Aerospike, Cassandra, Couchbase 같은

데이터베이스를 실행하는 것도 가능

• Amazon DynamoDB 는 매우 큰 테이블을 적은 노력으로 작업 및 인적개입(운용 인력) 없이 운용 가능– DynamoDB Streams 를 활용하여 지역을 넘어 복제 가능– 트랜잭션량에 따라 프로비저닝 처리량의 오르내림

» 클러스터 관리가 필요하지 않으며, 비용 절감이 가능» 테이블마다 처리량을 설정 가능

Page 25: [백서 요약] Building a Real-Time Bidding Platform on AWS

AWS 와 Real-Time Bidding

• AWS 에서의 RTB 플랫폼 구성요소들– Amazon DynamoDB

• Hash Key 와 Range Key 를 사용하여 사용자의 카테고리화 예제– 사용자 ID 를 해시 키로 지정, 사용자가 속한 세그먼트가 레인지 키로– 사용자가 속한 세그먼트에 따라 입찰가를 조정

Page 26: [백서 요약] Building a Real-Time Bidding Platform on AWS

AWS 와 Real-Time Bidding

• AWS 에서의 RTB 플랫폼 구성요소들– Durable Data Repository for Long-Term Storage on AWS

• Amazon S3– 확장성, 안정성, 고가용성을 제공, 사용한만큼의 종량 과금– Object Lifecycle Management

» 예) 7 년 경과한 객체는 Amazon Glacier 로 이동• Amazon Elastic MapReduce

– 분산 데이터 처리 기반– S3 에서 직접 데이터를 읽어 들여, Apache Spark 같은 오픈소스 도구를 사용하여 분석 가능

• AWS Lambda– S3 에 객체가 생성된 이벤트를 바탕으로, 이벤트 기반

프로세싱의 실현– 지금까지의 batch-based 아키텍처에서의 개방

Page 27: [백서 요약] Building a Real-Time Bidding Platform on AWS

AWS 와 Real-Time Bidding

• AWS 에서의 RTB 플랫폼 구성요소들– AWS 에서의 RTB 분석 플랫폼

• 기계학습(Machine Learning) 접근을 채택하는 경우가 많음– EMR 에 Spark MLlib 이 사용되는 경우가 많음

» 또한, EMR 과 결합하여 다양한 도구 활용 가능– Amazon Machine Learning (Amazon ML)

» S3 에 있는 장기 데이터 세트를 사용한 분석 가능• 『Big Data Analytics Options on AWS』 백서• 분석 워크로드에 많이 이용되는 서비스

– Amazon Simple Workflow Service(SWF)– AWS Data Pipeline– AWS Lambda

Page 28: [백서 요약] Building a Real-Time Bidding Platform on AWS

AWS 와 Real-Time Bidding

• AWS 에서의 RTB 플랫폼 구성요소들– AWS 에서의 캠페인 관리

• 이른바 Well-Architected 의 Web 애플리케이션• Bid-processing 시스템과 비슷하지만, 영속 데이터의 가용성이 더 중요• Amazon RDS

– Oracle, SQL Server, Aurora, MySQL, PostgreSQL, 그리고Maria DB 를 지원– 설치, 패치, 일일백업과 같은 유지 보수 및 운영 작업과 Multi-AZ 지원

• Amazon CloudFront– 콘텐츠 딜리버리 네트워크 (CDN)– 보안에 신속하게 사용자에게 가장 가까운 엣지에서 JavaScript 나 광고

이미지를 전달하는 것이 가능

Page 29: [백서 요약] Building a Real-Time Bidding Platform on AWS

참고용 아키텍처 예제

• AWS 의 각 서비스를 활용한 구성도

Page 30: [백서 요약] Building a Real-Time Bidding Platform on AWS

결론

• Real-Time Bidding– 성장 추세!– 효과적인 실시간 광고 구매는 다양한 구성요소들을 필요로 함– AWS 서비스 군은 RTB 각각의 구성요소에 매우 잘 어울림

• 비용 절감이 가능하며 플랫폼의 복잡성을 줄일 수 있음• AWS 글로벌 인프라의 혜택을 누릴 수 있음

– 확장 가능한 Real-Time 인프라를 구축하는 작업을 AWS 에 오프로드 가능• 경쟁과 차별화 된 본질적인 작업에 주력 가능!

Page 31: [백서 요약] Building a Real-Time Bidding Platform on AWS

기고자• Steve Boltuch, solutions architect, Amazon Web Services• Chris Marshall, solutions architect, Amazon Web Services• Marco Pedroso, software engineer, A9• Erik Swensson, solutions architect manager, Amazon Web Services• Dmitri Tchikatilov, business development manager, Amazon Web Services• Vlad Vlasceanu, solutions architect, Amazon Web Services• (日本語要約) Eiji Shinohara, solutions architect, Amazon Web Services• (한국어 요약) Piljoong Kim, solutions architect, Amazon Web Services

참고 자료• IAB Real Time Bidding Project• Beating the Speed of Light with Your Infrastructure on AWS• Deploying an RTBkit on AWS with a CloudFormation Template

Page 32: [백서 요약] Building a Real-Time Bidding Platform on AWS